diff --git a/gosnappi/go.mod b/gosnappi/go.mod index e1ac67f5..772bb748 100644 --- a/gosnappi/go.mod +++ b/gosnappi/go.mod @@ -7,6 +7,6 @@ require ( github.com/ghodss/yaml v1.0.0 github.com/gorilla/mux v1.8.0 github.com/stretchr/testify v1.8.4 - google.golang.org/grpc v1.57.0 + google.golang.org/grpc v1.58.0 google.golang.org/protobuf v1.31.0 ) diff --git a/gosnappi/go.sum b/gosnappi/go.sum index 2b31296f..27a150c1 100644 --- a/gosnappi/go.sum +++ b/gosnappi/go.sum @@ -36,33 +36,43 @@ cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRY cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= +cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= +cloud.google.com/go/accesscontextmanager v1.8.0/go.mod h1:uI+AI/r1oyWK99NN8cQ3UK76AMelMzgZCvJfsi2c+ps= +cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= +cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= @@ -71,10 +81,12 @@ cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodC cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= +cloud.google.com/go/appengine v1.8.1/go.mod h1:6NJXGLVhZCN9aQ/AEDvmfzKEfoYBlfB80/BHiKVputY= cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= +cloud.google.com/go/area120 v0.8.1/go.mod h1:BVfZpGpB7KFVNxPiQBuHkX6Ed0rS51xIgmGyjrAfzsg= cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= @@ -83,6 +95,7 @@ cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1 cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= +cloud.google.com/go/artifactregistry v1.14.1/go.mod h1:nxVdG19jTaSTu7yA7+VbWL346r3rIdkZ142BSQqhn5E= cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= @@ -91,17 +104,20 @@ cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAt cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= +cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi03hd+WTQ= cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= +cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= @@ -112,6 +128,7 @@ cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckm cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= +cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -125,38 +142,46 @@ cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/Zur cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= +cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= +cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= +cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= +cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= @@ -172,6 +197,9 @@ cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63 cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= +cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= +cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= @@ -179,15 +207,18 @@ cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2Aawl cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= +cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= +cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= @@ -196,44 +227,56 @@ cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOX cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= +cloud.google.com/go/datacatalog v1.14.0/go.mod h1:h0PrGtlihoutNMp/uvwhawLQ9+c63Kz65UFqh49Yo+E= +cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= +cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= +cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= +cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= +cloud.google.com/go/datastore v1.12.0/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= +cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= @@ -242,35 +285,44 @@ cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFM cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= +cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= +cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= +cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= @@ -278,28 +330,35 @@ cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5Uwt cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= +cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gaming v1.10.1/go.mod h1:XQQvtfP8Rb9Rxnxm5wFVpAp9zCQkJi2bLIb7iHGwB3s= cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= +cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= +cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/grafeas v0.3.0/go.mod h1:P7hgN24EyONOTMyeJH6DxG4zD7fwiYa5Q6GUgyFSOU8= cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= @@ -309,18 +368,24 @@ cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGE cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iam v1.0.1/go.mod h1:yR3tmSL8BcZB4bxByRv2jkSIahVmCtfKZwLYGBalRE8= +cloud.google.com/go/iam v1.1.0/go.mod h1:nxdHjaKfCr7fNYx/HJMM8LgiMugmveWlkatear5gVyk= +cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= @@ -328,91 +393,117 @@ cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4 cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= +cloud.google.com/go/kms v1.11.0/go.mod h1:hwdiYC0xjnWsKQQCQQmIQnS9asjYVSK6jtXm+zFqXLM= +cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= +cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/longrunning v0.4.2/go.mod h1:OHrnaYyLUV6oqwh0xiS7e5sLQhP1m0QU9R+WhGDMgIQ= +cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc= +cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= +cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= +cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= +cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= +cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= +cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= +cloud.google.com/go/orgpolicy v1.11.0/go.mod h1:2RK748+FtVvnfuynxBzdnyu7sygtoZa1za/0ZfpOs1M= +cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= +cloud.google.com/go/osconfig v1.12.0/go.mod h1:8f/PaYzoS3JMVfdfTubkowZYGmAhUCjjwnjqWI7NVBc= +cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= +cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= +cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= +cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -421,9 +512,11 @@ cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcd cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= +cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= @@ -432,32 +525,39 @@ cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= +cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= +cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= +cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= @@ -468,10 +568,12 @@ cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRr cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= +cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= +cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= @@ -479,12 +581,14 @@ cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= +cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= @@ -496,6 +600,7 @@ cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPj cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= @@ -507,15 +612,18 @@ cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DR cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= +cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= +cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= @@ -527,41 +635,50 @@ cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeL cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= +cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0hCZBwXYqucgSk= cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= +cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= @@ -569,29 +686,36 @@ cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= +cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= +cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= +cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= @@ -609,6 +733,7 @@ github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHG github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= @@ -634,6 +759,8 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230428030218-4003588d1b74/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -641,6 +768,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -651,11 +779,16 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.m github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f/go.mod h1:sfYdkwUW4BA3PbKjySwjJy+O4Pu0h62rlqCMHNk+K+Q= +github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.0/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/envoyproxy/protoc-gen-validate v1.0.1/go.mod h1:0vj8bNkYbSTNS2PIyH87KZaeN4x9zpL9Qt8fQC7d+vs= +github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= @@ -680,6 +813,7 @@ github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= @@ -750,6 +884,9 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.0/go.mod h1:OJpEgntRZo8ugHpF9hkoLJbS5dSI20XZeXJ9JVywLlM= +github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= @@ -768,6 +905,9 @@ github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqE github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= +github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -801,9 +941,12 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= +github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= @@ -820,7 +963,9 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= @@ -843,6 +988,7 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -875,6 +1021,12 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -932,6 +1084,8 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91 golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -970,6 +1124,7 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -982,14 +1137,18 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1019,6 +1178,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1035,6 +1196,8 @@ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1106,21 +1269,29 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= +golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1136,8 +1307,10 @@ golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1205,6 +1378,9 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1278,6 +1454,11 @@ google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/ google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= +google.golang.org/api v0.118.0/go.mod h1:76TtD3vkgmZ66zZzp72bUUklpmQmKlhh6sYtIjYK+5E= +google.golang.org/api v0.122.0/go.mod h1:gcitW0lvnyWjSp9nKxAbdHKIZ6vF4aajGueeslZOyms= +google.golang.org/api v0.124.0/go.mod h1:xu2HQurE5gi/3t1aFCvhPD781p0a3p11sdunTJ2BlP4= +google.golang.org/api v0.125.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1416,14 +1597,31 @@ google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVix google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL5hZrHzQceCwuSYwZZ5QZBazOcprJ5rgs3lY= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M= -google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230629202037-9506855d4529/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98/go.mod h1:S7mY02OqCJTD0E1OiQy1F72PWFB4bZJ87cAtLPYgDR0= google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230629202037-9506855d4529/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1461,11 +1659,14 @@ google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCD google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= -google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= -google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.58.0 h1:32JY8YpPMSR45K+c3o6b8VL73V+rR8k+DeMIr4vRH8o= +google.golang.org/grpc v1.58.0/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1510,12 +1711,17 @@ lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.37.0/go.mod h1:vtL+3mdHx/wcj3iEGz84rQa8vEqR6XM84v5Lcvfph20= +modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.0.0-20220904174949-82d86e1b6d56/go.mod h1:YSXjPL62P2AMSxBphRHPn7IkzhVHqkvOnRKAKh+W6ZI= modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccgo/v3 v3.16.13-0.20221017192402-261537637ce8/go.mod h1:fUB3Vn0nVPReA+7IG7yZDfjv1TMWjhQP8gCxrFAtL5g= +modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= @@ -1525,19 +1731,31 @@ modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/libc v1.17.4/go.mod h1:WNg2ZH56rDEwdropAJeZPQkXmDwh+JCA1s/htl6r2fA= +modernc.org/libc v1.18.0/go.mod h1:vj6zehR5bfc98ipowQOM2nIDUZnVew/wNC/2tOGS+q0= +modernc.org/libc v1.20.3/go.mod h1:ZRfIaEkgrYgZDl6pa4W39HgN5G/yDW+NRmNKZBDFrk0= +modernc.org/libc v1.21.4/go.mod h1:przBsL5RDOZajTVslkugzLBj1evTue36jEomFQOoYuI= +modernc.org/libc v1.22.2/go.mod h1:uvQavJ1pZ0hIoC/jfqNoMLURIMhKzINIWypNM17puug= modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.3.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.4.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/sqlite v1.18.2/go.mod h1:kvrTLEWgxUcHa2GfHBQtanR1H9ht3hTJNtKpzH9k1u0= modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/tcl v1.13.2/go.mod h1:7CLiGIPo1M8Rv1Mitpv5akc2+8fxUd2y2UzC/MfMzy0= modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index 3de2eec5..8eff9cc7 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.2 +/* Open Traffic Generator API 0.12.3 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -309,7 +309,7 @@ func (api *gosnappiApi) NewGetVersionResponse() GetVersionResponse { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.2").SetSdkVersion("0.12.2") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.12.3").SetSdkVersion("0.12.3") } return api.versionMeta.localVersion @@ -173645,13 +173645,14 @@ func (obj *bgpLearnedInformationFilter) setDefault() { // ***** BgpV4RouteRange ***** type bgpV4RouteRange struct { validation - obj *otg.BgpV4RouteRange - addressesHolder BgpV4RouteRangeV4RouteAddressIter - advancedHolder BgpRouteAdvanced - communitiesHolder BgpV4RouteRangeBgpCommunityIter - asPathHolder BgpAsPath - addPathHolder BgpAddPath - extCommunitiesHolder BgpV4RouteRangeBgpExtCommunityIter + obj *otg.BgpV4RouteRange + addressesHolder BgpV4RouteRangeV4RouteAddressIter + advancedHolder BgpRouteAdvanced + communitiesHolder BgpV4RouteRangeBgpCommunityIter + asPathHolder BgpAsPath + addPathHolder BgpAddPath + extCommunitiesHolder BgpV4RouteRangeBgpExtCommunityIter + extendedCommunitiesHolder BgpV4RouteRangeBgpExtendedCommunityIter } func NewBgpV4RouteRange() BgpV4RouteRange { @@ -173841,6 +173842,7 @@ func (obj *bgpV4RouteRange) setNil() { obj.asPathHolder = nil obj.addPathHolder = nil obj.extCommunitiesHolder = nil + obj.extendedCommunitiesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -173938,6 +173940,8 @@ type BgpV4RouteRange interface { SetName(value string) BgpV4RouteRange // ExtCommunities returns BgpV4RouteRangeBgpExtCommunityIterIter, set in BgpV4RouteRange ExtCommunities() BgpV4RouteRangeBgpExtCommunityIter + // ExtendedCommunities returns BgpV4RouteRangeBgpExtendedCommunityIterIter, set in BgpV4RouteRange + ExtendedCommunities() BgpV4RouteRangeBgpExtendedCommunityIter setNil() } @@ -174330,6 +174334,10 @@ func (obj *bgpV4RouteRange) SetName(value string) BgpV4RouteRange { return obj } +// Deprecated: This property is deprecated in favor of property extended_communities +// +// Deprecated: This property is deprecated in favor of property extended_communities +// // Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. // ExtCommunities returns a []BgpExtCommunity func (obj *bgpV4RouteRange) ExtCommunities() BgpV4RouteRangeBgpExtCommunityIter { @@ -174417,6 +174425,93 @@ func (obj *bgpV4RouteRangeBgpExtCommunityIter) appendHolderSlice(item BgpExtComm return obj } +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an eight byte value. It is divided into two main parts. The first two bytes of the community encode a type and sub-type fields and the last six bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. +// ExtendedCommunities returns a []BgpExtendedCommunity +func (obj *bgpV4RouteRange) ExtendedCommunities() BgpV4RouteRangeBgpExtendedCommunityIter { + if len(obj.obj.ExtendedCommunities) == 0 { + obj.obj.ExtendedCommunities = []*otg.BgpExtendedCommunity{} + } + if obj.extendedCommunitiesHolder == nil { + obj.extendedCommunitiesHolder = newBgpV4RouteRangeBgpExtendedCommunityIter(&obj.obj.ExtendedCommunities).setMsg(obj) + } + return obj.extendedCommunitiesHolder +} + +type bgpV4RouteRangeBgpExtendedCommunityIter struct { + obj *bgpV4RouteRange + bgpExtendedCommunitySlice []BgpExtendedCommunity + fieldPtr *[]*otg.BgpExtendedCommunity +} + +func newBgpV4RouteRangeBgpExtendedCommunityIter(ptr *[]*otg.BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter { + return &bgpV4RouteRangeBgpExtendedCommunityIter{fieldPtr: ptr} +} + +type BgpV4RouteRangeBgpExtendedCommunityIter interface { + setMsg(*bgpV4RouteRange) BgpV4RouteRangeBgpExtendedCommunityIter + Items() []BgpExtendedCommunity + Add() BgpExtendedCommunity + Append(items ...BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter + Set(index int, newObj BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter + Clear() BgpV4RouteRangeBgpExtendedCommunityIter + clearHolderSlice() BgpV4RouteRangeBgpExtendedCommunityIter + appendHolderSlice(item BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) setMsg(msg *bgpV4RouteRange) BgpV4RouteRangeBgpExtendedCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtendedCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Items() []BgpExtendedCommunity { + return obj.bgpExtendedCommunitySlice +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Add() BgpExtendedCommunity { + newObj := &otg.BgpExtendedCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtendedCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Append(items ...BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, item) + } + return obj +} + +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Set(index int, newObj BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpExtendedCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) Clear() BgpV4RouteRangeBgpExtendedCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtendedCommunity{} + obj.bgpExtendedCommunitySlice = []BgpExtendedCommunity{} + } + return obj +} +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) clearHolderSlice() BgpV4RouteRangeBgpExtendedCommunityIter { + if len(obj.bgpExtendedCommunitySlice) > 0 { + obj.bgpExtendedCommunitySlice = []BgpExtendedCommunity{} + } + return obj +} +func (obj *bgpV4RouteRangeBgpExtendedCommunityIter) appendHolderSlice(item BgpExtendedCommunity) BgpV4RouteRangeBgpExtendedCommunityIter { + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, item) + return obj +} + func (obj *bgpV4RouteRange) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -174489,6 +174584,7 @@ func (obj *bgpV4RouteRange) validateObj(vObj *validation, set_default bool) { } if len(obj.obj.ExtCommunities) != 0 { + obj.addWarnings("ExtCommunities property in schema BgpV4RouteRange is deprecated, This property is deprecated in favor of property extended_communities") if set_default { obj.ExtCommunities().clearHolderSlice() @@ -174502,6 +174598,20 @@ func (obj *bgpV4RouteRange) validateObj(vObj *validation, set_default bool) { } + if len(obj.obj.ExtendedCommunities) != 0 { + + if set_default { + obj.ExtendedCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtendedCommunities { + obj.ExtendedCommunities().appendHolderSlice(&bgpExtendedCommunity{obj: item}) + } + } + for _, item := range obj.ExtendedCommunities().Items() { + item.validateObj(vObj, set_default) + } + + } + } func (obj *bgpV4RouteRange) setDefault() { @@ -174525,13 +174635,14 @@ func (obj *bgpV4RouteRange) setDefault() { // ***** BgpV6RouteRange ***** type bgpV6RouteRange struct { validation - obj *otg.BgpV6RouteRange - addressesHolder BgpV6RouteRangeV6RouteAddressIter - advancedHolder BgpRouteAdvanced - communitiesHolder BgpV6RouteRangeBgpCommunityIter - asPathHolder BgpAsPath - addPathHolder BgpAddPath - extCommunitiesHolder BgpV6RouteRangeBgpExtCommunityIter + obj *otg.BgpV6RouteRange + addressesHolder BgpV6RouteRangeV6RouteAddressIter + advancedHolder BgpRouteAdvanced + communitiesHolder BgpV6RouteRangeBgpCommunityIter + asPathHolder BgpAsPath + addPathHolder BgpAddPath + extCommunitiesHolder BgpV6RouteRangeBgpExtCommunityIter + extendedCommunitiesHolder BgpV6RouteRangeBgpExtendedCommunityIter } func NewBgpV6RouteRange() BgpV6RouteRange { @@ -174721,6 +174832,7 @@ func (obj *bgpV6RouteRange) setNil() { obj.asPathHolder = nil obj.addPathHolder = nil obj.extCommunitiesHolder = nil + obj.extendedCommunitiesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -174818,6 +174930,8 @@ type BgpV6RouteRange interface { SetName(value string) BgpV6RouteRange // ExtCommunities returns BgpV6RouteRangeBgpExtCommunityIterIter, set in BgpV6RouteRange ExtCommunities() BgpV6RouteRangeBgpExtCommunityIter + // ExtendedCommunities returns BgpV6RouteRangeBgpExtendedCommunityIterIter, set in BgpV6RouteRange + ExtendedCommunities() BgpV6RouteRangeBgpExtendedCommunityIter setNil() } @@ -175210,6 +175324,10 @@ func (obj *bgpV6RouteRange) SetName(value string) BgpV6RouteRange { return obj } +// Deprecated: This property is deprecated in favor of property extended_communities +// +// Deprecated: This property is deprecated in favor of property extended_communities +// // Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. // ExtCommunities returns a []BgpExtCommunity func (obj *bgpV6RouteRange) ExtCommunities() BgpV6RouteRangeBgpExtCommunityIter { @@ -175297,6 +175415,93 @@ func (obj *bgpV6RouteRangeBgpExtCommunityIter) appendHolderSlice(item BgpExtComm return obj } +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an eight byte value. It is divided into two main parts. The first two bytes of the community encode a type and sub-type fields and the last six bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. +// ExtendedCommunities returns a []BgpExtendedCommunity +func (obj *bgpV6RouteRange) ExtendedCommunities() BgpV6RouteRangeBgpExtendedCommunityIter { + if len(obj.obj.ExtendedCommunities) == 0 { + obj.obj.ExtendedCommunities = []*otg.BgpExtendedCommunity{} + } + if obj.extendedCommunitiesHolder == nil { + obj.extendedCommunitiesHolder = newBgpV6RouteRangeBgpExtendedCommunityIter(&obj.obj.ExtendedCommunities).setMsg(obj) + } + return obj.extendedCommunitiesHolder +} + +type bgpV6RouteRangeBgpExtendedCommunityIter struct { + obj *bgpV6RouteRange + bgpExtendedCommunitySlice []BgpExtendedCommunity + fieldPtr *[]*otg.BgpExtendedCommunity +} + +func newBgpV6RouteRangeBgpExtendedCommunityIter(ptr *[]*otg.BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter { + return &bgpV6RouteRangeBgpExtendedCommunityIter{fieldPtr: ptr} +} + +type BgpV6RouteRangeBgpExtendedCommunityIter interface { + setMsg(*bgpV6RouteRange) BgpV6RouteRangeBgpExtendedCommunityIter + Items() []BgpExtendedCommunity + Add() BgpExtendedCommunity + Append(items ...BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter + Set(index int, newObj BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter + Clear() BgpV6RouteRangeBgpExtendedCommunityIter + clearHolderSlice() BgpV6RouteRangeBgpExtendedCommunityIter + appendHolderSlice(item BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) setMsg(msg *bgpV6RouteRange) BgpV6RouteRangeBgpExtendedCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtendedCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Items() []BgpExtendedCommunity { + return obj.bgpExtendedCommunitySlice +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Add() BgpExtendedCommunity { + newObj := &otg.BgpExtendedCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtendedCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Append(items ...BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, item) + } + return obj +} + +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Set(index int, newObj BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpExtendedCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) Clear() BgpV6RouteRangeBgpExtendedCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtendedCommunity{} + obj.bgpExtendedCommunitySlice = []BgpExtendedCommunity{} + } + return obj +} +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) clearHolderSlice() BgpV6RouteRangeBgpExtendedCommunityIter { + if len(obj.bgpExtendedCommunitySlice) > 0 { + obj.bgpExtendedCommunitySlice = []BgpExtendedCommunity{} + } + return obj +} +func (obj *bgpV6RouteRangeBgpExtendedCommunityIter) appendHolderSlice(item BgpExtendedCommunity) BgpV6RouteRangeBgpExtendedCommunityIter { + obj.bgpExtendedCommunitySlice = append(obj.bgpExtendedCommunitySlice, item) + return obj +} + func (obj *bgpV6RouteRange) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -175369,6 +175574,7 @@ func (obj *bgpV6RouteRange) validateObj(vObj *validation, set_default bool) { } if len(obj.obj.ExtCommunities) != 0 { + obj.addWarnings("ExtCommunities property in schema BgpV6RouteRange is deprecated, This property is deprecated in favor of property extended_communities") if set_default { obj.ExtCommunities().clearHolderSlice() @@ -175382,6 +175588,20 @@ func (obj *bgpV6RouteRange) validateObj(vObj *validation, set_default bool) { } + if len(obj.obj.ExtendedCommunities) != 0 { + + if set_default { + obj.ExtendedCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtendedCommunities { + obj.ExtendedCommunities().appendHolderSlice(&bgpExtendedCommunity{obj: item}) + } + } + for _, item := range obj.ExtendedCommunities().Items() { + item.validateObj(vObj, set_default) + } + + } + } func (obj *bgpV6RouteRange) setDefault() { @@ -275950,6 +276170,643 @@ func (obj *bgpAddPath) setDefault() { } +// ***** BgpExtendedCommunity ***** +type bgpExtendedCommunity struct { + validation + obj *otg.BgpExtendedCommunity + transitive_2OctetAsTypeHolder BgpExtendedCommunityTransitive2OctetAsType + transitiveIpv4AddressTypeHolder BgpExtendedCommunityTransitiveIpv4AddressType + transitive_4OctetAsTypeHolder BgpExtendedCommunityTransitive4OctetAsType + transitiveOpaqueTypeHolder BgpExtendedCommunityTransitiveOpaqueType + transitiveEvpnTypeHolder BgpExtendedCommunityTransitiveEvpnType + nonTransitive_2OctetAsTypeHolder BgpExtendedCommunityNonTransitive2OctetAsType + customHolder BgpExtendedCommunityCustomType +} + +func NewBgpExtendedCommunity() BgpExtendedCommunity { + obj := bgpExtendedCommunity{obj: &otg.BgpExtendedCommunity{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunity) Msg() *otg.BgpExtendedCommunity { + return obj.obj +} + +func (obj *bgpExtendedCommunity) SetMsg(msg *otg.BgpExtendedCommunity) BgpExtendedCommunity { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpExtendedCommunity) ToProto() (*otg.BgpExtendedCommunity, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpExtendedCommunity) FromProto(msg *otg.BgpExtendedCommunity) (BgpExtendedCommunity, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpExtendedCommunity) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpExtendedCommunity) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpExtendedCommunity) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpExtendedCommunity) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpExtendedCommunity) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpExtendedCommunity) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunity) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunity) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunity) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunity) Clone() (BgpExtendedCommunity, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunity() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpExtendedCommunity) setNil() { + obj.transitive_2OctetAsTypeHolder = nil + obj.transitiveIpv4AddressTypeHolder = nil + obj.transitive_4OctetAsTypeHolder = nil + obj.transitiveOpaqueTypeHolder = nil + obj.transitiveEvpnTypeHolder = nil + obj.nonTransitive_2OctetAsTypeHolder = nil + obj.customHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunity is the Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value.It is divided into two main parts. The first 2 Bytes of the community encode a type and optonal sub-type field. The last 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a format defined by the type and optional sub-type field. Extended communities provide a larger range for grouping or categorizing communities. +type BgpExtendedCommunity interface { + Validation + // Msg marshals BgpExtendedCommunity to protobuf object *otg.BgpExtendedCommunity + // and doesn't set defaults + Msg() *otg.BgpExtendedCommunity + // SetMsg unmarshals BgpExtendedCommunity from protobuf object *otg.BgpExtendedCommunity + // and doesn't set defaults + SetMsg(*otg.BgpExtendedCommunity) BgpExtendedCommunity + // ToProto marshals BgpExtendedCommunity to protobuf object *otg.BgpExtendedCommunity + ToProto() (*otg.BgpExtendedCommunity, error) + // ToPbText marshals BgpExtendedCommunity to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunity to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunity to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpExtendedCommunity from protobuf object *otg.BgpExtendedCommunity + FromProto(msg *otg.BgpExtendedCommunity) (BgpExtendedCommunity, error) + // FromPbText unmarshals BgpExtendedCommunity from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunity from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunity from JSON text + FromJson(value string) error + // Validate validates BgpExtendedCommunity + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunity, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns BgpExtendedCommunityChoiceEnum, set in BgpExtendedCommunity + Choice() BgpExtendedCommunityChoiceEnum + // SetChoice assigns BgpExtendedCommunityChoiceEnum provided by user to BgpExtendedCommunity + SetChoice(value BgpExtendedCommunityChoiceEnum) BgpExtendedCommunity + // HasChoice checks if Choice has been set in BgpExtendedCommunity + HasChoice() bool + // Transitive2OctetAsType returns BgpExtendedCommunityTransitive2OctetAsType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitive2OctetAsType is the Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . + Transitive2OctetAsType() BgpExtendedCommunityTransitive2OctetAsType + // SetTransitive2OctetAsType assigns BgpExtendedCommunityTransitive2OctetAsType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitive2OctetAsType is the Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . + SetTransitive2OctetAsType(value BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunity + // HasTransitive2OctetAsType checks if Transitive2OctetAsType has been set in BgpExtendedCommunity + HasTransitive2OctetAsType() bool + // TransitiveIpv4AddressType returns BgpExtendedCommunityTransitiveIpv4AddressType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveIpv4AddressType is the Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + TransitiveIpv4AddressType() BgpExtendedCommunityTransitiveIpv4AddressType + // SetTransitiveIpv4AddressType assigns BgpExtendedCommunityTransitiveIpv4AddressType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveIpv4AddressType is the Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + SetTransitiveIpv4AddressType(value BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunity + // HasTransitiveIpv4AddressType checks if TransitiveIpv4AddressType has been set in BgpExtendedCommunity + HasTransitiveIpv4AddressType() bool + // Transitive4OctetAsType returns BgpExtendedCommunityTransitive4OctetAsType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitive4OctetAsType is the Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. + Transitive4OctetAsType() BgpExtendedCommunityTransitive4OctetAsType + // SetTransitive4OctetAsType assigns BgpExtendedCommunityTransitive4OctetAsType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitive4OctetAsType is the Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. + SetTransitive4OctetAsType(value BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunity + // HasTransitive4OctetAsType checks if Transitive4OctetAsType has been set in BgpExtendedCommunity + HasTransitive4OctetAsType() bool + // TransitiveOpaqueType returns BgpExtendedCommunityTransitiveOpaqueType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveOpaqueType is the Transitive Opaque Extended Community is sent as type 0x03. + TransitiveOpaqueType() BgpExtendedCommunityTransitiveOpaqueType + // SetTransitiveOpaqueType assigns BgpExtendedCommunityTransitiveOpaqueType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveOpaqueType is the Transitive Opaque Extended Community is sent as type 0x03. + SetTransitiveOpaqueType(value BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunity + // HasTransitiveOpaqueType checks if TransitiveOpaqueType has been set in BgpExtendedCommunity + HasTransitiveOpaqueType() bool + // TransitiveEvpnType returns BgpExtendedCommunityTransitiveEvpnType, set in BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveEvpnType is the Transitive EVPN Extended Community is sent as type 0x06 . + TransitiveEvpnType() BgpExtendedCommunityTransitiveEvpnType + // SetTransitiveEvpnType assigns BgpExtendedCommunityTransitiveEvpnType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityTransitiveEvpnType is the Transitive EVPN Extended Community is sent as type 0x06 . + SetTransitiveEvpnType(value BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunity + // HasTransitiveEvpnType checks if TransitiveEvpnType has been set in BgpExtendedCommunity + HasTransitiveEvpnType() bool + // NonTransitive2OctetAsType returns BgpExtendedCommunityNonTransitive2OctetAsType, set in BgpExtendedCommunity. + // BgpExtendedCommunityNonTransitive2OctetAsType is the Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. + NonTransitive2OctetAsType() BgpExtendedCommunityNonTransitive2OctetAsType + // SetNonTransitive2OctetAsType assigns BgpExtendedCommunityNonTransitive2OctetAsType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityNonTransitive2OctetAsType is the Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. + SetNonTransitive2OctetAsType(value BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunity + // HasNonTransitive2OctetAsType checks if NonTransitive2OctetAsType has been set in BgpExtendedCommunity + HasNonTransitive2OctetAsType() bool + // Custom returns BgpExtendedCommunityCustomType, set in BgpExtendedCommunity. + // BgpExtendedCommunityCustomType is add a custom Extended Community with a combination of types , sub-types and values not explicitly specified above or not defined yet. + Custom() BgpExtendedCommunityCustomType + // SetCustom assigns BgpExtendedCommunityCustomType provided by user to BgpExtendedCommunity. + // BgpExtendedCommunityCustomType is add a custom Extended Community with a combination of types , sub-types and values not explicitly specified above or not defined yet. + SetCustom(value BgpExtendedCommunityCustomType) BgpExtendedCommunity + // HasCustom checks if Custom has been set in BgpExtendedCommunity + HasCustom() bool + setNil() +} + +type BgpExtendedCommunityChoiceEnum string + +// Enum of Choice on BgpExtendedCommunity +var BgpExtendedCommunityChoice = struct { + TRANSITIVE_2OCTET_AS_TYPE BgpExtendedCommunityChoiceEnum + TRANSITIVE_IPV4_ADDRESS_TYPE BgpExtendedCommunityChoiceEnum + TRANSITIVE_4OCTET_AS_TYPE BgpExtendedCommunityChoiceEnum + TRANSITIVE_OPAQUE_TYPE BgpExtendedCommunityChoiceEnum + TRANSITIVE_EVPN_TYPE BgpExtendedCommunityChoiceEnum + NON_TRANSITIVE_2OCTET_AS_TYPE BgpExtendedCommunityChoiceEnum + CUSTOM BgpExtendedCommunityChoiceEnum +}{ + TRANSITIVE_2OCTET_AS_TYPE: BgpExtendedCommunityChoiceEnum("transitive_2octet_as_type"), + TRANSITIVE_IPV4_ADDRESS_TYPE: BgpExtendedCommunityChoiceEnum("transitive_ipv4_address_type"), + TRANSITIVE_4OCTET_AS_TYPE: BgpExtendedCommunityChoiceEnum("transitive_4octet_as_type"), + TRANSITIVE_OPAQUE_TYPE: BgpExtendedCommunityChoiceEnum("transitive_opaque_type"), + TRANSITIVE_EVPN_TYPE: BgpExtendedCommunityChoiceEnum("transitive_evpn_type"), + NON_TRANSITIVE_2OCTET_AS_TYPE: BgpExtendedCommunityChoiceEnum("non_transitive_2octet_as_type"), + CUSTOM: BgpExtendedCommunityChoiceEnum("custom"), +} + +func (obj *bgpExtendedCommunity) Choice() BgpExtendedCommunityChoiceEnum { + return BgpExtendedCommunityChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunity) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *bgpExtendedCommunity) SetChoice(value BgpExtendedCommunityChoiceEnum) BgpExtendedCommunity { + intValue, ok := otg.BgpExtendedCommunity_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunity_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Custom = nil + obj.customHolder = nil + obj.obj.NonTransitive_2OctetAsType = nil + obj.nonTransitive_2OctetAsTypeHolder = nil + obj.obj.TransitiveEvpnType = nil + obj.transitiveEvpnTypeHolder = nil + obj.obj.TransitiveOpaqueType = nil + obj.transitiveOpaqueTypeHolder = nil + obj.obj.Transitive_4OctetAsType = nil + obj.transitive_4OctetAsTypeHolder = nil + obj.obj.TransitiveIpv4AddressType = nil + obj.transitiveIpv4AddressTypeHolder = nil + obj.obj.Transitive_2OctetAsType = nil + obj.transitive_2OctetAsTypeHolder = nil + + if value == BgpExtendedCommunityChoice.TRANSITIVE_2OCTET_AS_TYPE { + obj.obj.Transitive_2OctetAsType = NewBgpExtendedCommunityTransitive2OctetAsType().Msg() + } + + if value == BgpExtendedCommunityChoice.TRANSITIVE_IPV4_ADDRESS_TYPE { + obj.obj.TransitiveIpv4AddressType = NewBgpExtendedCommunityTransitiveIpv4AddressType().Msg() + } + + if value == BgpExtendedCommunityChoice.TRANSITIVE_4OCTET_AS_TYPE { + obj.obj.Transitive_4OctetAsType = NewBgpExtendedCommunityTransitive4OctetAsType().Msg() + } + + if value == BgpExtendedCommunityChoice.TRANSITIVE_OPAQUE_TYPE { + obj.obj.TransitiveOpaqueType = NewBgpExtendedCommunityTransitiveOpaqueType().Msg() + } + + if value == BgpExtendedCommunityChoice.TRANSITIVE_EVPN_TYPE { + obj.obj.TransitiveEvpnType = NewBgpExtendedCommunityTransitiveEvpnType().Msg() + } + + if value == BgpExtendedCommunityChoice.NON_TRANSITIVE_2OCTET_AS_TYPE { + obj.obj.NonTransitive_2OctetAsType = NewBgpExtendedCommunityNonTransitive2OctetAsType().Msg() + } + + if value == BgpExtendedCommunityChoice.CUSTOM { + obj.obj.Custom = NewBgpExtendedCommunityCustomType().Msg() + } + + return obj +} + +// description is TBD +// Transitive2OctetAsType returns a BgpExtendedCommunityTransitive2OctetAsType +func (obj *bgpExtendedCommunity) Transitive2OctetAsType() BgpExtendedCommunityTransitive2OctetAsType { + if obj.obj.Transitive_2OctetAsType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_2OCTET_AS_TYPE) + } + if obj.transitive_2OctetAsTypeHolder == nil { + obj.transitive_2OctetAsTypeHolder = &bgpExtendedCommunityTransitive2OctetAsType{obj: obj.obj.Transitive_2OctetAsType} + } + return obj.transitive_2OctetAsTypeHolder +} + +// description is TBD +// Transitive2OctetAsType returns a BgpExtendedCommunityTransitive2OctetAsType +func (obj *bgpExtendedCommunity) HasTransitive2OctetAsType() bool { + return obj.obj.Transitive_2OctetAsType != nil +} + +// description is TBD +// SetTransitive2OctetAsType sets the BgpExtendedCommunityTransitive2OctetAsType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitive2OctetAsType(value BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_2OCTET_AS_TYPE) + obj.transitive_2OctetAsTypeHolder = nil + obj.obj.Transitive_2OctetAsType = value.Msg() + + return obj +} + +// description is TBD +// TransitiveIpv4AddressType returns a BgpExtendedCommunityTransitiveIpv4AddressType +func (obj *bgpExtendedCommunity) TransitiveIpv4AddressType() BgpExtendedCommunityTransitiveIpv4AddressType { + if obj.obj.TransitiveIpv4AddressType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_IPV4_ADDRESS_TYPE) + } + if obj.transitiveIpv4AddressTypeHolder == nil { + obj.transitiveIpv4AddressTypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressType{obj: obj.obj.TransitiveIpv4AddressType} + } + return obj.transitiveIpv4AddressTypeHolder +} + +// description is TBD +// TransitiveIpv4AddressType returns a BgpExtendedCommunityTransitiveIpv4AddressType +func (obj *bgpExtendedCommunity) HasTransitiveIpv4AddressType() bool { + return obj.obj.TransitiveIpv4AddressType != nil +} + +// description is TBD +// SetTransitiveIpv4AddressType sets the BgpExtendedCommunityTransitiveIpv4AddressType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitiveIpv4AddressType(value BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_IPV4_ADDRESS_TYPE) + obj.transitiveIpv4AddressTypeHolder = nil + obj.obj.TransitiveIpv4AddressType = value.Msg() + + return obj +} + +// description is TBD +// Transitive4OctetAsType returns a BgpExtendedCommunityTransitive4OctetAsType +func (obj *bgpExtendedCommunity) Transitive4OctetAsType() BgpExtendedCommunityTransitive4OctetAsType { + if obj.obj.Transitive_4OctetAsType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_4OCTET_AS_TYPE) + } + if obj.transitive_4OctetAsTypeHolder == nil { + obj.transitive_4OctetAsTypeHolder = &bgpExtendedCommunityTransitive4OctetAsType{obj: obj.obj.Transitive_4OctetAsType} + } + return obj.transitive_4OctetAsTypeHolder +} + +// description is TBD +// Transitive4OctetAsType returns a BgpExtendedCommunityTransitive4OctetAsType +func (obj *bgpExtendedCommunity) HasTransitive4OctetAsType() bool { + return obj.obj.Transitive_4OctetAsType != nil +} + +// description is TBD +// SetTransitive4OctetAsType sets the BgpExtendedCommunityTransitive4OctetAsType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitive4OctetAsType(value BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_4OCTET_AS_TYPE) + obj.transitive_4OctetAsTypeHolder = nil + obj.obj.Transitive_4OctetAsType = value.Msg() + + return obj +} + +// description is TBD +// TransitiveOpaqueType returns a BgpExtendedCommunityTransitiveOpaqueType +func (obj *bgpExtendedCommunity) TransitiveOpaqueType() BgpExtendedCommunityTransitiveOpaqueType { + if obj.obj.TransitiveOpaqueType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_OPAQUE_TYPE) + } + if obj.transitiveOpaqueTypeHolder == nil { + obj.transitiveOpaqueTypeHolder = &bgpExtendedCommunityTransitiveOpaqueType{obj: obj.obj.TransitiveOpaqueType} + } + return obj.transitiveOpaqueTypeHolder +} + +// description is TBD +// TransitiveOpaqueType returns a BgpExtendedCommunityTransitiveOpaqueType +func (obj *bgpExtendedCommunity) HasTransitiveOpaqueType() bool { + return obj.obj.TransitiveOpaqueType != nil +} + +// description is TBD +// SetTransitiveOpaqueType sets the BgpExtendedCommunityTransitiveOpaqueType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitiveOpaqueType(value BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_OPAQUE_TYPE) + obj.transitiveOpaqueTypeHolder = nil + obj.obj.TransitiveOpaqueType = value.Msg() + + return obj +} + +// description is TBD +// TransitiveEvpnType returns a BgpExtendedCommunityTransitiveEvpnType +func (obj *bgpExtendedCommunity) TransitiveEvpnType() BgpExtendedCommunityTransitiveEvpnType { + if obj.obj.TransitiveEvpnType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_EVPN_TYPE) + } + if obj.transitiveEvpnTypeHolder == nil { + obj.transitiveEvpnTypeHolder = &bgpExtendedCommunityTransitiveEvpnType{obj: obj.obj.TransitiveEvpnType} + } + return obj.transitiveEvpnTypeHolder +} + +// description is TBD +// TransitiveEvpnType returns a BgpExtendedCommunityTransitiveEvpnType +func (obj *bgpExtendedCommunity) HasTransitiveEvpnType() bool { + return obj.obj.TransitiveEvpnType != nil +} + +// description is TBD +// SetTransitiveEvpnType sets the BgpExtendedCommunityTransitiveEvpnType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetTransitiveEvpnType(value BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_EVPN_TYPE) + obj.transitiveEvpnTypeHolder = nil + obj.obj.TransitiveEvpnType = value.Msg() + + return obj +} + +// description is TBD +// NonTransitive2OctetAsType returns a BgpExtendedCommunityNonTransitive2OctetAsType +func (obj *bgpExtendedCommunity) NonTransitive2OctetAsType() BgpExtendedCommunityNonTransitive2OctetAsType { + if obj.obj.NonTransitive_2OctetAsType == nil { + obj.SetChoice(BgpExtendedCommunityChoice.NON_TRANSITIVE_2OCTET_AS_TYPE) + } + if obj.nonTransitive_2OctetAsTypeHolder == nil { + obj.nonTransitive_2OctetAsTypeHolder = &bgpExtendedCommunityNonTransitive2OctetAsType{obj: obj.obj.NonTransitive_2OctetAsType} + } + return obj.nonTransitive_2OctetAsTypeHolder +} + +// description is TBD +// NonTransitive2OctetAsType returns a BgpExtendedCommunityNonTransitive2OctetAsType +func (obj *bgpExtendedCommunity) HasNonTransitive2OctetAsType() bool { + return obj.obj.NonTransitive_2OctetAsType != nil +} + +// description is TBD +// SetNonTransitive2OctetAsType sets the BgpExtendedCommunityNonTransitive2OctetAsType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetNonTransitive2OctetAsType(value BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.NON_TRANSITIVE_2OCTET_AS_TYPE) + obj.nonTransitive_2OctetAsTypeHolder = nil + obj.obj.NonTransitive_2OctetAsType = value.Msg() + + return obj +} + +// description is TBD +// Custom returns a BgpExtendedCommunityCustomType +func (obj *bgpExtendedCommunity) Custom() BgpExtendedCommunityCustomType { + if obj.obj.Custom == nil { + obj.SetChoice(BgpExtendedCommunityChoice.CUSTOM) + } + if obj.customHolder == nil { + obj.customHolder = &bgpExtendedCommunityCustomType{obj: obj.obj.Custom} + } + return obj.customHolder +} + +// description is TBD +// Custom returns a BgpExtendedCommunityCustomType +func (obj *bgpExtendedCommunity) HasCustom() bool { + return obj.obj.Custom != nil +} + +// description is TBD +// SetCustom sets the BgpExtendedCommunityCustomType value in the BgpExtendedCommunity object +func (obj *bgpExtendedCommunity) SetCustom(value BgpExtendedCommunityCustomType) BgpExtendedCommunity { + obj.SetChoice(BgpExtendedCommunityChoice.CUSTOM) + obj.customHolder = nil + obj.obj.Custom = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunity) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Transitive_2OctetAsType != nil { + + obj.Transitive2OctetAsType().validateObj(vObj, set_default) + } + + if obj.obj.TransitiveIpv4AddressType != nil { + + obj.TransitiveIpv4AddressType().validateObj(vObj, set_default) + } + + if obj.obj.Transitive_4OctetAsType != nil { + + obj.Transitive4OctetAsType().validateObj(vObj, set_default) + } + + if obj.obj.TransitiveOpaqueType != nil { + + obj.TransitiveOpaqueType().validateObj(vObj, set_default) + } + + if obj.obj.TransitiveEvpnType != nil { + + obj.TransitiveEvpnType().validateObj(vObj, set_default) + } + + if obj.obj.NonTransitive_2OctetAsType != nil { + + obj.NonTransitive2OctetAsType().validateObj(vObj, set_default) + } + + if obj.obj.Custom != nil { + + obj.Custom().validateObj(vObj, set_default) + } + +} + +func (obj *bgpExtendedCommunity) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityChoice.TRANSITIVE_2OCTET_AS_TYPE) + + } + +} + // ***** BgpSrteV4TunnelTlv ***** type bgpSrteV4TunnelTlv struct { validation @@ -295846,29 +296703,31 @@ func (obj *bgpAsPathSegment) setDefault() { } -// ***** BgpSrteRemoteEndpointSubTlv ***** -type bgpSrteRemoteEndpointSubTlv struct { +// ***** BgpExtendedCommunityTransitive2OctetAsType ***** +type bgpExtendedCommunityTransitive2OctetAsType struct { validation - obj *otg.BgpSrteRemoteEndpointSubTlv + obj *otg.BgpExtendedCommunityTransitive2OctetAsType + routeTargetSubtypeHolder BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin } -func NewBgpSrteRemoteEndpointSubTlv() BgpSrteRemoteEndpointSubTlv { - obj := bgpSrteRemoteEndpointSubTlv{obj: &otg.BgpSrteRemoteEndpointSubTlv{}} +func NewBgpExtendedCommunityTransitive2OctetAsType() BgpExtendedCommunityTransitive2OctetAsType { + obj := bgpExtendedCommunityTransitive2OctetAsType{obj: &otg.BgpExtendedCommunityTransitive2OctetAsType{}} obj.setDefault() return &obj } -func (obj *bgpSrteRemoteEndpointSubTlv) Msg() *otg.BgpSrteRemoteEndpointSubTlv { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Msg() *otg.BgpExtendedCommunityTransitive2OctetAsType { return obj.obj } -func (obj *bgpSrteRemoteEndpointSubTlv) SetMsg(msg *otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv { - +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunityTransitive2OctetAsType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -295876,7 +296735,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpointSub return obj.Msg(), nil } -func (obj *bgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) (BgpExtendedCommunityTransitive2OctetAsType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -295885,7 +296744,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteEndpoint return newObj, nil } -func (obj *bgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -295897,12 +296756,12 @@ func (obj *bgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -295910,7 +296769,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -295931,7 +296790,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -295948,7 +296807,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -295956,7 +296815,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -295974,7 +296833,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteRemoteEndpointSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -295987,7 +296846,7 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -295995,19 +296854,19 @@ func (obj *bgpSrteRemoteEndpointSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteRemoteEndpointSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteRemoteEndpointSubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteRemoteEndpointSubTlv) String() string { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -296015,12 +296874,12 @@ func (obj *bgpSrteRemoteEndpointSubTlv) String() string { return str } -func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Clone() (BgpExtendedCommunityTransitive2OctetAsType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteRemoteEndpointSubTlv() + newObj := NewBgpExtendedCommunityTransitive2OctetAsType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -296032,231 +296891,225 @@ func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, er return newObj, nil } -// BgpSrteRemoteEndpointSubTlv is configuration for the BGP remote endpoint sub TLV. -type BgpSrteRemoteEndpointSubTlv interface { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitive2OctetAsType is the Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +type BgpExtendedCommunityTransitive2OctetAsType interface { Validation - // Msg marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv + // Msg marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType // and doesn't set defaults - Msg() *otg.BgpSrteRemoteEndpointSubTlv - // SetMsg unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv + Msg() *otg.BgpExtendedCommunityTransitive2OctetAsType + // SetMsg unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType // and doesn't set defaults - SetMsg(*otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv - // ToProto marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv - ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) - // ToPbText marshals BgpSrteRemoteEndpointSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunityTransitive2OctetAsType + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteRemoteEndpointSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteRemoteEndpointSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv - FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) - // FromPbText unmarshals BgpSrteRemoteEndpointSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) (BgpExtendedCommunityTransitive2OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteRemoteEndpointSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteRemoteEndpointSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsType from JSON text FromJson(value string) error - // Validate validates BgpSrteRemoteEndpointSubTlv + // Validate validates BgpExtendedCommunityTransitive2OctetAsType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteRemoteEndpointSubTlv, error) + Clone() (BgpExtendedCommunityTransitive2OctetAsType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // AsNumber returns uint32, set in BgpSrteRemoteEndpointSubTlv. - AsNumber() uint32 - // SetAsNumber assigns uint32 provided by user to BgpSrteRemoteEndpointSubTlv - SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv - // HasAsNumber checks if AsNumber has been set in BgpSrteRemoteEndpointSubTlv - HasAsNumber() bool - // AddressFamily returns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum, set in BgpSrteRemoteEndpointSubTlv - AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum - // SetAddressFamily assigns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum provided by user to BgpSrteRemoteEndpointSubTlv - SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv - // HasAddressFamily checks if AddressFamily has been set in BgpSrteRemoteEndpointSubTlv - HasAddressFamily() bool - // Ipv4Address returns string, set in BgpSrteRemoteEndpointSubTlv. - Ipv4Address() string - // SetIpv4Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv - SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv - // HasIpv4Address checks if Ipv4Address has been set in BgpSrteRemoteEndpointSubTlv - HasIpv4Address() bool - // Ipv6Address returns string, set in BgpSrteRemoteEndpointSubTlv. - Ipv6Address() string - // SetIpv6Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv - SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv - // HasIpv6Address checks if Ipv6Address has been set in BgpSrteRemoteEndpointSubTlv - HasIpv6Address() bool -} - -// Autonomous system (AS) number -// AsNumber returns a uint32 -func (obj *bgpSrteRemoteEndpointSubTlv) AsNumber() uint32 { - - return *obj.obj.AsNumber - -} - -// Autonomous system (AS) number -// AsNumber returns a uint32 -func (obj *bgpSrteRemoteEndpointSubTlv) HasAsNumber() bool { - return obj.obj.AsNumber != nil -} - -// Autonomous system (AS) number -// SetAsNumber sets the uint32 value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv { - - obj.obj.AsNumber = &value - return obj + // Choice returns BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum, set in BgpExtendedCommunityTransitive2OctetAsType + Choice() BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityTransitive2OctetAsType + SetChoice(value BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive2OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitive2OctetAsType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, set in BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + RouteTargetSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget provided by user to BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + SetRouteTargetSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitive2OctetAsType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, set in BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + RouteOriginSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin provided by user to BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + SetRouteOriginSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitive2OctetAsType + HasRouteOriginSubtype() bool + setNil() } -type BgpSrteRemoteEndpointSubTlvAddressFamilyEnum string +type BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum string -// Enum of AddressFamily on BgpSrteRemoteEndpointSubTlv -var BgpSrteRemoteEndpointSubTlvAddressFamily = struct { - IPV4 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum - IPV6 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum +// Enum of Choice on BgpExtendedCommunityTransitive2OctetAsType +var BgpExtendedCommunityTransitive2OctetAsTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum }{ - IPV4: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv4"), - IPV6: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv6"), + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum("route_origin_subtype"), } -func (obj *bgpSrteRemoteEndpointSubTlv) AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum { - return BgpSrteRemoteEndpointSubTlvAddressFamilyEnum(obj.obj.AddressFamily.Enum().String()) +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Choice() BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum { + return BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// Determines the address type -// AddressFamily returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasAddressFamily() bool { - return obj.obj.AddressFamily != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil } -func (obj *bgpSrteRemoteEndpointSubTlv) SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv { - intValue, ok := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum_value[string(value)] +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetChoice(value BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive2OctetAsType { + intValue, ok := otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum_value[string(value)] if !ok { obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteRemoteEndpointSubTlvAddressFamilyEnum", string(value))) + "%s is not a valid choice on BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum", string(value))) return obj } - enumValue := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum(intValue) - obj.obj.AddressFamily = &enumValue + enumValue := otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil - return obj -} + if value == BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget().Msg() + } -// The IPv4 address of the Remote Endpoint. -// Ipv4Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) Ipv4Address() string { + if value == BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin().Msg() + } - return *obj.obj.Ipv4Address + return obj +} +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive2OctetAsType) RouteTargetSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder } -// The IPv4 address of the Remote Endpoint. -// Ipv4Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv4Address() bool { - return obj.obj.Ipv4Address != nil +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil } -// The IPv4 address of the Remote Endpoint. -// SetIpv4Address sets the string value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv { +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget value in the BgpExtendedCommunityTransitive2OctetAsType object +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsType { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.Msg() - obj.obj.Ipv4Address = &value return obj } -// The IPv6 address of the Remote Endpoint. -// Ipv6Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) Ipv6Address() string { - - return *obj.obj.Ipv6Address - +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive2OctetAsType) RouteOriginSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder } -// The IPv6 address of the Remote Endpoint. -// Ipv6Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv6Address() bool { - return obj.obj.Ipv6Address != nil +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil } -// The IPv6 address of the Remote Endpoint. -// SetIpv6Address sets the string value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv { +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin value in the BgpExtendedCommunityTransitive2OctetAsType object +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsType { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.Msg() - obj.obj.Ipv6Address = &value return obj } -func (obj *bgpSrteRemoteEndpointSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive2OctetAsType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Ipv4Address != nil { - - err := obj.validateIpv4(obj.Ipv4Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv4Address")) - } + if obj.obj.RouteTargetSubtype != nil { + obj.RouteTargetSubtype().validateObj(vObj, set_default) } - if obj.obj.Ipv6Address != nil { - - err := obj.validateIpv6(obj.Ipv6Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv6Address")) - } + if obj.obj.RouteOriginSubtype != nil { + obj.RouteOriginSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrteRemoteEndpointSubTlv) setDefault() { - if obj.obj.AsNumber == nil { - obj.SetAsNumber(0) - } - if obj.obj.AddressFamily == nil { - obj.SetAddressFamily(BgpSrteRemoteEndpointSubTlvAddressFamily.IPV4) +func (obj *bgpExtendedCommunityTransitive2OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) } - if obj.obj.Ipv4Address == nil { - obj.SetIpv4Address("0.0.0.0") - } - if obj.obj.Ipv6Address == nil { - obj.SetIpv6Address("::0") - } } -// ***** BgpSrteColorSubTlv ***** -type bgpSrteColorSubTlv struct { +// ***** BgpExtendedCommunityTransitiveIpv4AddressType ***** +type bgpExtendedCommunityTransitiveIpv4AddressType struct { validation - obj *otg.BgpSrteColorSubTlv + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressType + routeTargetSubtypeHolder BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin } -func NewBgpSrteColorSubTlv() BgpSrteColorSubTlv { - obj := bgpSrteColorSubTlv{obj: &otg.BgpSrteColorSubTlv{}} +func NewBgpExtendedCommunityTransitiveIpv4AddressType() BgpExtendedCommunityTransitiveIpv4AddressType { + obj := bgpExtendedCommunityTransitiveIpv4AddressType{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressType{}} obj.setDefault() return &obj } -func (obj *bgpSrteColorSubTlv) Msg() *otg.BgpSrteColorSubTlv { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressType { return obj.obj } -func (obj *bgpSrteColorSubTlv) SetMsg(msg *otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv { - +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -296264,7 +297117,7 @@ func (obj *bgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { return obj.Msg(), nil } -func (obj *bgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) (BgpExtendedCommunityTransitiveIpv4AddressType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -296273,7 +297126,7 @@ func (obj *bgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteCo return newObj, nil } -func (obj *bgpSrteColorSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296285,12 +297138,12 @@ func (obj *bgpSrteColorSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteColorSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296298,7 +297151,7 @@ func (obj *bgpSrteColorSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrteColorSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296319,7 +297172,7 @@ func (obj *bgpSrteColorSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteColorSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -296336,7 +297189,7 @@ func (obj *bgpSrteColorSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296344,7 +297197,7 @@ func (obj *bgpSrteColorSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrteColorSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296362,7 +297215,7 @@ func (obj *bgpSrteColorSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteColorSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -296375,7 +297228,7 @@ func (obj *bgpSrteColorSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -296383,19 +297236,19 @@ func (obj *bgpSrteColorSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteColorSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteColorSubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteColorSubTlv) String() string { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -296403,12 +297256,12 @@ func (obj *bgpSrteColorSubTlv) String() string { return str } -func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Clone() (BgpExtendedCommunityTransitiveIpv4AddressType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteColorSubTlv() + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -296420,113 +297273,225 @@ func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { return newObj, nil } -// BgpSrteColorSubTlv is configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used as a way to "color" the corresponding Tunnel TLV. The Value field of the sub-TLV is eight octets long and consists of a Color Extended Community. First two octets of its Value field are 0x030b as type and subtype of extended community. Remaining six octets are are exposed to configure. -type BgpSrteColorSubTlv interface { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveIpv4AddressType is the Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +type BgpExtendedCommunityTransitiveIpv4AddressType interface { Validation - // Msg marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + // Msg marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType // and doesn't set defaults - Msg() *otg.BgpSrteColorSubTlv - // SetMsg unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressType + // SetMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType // and doesn't set defaults - SetMsg(*otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv - // ToProto marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv - ToProto() (*otg.BgpSrteColorSubTlv, error) - // ToPbText marshals BgpSrteColorSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunityTransitiveIpv4AddressType + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteColorSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteColorSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv - FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) - // FromPbText unmarshals BgpSrteColorSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) (BgpExtendedCommunityTransitiveIpv4AddressType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteColorSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteColorSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from JSON text FromJson(value string) error - // Validate validates BgpSrteColorSubTlv + // Validate validates BgpExtendedCommunityTransitiveIpv4AddressType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteColorSubTlv, error) + Clone() (BgpExtendedCommunityTransitiveIpv4AddressType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Color returns string, set in BgpSrteColorSubTlv. - Color() string - // SetColor assigns string provided by user to BgpSrteColorSubTlv - SetColor(value string) BgpSrteColorSubTlv - // HasColor checks if Color has been set in BgpSrteColorSubTlv - HasColor() bool + // Choice returns BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum, set in BgpExtendedCommunityTransitiveIpv4AddressType + Choice() BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveIpv4AddressType + SetChoice(value BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum) BgpExtendedCommunityTransitiveIpv4AddressType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, set in BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + RouteTargetSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget provided by user to BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + SetRouteTargetSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, set in BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + RouteOriginSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin provided by user to BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + SetRouteOriginSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasRouteOriginSubtype() bool + setNil() } -// Six octet values. Example: 000000000064 for color value 100. -// Color returns a string -func (obj *bgpSrteColorSubTlv) Color() string { +type BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum string - return *obj.obj.Color +// Enum of Choice on BgpExtendedCommunityTransitiveIpv4AddressType +var BgpExtendedCommunityTransitiveIpv4AddressTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum +}{ + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum("route_origin_subtype"), +} +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Choice() BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum { + return BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// Six octet values. Example: 000000000064 for color value 100. -// Color returns a string -func (obj *bgpSrteColorSubTlv) HasColor() bool { - return obj.obj.Color != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasChoice() bool { + return obj.obj.Choice != nil } -// Six octet values. Example: 000000000064 for color value 100. -// SetColor sets the string value in the BgpSrteColorSubTlv object -func (obj *bgpSrteColorSubTlv) SetColor(value string) BgpSrteColorSubTlv { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetChoice(value BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum) BgpExtendedCommunityTransitiveIpv4AddressType { + intValue, ok := otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget().Msg() + } + + if value == BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin().Msg() + } - obj.obj.Color = &value return obj } -func (obj *bgpSrteColorSubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) RouteTargetSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder +} + +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil +} + +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget value in the BgpExtendedCommunityTransitiveIpv4AddressType object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.Msg() + + return obj +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) RouteOriginSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil +} + +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin value in the BgpExtendedCommunityTransitiveIpv4AddressType object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Color != nil { + if obj.obj.RouteTargetSubtype != nil { - err := obj.validateHex(obj.Color()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteColorSubTlv.Color")) - } + obj.RouteTargetSubtype().validateObj(vObj, set_default) + } + + if obj.obj.RouteOriginSubtype != nil { + obj.RouteOriginSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrteColorSubTlv) setDefault() { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + + } } -// ***** BgpSrteBindingSubTlv ***** -type bgpSrteBindingSubTlv struct { +// ***** BgpExtendedCommunityTransitive4OctetAsType ***** +type bgpExtendedCommunityTransitive4OctetAsType struct { validation - obj *otg.BgpSrteBindingSubTlv + obj *otg.BgpExtendedCommunityTransitive4OctetAsType + routeTargetSubtypeHolder BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin } -func NewBgpSrteBindingSubTlv() BgpSrteBindingSubTlv { - obj := bgpSrteBindingSubTlv{obj: &otg.BgpSrteBindingSubTlv{}} +func NewBgpExtendedCommunityTransitive4OctetAsType() BgpExtendedCommunityTransitive4OctetAsType { + obj := bgpExtendedCommunityTransitive4OctetAsType{obj: &otg.BgpExtendedCommunityTransitive4OctetAsType{}} obj.setDefault() return &obj } -func (obj *bgpSrteBindingSubTlv) Msg() *otg.BgpSrteBindingSubTlv { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Msg() *otg.BgpExtendedCommunityTransitive4OctetAsType { return obj.obj } -func (obj *bgpSrteBindingSubTlv) SetMsg(msg *otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv { - +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunityTransitive4OctetAsType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -296534,7 +297499,7 @@ func (obj *bgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, error) { return obj.Msg(), nil } -func (obj *bgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) (BgpExtendedCommunityTransitive4OctetAsType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -296543,7 +297508,7 @@ func (obj *bgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSr return newObj, nil } -func (obj *bgpSrteBindingSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296555,12 +297520,12 @@ func (obj *bgpSrteBindingSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteBindingSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296568,7 +297533,7 @@ func (obj *bgpSrteBindingSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrteBindingSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296589,7 +297554,7 @@ func (obj *bgpSrteBindingSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteBindingSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -296606,7 +297571,7 @@ func (obj *bgpSrteBindingSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296614,7 +297579,7 @@ func (obj *bgpSrteBindingSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrteBindingSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296632,7 +297597,7 @@ func (obj *bgpSrteBindingSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteBindingSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -296645,7 +297610,7 @@ func (obj *bgpSrteBindingSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -296653,19 +297618,19 @@ func (obj *bgpSrteBindingSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteBindingSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteBindingSubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteBindingSubTlv) String() string { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -296673,12 +297638,12 @@ func (obj *bgpSrteBindingSubTlv) String() string { return str } -func (obj *bgpSrteBindingSubTlv) Clone() (BgpSrteBindingSubTlv, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Clone() (BgpExtendedCommunityTransitive4OctetAsType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteBindingSubTlv() + newObj := NewBgpExtendedCommunityTransitive4OctetAsType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -296690,249 +297655,225 @@ func (obj *bgpSrteBindingSubTlv) Clone() (BgpSrteBindingSubTlv, error) { return newObj, nil } -// BgpSrteBindingSubTlv is configuration for the binding SID sub-TLV. This is used to signal the binding SID related information of the SR Policy candidate path. -type BgpSrteBindingSubTlv interface { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitive4OctetAsType is the Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. +type BgpExtendedCommunityTransitive4OctetAsType interface { Validation - // Msg marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv + // Msg marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType // and doesn't set defaults - Msg() *otg.BgpSrteBindingSubTlv - // SetMsg unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv + Msg() *otg.BgpExtendedCommunityTransitive4OctetAsType + // SetMsg unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType // and doesn't set defaults - SetMsg(*otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv - // ToProto marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv - ToProto() (*otg.BgpSrteBindingSubTlv, error) - // ToPbText marshals BgpSrteBindingSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunityTransitive4OctetAsType + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteBindingSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteBindingSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv - FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) - // FromPbText unmarshals BgpSrteBindingSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) (BgpExtendedCommunityTransitive4OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteBindingSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteBindingSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsType from JSON text FromJson(value string) error - // Validate validates BgpSrteBindingSubTlv + // Validate validates BgpExtendedCommunityTransitive4OctetAsType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteBindingSubTlv, error) + Clone() (BgpExtendedCommunityTransitive4OctetAsType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // BindingSidType returns BgpSrteBindingSubTlvBindingSidTypeEnum, set in BgpSrteBindingSubTlv - BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum - // SetBindingSidType assigns BgpSrteBindingSubTlvBindingSidTypeEnum provided by user to BgpSrteBindingSubTlv - SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv - // HasBindingSidType checks if BindingSidType has been set in BgpSrteBindingSubTlv - HasBindingSidType() bool - // FourOctetSid returns uint32, set in BgpSrteBindingSubTlv. - FourOctetSid() uint32 - // SetFourOctetSid assigns uint32 provided by user to BgpSrteBindingSubTlv - SetFourOctetSid(value uint32) BgpSrteBindingSubTlv - // HasFourOctetSid checks if FourOctetSid has been set in BgpSrteBindingSubTlv - HasFourOctetSid() bool - // Ipv6Sid returns string, set in BgpSrteBindingSubTlv. - Ipv6Sid() string - // SetIpv6Sid assigns string provided by user to BgpSrteBindingSubTlv - SetIpv6Sid(value string) BgpSrteBindingSubTlv - // HasIpv6Sid checks if Ipv6Sid has been set in BgpSrteBindingSubTlv - HasIpv6Sid() bool - // SFlag returns bool, set in BgpSrteBindingSubTlv. - SFlag() bool - // SetSFlag assigns bool provided by user to BgpSrteBindingSubTlv - SetSFlag(value bool) BgpSrteBindingSubTlv - // HasSFlag checks if SFlag has been set in BgpSrteBindingSubTlv - HasSFlag() bool - // IFlag returns bool, set in BgpSrteBindingSubTlv. - IFlag() bool - // SetIFlag assigns bool provided by user to BgpSrteBindingSubTlv - SetIFlag(value bool) BgpSrteBindingSubTlv - // HasIFlag checks if IFlag has been set in BgpSrteBindingSubTlv - HasIFlag() bool + // Choice returns BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum, set in BgpExtendedCommunityTransitive4OctetAsType + Choice() BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityTransitive4OctetAsType + SetChoice(value BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive4OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitive4OctetAsType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, set in BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 + RouteTargetSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget provided by user to BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 + SetRouteTargetSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitive4OctetAsType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, set in BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + RouteOriginSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin provided by user to BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + SetRouteOriginSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitive4OctetAsType + HasRouteOriginSubtype() bool + setNil() } -type BgpSrteBindingSubTlvBindingSidTypeEnum string +type BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum string -// Enum of BindingSidType on BgpSrteBindingSubTlv -var BgpSrteBindingSubTlvBindingSidType = struct { - NO_BINDING BgpSrteBindingSubTlvBindingSidTypeEnum - FOUR_OCTET_SID BgpSrteBindingSubTlvBindingSidTypeEnum - IPV6_SID BgpSrteBindingSubTlvBindingSidTypeEnum +// Enum of Choice on BgpExtendedCommunityTransitive4OctetAsType +var BgpExtendedCommunityTransitive4OctetAsTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum }{ - NO_BINDING: BgpSrteBindingSubTlvBindingSidTypeEnum("no_binding"), - FOUR_OCTET_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("four_octet_sid"), - IPV6_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("ipv6_sid"), + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum("route_origin_subtype"), } -func (obj *bgpSrteBindingSubTlv) BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum { - return BgpSrteBindingSubTlvBindingSidTypeEnum(obj.obj.BindingSidType.Enum().String()) +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Choice() BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum { + return BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// Type of the binding SID. Supported types are "No Binding SID" or "Four Octets Sid" or "IPv6 SID". -// BindingSidType returns a string -func (obj *bgpSrteBindingSubTlv) HasBindingSidType() bool { - return obj.obj.BindingSidType != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil } -func (obj *bgpSrteBindingSubTlv) SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv { - intValue, ok := otg.BgpSrteBindingSubTlv_BindingSidType_Enum_value[string(value)] +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetChoice(value BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive4OctetAsType { + intValue, ok := otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum_value[string(value)] if !ok { obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteBindingSubTlvBindingSidTypeEnum", string(value))) + "%s is not a valid choice on BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum", string(value))) return obj } - enumValue := otg.BgpSrteBindingSubTlv_BindingSidType_Enum(intValue) - obj.obj.BindingSidType = &enumValue - - return obj -} - -// Binding SID is encoded in 4 octets. -// FourOctetSid returns a uint32 -func (obj *bgpSrteBindingSubTlv) FourOctetSid() uint32 { - - return *obj.obj.FourOctetSid - -} - -// Binding SID is encoded in 4 octets. -// FourOctetSid returns a uint32 -func (obj *bgpSrteBindingSubTlv) HasFourOctetSid() bool { - return obj.obj.FourOctetSid != nil -} - -// Binding SID is encoded in 4 octets. -// SetFourOctetSid sets the uint32 value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetFourOctetSid(value uint32) BgpSrteBindingSubTlv { - - obj.obj.FourOctetSid = &value - return obj -} - -// IPv6 SID value. -// Ipv6Sid returns a string -func (obj *bgpSrteBindingSubTlv) Ipv6Sid() string { - - return *obj.obj.Ipv6Sid - -} + enumValue := otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil -// IPv6 SID value. -// Ipv6Sid returns a string -func (obj *bgpSrteBindingSubTlv) HasIpv6Sid() bool { - return obj.obj.Ipv6Sid != nil -} + if value == BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget().Msg() + } -// IPv6 SID value. -// SetIpv6Sid sets the string value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetIpv6Sid(value string) BgpSrteBindingSubTlv { + if value == BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin().Msg() + } - obj.obj.Ipv6Sid = &value return obj } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SFlag returns a bool -func (obj *bgpSrteBindingSubTlv) SFlag() bool { - - return *obj.obj.SFlag - +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive4OctetAsType) RouteTargetSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SFlag returns a bool -func (obj *bgpSrteBindingSubTlv) HasSFlag() bool { - return obj.obj.SFlag != nil +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SetSFlag sets the bool value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetSFlag(value bool) BgpSrteBindingSubTlv { +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget value in the BgpExtendedCommunityTransitive4OctetAsType object +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsType { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.Msg() - obj.obj.SFlag = &value return obj } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// IFlag returns a bool -func (obj *bgpSrteBindingSubTlv) IFlag() bool { - - return *obj.obj.IFlag - +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive4OctetAsType) RouteOriginSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// IFlag returns a bool -func (obj *bgpSrteBindingSubTlv) HasIFlag() bool { - return obj.obj.IFlag != nil +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// SetIFlag sets the bool value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetIFlag(value bool) BgpSrteBindingSubTlv { +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin value in the BgpExtendedCommunityTransitive4OctetAsType object +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsType { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.Msg() - obj.obj.IFlag = &value return obj } -func (obj *bgpSrteBindingSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive4OctetAsType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Ipv6Sid != nil { + if obj.obj.RouteTargetSubtype != nil { - err := obj.validateIpv6(obj.Ipv6Sid()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteBindingSubTlv.Ipv6Sid")) - } + obj.RouteTargetSubtype().validateObj(vObj, set_default) + } + if obj.obj.RouteOriginSubtype != nil { + + obj.RouteOriginSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrteBindingSubTlv) setDefault() { - if obj.obj.BindingSidType == nil { - obj.SetBindingSidType(BgpSrteBindingSubTlvBindingSidType.NO_BINDING) +func (obj *bgpExtendedCommunityTransitive4OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) } - if obj.obj.SFlag == nil { - obj.SetSFlag(false) - } - if obj.obj.IFlag == nil { - obj.SetIFlag(false) - } } -// ***** BgpSrtePreferenceSubTlv ***** -type bgpSrtePreferenceSubTlv struct { +// ***** BgpExtendedCommunityTransitiveOpaqueType ***** +type bgpExtendedCommunityTransitiveOpaqueType struct { validation - obj *otg.BgpSrtePreferenceSubTlv + obj *otg.BgpExtendedCommunityTransitiveOpaqueType + colorSubtypeHolder BgpExtendedCommunityTransitiveOpaqueTypeColor + encapsulationSubtypeHolder BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation } -func NewBgpSrtePreferenceSubTlv() BgpSrtePreferenceSubTlv { - obj := bgpSrtePreferenceSubTlv{obj: &otg.BgpSrtePreferenceSubTlv{}} +func NewBgpExtendedCommunityTransitiveOpaqueType() BgpExtendedCommunityTransitiveOpaqueType { + obj := bgpExtendedCommunityTransitiveOpaqueType{obj: &otg.BgpExtendedCommunityTransitiveOpaqueType{}} obj.setDefault() return &obj } -func (obj *bgpSrtePreferenceSubTlv) Msg() *otg.BgpSrtePreferenceSubTlv { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Msg() *otg.BgpExtendedCommunityTransitiveOpaqueType { return obj.obj } -func (obj *bgpSrtePreferenceSubTlv) SetMsg(msg *otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv { - +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunityTransitiveOpaqueType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -296940,7 +297881,7 @@ func (obj *bgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv, err return obj.Msg(), nil } -func (obj *bgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) (BgpExtendedCommunityTransitiveOpaqueType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -296949,7 +297890,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceSubTlv) return newObj, nil } -func (obj *bgpSrtePreferenceSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296961,12 +297902,12 @@ func (obj *bgpSrtePreferenceSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrtePreferenceSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -296974,7 +297915,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrtePreferenceSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -296995,7 +297936,7 @@ func (obj *bgpSrtePreferenceSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrtePreferenceSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -297012,7 +297953,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297020,7 +297961,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrtePreferenceSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297038,7 +297979,7 @@ func (obj *bgpSrtePreferenceSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrtePreferenceSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -297051,7 +297992,7 @@ func (obj *bgpSrtePreferenceSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -297059,19 +298000,19 @@ func (obj *bgpSrtePreferenceSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePreferenceSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePreferenceSubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePreferenceSubTlv) String() string { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -297079,12 +298020,12 @@ func (obj *bgpSrtePreferenceSubTlv) String() string { return str } -func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Clone() (BgpExtendedCommunityTransitiveOpaqueType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePreferenceSubTlv() + newObj := NewBgpExtendedCommunityTransitiveOpaqueType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -297096,107 +298037,224 @@ func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { return newObj, nil } -// BgpSrtePreferenceSubTlv is configuration for BGP preference sub TLV of the SR Policy candidate path. -type BgpSrtePreferenceSubTlv interface { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) setNil() { + obj.colorSubtypeHolder = nil + obj.encapsulationSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveOpaqueType is the Transitive Opaque Extended Community is sent as type 0x03. +type BgpExtendedCommunityTransitiveOpaqueType interface { Validation - // Msg marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + // Msg marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType // and doesn't set defaults - Msg() *otg.BgpSrtePreferenceSubTlv - // SetMsg unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + Msg() *otg.BgpExtendedCommunityTransitiveOpaqueType + // SetMsg unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType // and doesn't set defaults - SetMsg(*otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv - // ToProto marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv - ToProto() (*otg.BgpSrtePreferenceSubTlv, error) - // ToPbText marshals BgpSrtePreferenceSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunityTransitiveOpaqueType + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePreferenceSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePreferenceSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv - FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) - // FromPbText unmarshals BgpSrtePreferenceSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) (BgpExtendedCommunityTransitiveOpaqueType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePreferenceSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePreferenceSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueType from JSON text FromJson(value string) error - // Validate validates BgpSrtePreferenceSubTlv + // Validate validates BgpExtendedCommunityTransitiveOpaqueType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePreferenceSubTlv, error) + Clone() (BgpExtendedCommunityTransitiveOpaqueType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Preference returns uint32, set in BgpSrtePreferenceSubTlv. - Preference() uint32 - // SetPreference assigns uint32 provided by user to BgpSrtePreferenceSubTlv - SetPreference(value uint32) BgpSrtePreferenceSubTlv - // HasPreference checks if Preference has been set in BgpSrtePreferenceSubTlv - HasPreference() bool + // Choice returns BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum, set in BgpExtendedCommunityTransitiveOpaqueType + Choice() BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveOpaqueType + SetChoice(value BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum) BgpExtendedCommunityTransitiveOpaqueType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveOpaqueType + HasChoice() bool + // ColorSubtype returns BgpExtendedCommunityTransitiveOpaqueTypeColor, set in BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. + ColorSubtype() BgpExtendedCommunityTransitiveOpaqueTypeColor + // SetColorSubtype assigns BgpExtendedCommunityTransitiveOpaqueTypeColor provided by user to BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. + SetColorSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueType + // HasColorSubtype checks if ColorSubtype has been set in BgpExtendedCommunityTransitiveOpaqueType + HasColorSubtype() bool + // EncapsulationSubtype returns BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, set in BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + EncapsulationSubtype() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // SetEncapsulationSubtype assigns BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation provided by user to BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + SetEncapsulationSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueType + // HasEncapsulationSubtype checks if EncapsulationSubtype has been set in BgpExtendedCommunityTransitiveOpaqueType + HasEncapsulationSubtype() bool + setNil() } -// The preference value of the SR Policy candidate path. -// Preference returns a uint32 -func (obj *bgpSrtePreferenceSubTlv) Preference() uint32 { +type BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum string - return *obj.obj.Preference +// Enum of Choice on BgpExtendedCommunityTransitiveOpaqueType +var BgpExtendedCommunityTransitiveOpaqueTypeChoice = struct { + COLOR_SUBTYPE BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum + ENCAPSULATION_SUBTYPE BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum +}{ + COLOR_SUBTYPE: BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum("color_subtype"), + ENCAPSULATION_SUBTYPE: BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum("encapsulation_subtype"), +} +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Choice() BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum { + return BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// The preference value of the SR Policy candidate path. -// Preference returns a uint32 -func (obj *bgpSrtePreferenceSubTlv) HasPreference() bool { - return obj.obj.Preference != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasChoice() bool { + return obj.obj.Choice != nil } -// The preference value of the SR Policy candidate path. -// SetPreference sets the uint32 value in the BgpSrtePreferenceSubTlv object -func (obj *bgpSrtePreferenceSubTlv) SetPreference(value uint32) BgpSrtePreferenceSubTlv { +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetChoice(value BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum) BgpExtendedCommunityTransitiveOpaqueType { + intValue, ok := otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.EncapsulationSubtype = nil + obj.encapsulationSubtypeHolder = nil + obj.obj.ColorSubtype = nil + obj.colorSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE { + obj.obj.ColorSubtype = NewBgpExtendedCommunityTransitiveOpaqueTypeColor().Msg() + } + + if value == BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE { + obj.obj.EncapsulationSubtype = NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation().Msg() + } - obj.obj.Preference = &value return obj } -func (obj *bgpSrtePreferenceSubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// ColorSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeColor +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ColorSubtype() BgpExtendedCommunityTransitiveOpaqueTypeColor { + if obj.obj.ColorSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + } + if obj.colorSubtypeHolder == nil { + obj.colorSubtypeHolder = &bgpExtendedCommunityTransitiveOpaqueTypeColor{obj: obj.obj.ColorSubtype} + } + return obj.colorSubtypeHolder +} + +// description is TBD +// ColorSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeColor +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasColorSubtype() bool { + return obj.obj.ColorSubtype != nil +} + +// description is TBD +// SetColorSubtype sets the BgpExtendedCommunityTransitiveOpaqueTypeColor value in the BgpExtendedCommunityTransitiveOpaqueType object +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetColorSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueType { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + obj.colorSubtypeHolder = nil + obj.obj.ColorSubtype = value.Msg() + + return obj +} + +// description is TBD +// EncapsulationSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +func (obj *bgpExtendedCommunityTransitiveOpaqueType) EncapsulationSubtype() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + if obj.obj.EncapsulationSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE) + } + if obj.encapsulationSubtypeHolder == nil { + obj.encapsulationSubtypeHolder = &bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: obj.obj.EncapsulationSubtype} + } + return obj.encapsulationSubtypeHolder +} + +// description is TBD +// EncapsulationSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasEncapsulationSubtype() bool { + return obj.obj.EncapsulationSubtype != nil +} + +// description is TBD +// SetEncapsulationSubtype sets the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation value in the BgpExtendedCommunityTransitiveOpaqueType object +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetEncapsulationSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueType { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE) + obj.encapsulationSubtypeHolder = nil + obj.obj.EncapsulationSubtype = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } + if obj.obj.ColorSubtype != nil { + + obj.ColorSubtype().validateObj(vObj, set_default) + } + + if obj.obj.EncapsulationSubtype != nil { + + obj.EncapsulationSubtype().validateObj(vObj, set_default) + } + } -func (obj *bgpSrtePreferenceSubTlv) setDefault() { - if obj.obj.Preference == nil { - obj.SetPreference(0) +func (obj *bgpExtendedCommunityTransitiveOpaqueType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + } } -// ***** BgpSrtePolicyPrioritySubTlv ***** -type bgpSrtePolicyPrioritySubTlv struct { +// ***** BgpExtendedCommunityTransitiveEvpnType ***** +type bgpExtendedCommunityTransitiveEvpnType struct { validation - obj *otg.BgpSrtePolicyPrioritySubTlv + obj *otg.BgpExtendedCommunityTransitiveEvpnType + routerMacSubtypeHolder BgpExtendedCommunityTransitiveEvpnTypeRouterMac } -func NewBgpSrtePolicyPrioritySubTlv() BgpSrtePolicyPrioritySubTlv { - obj := bgpSrtePolicyPrioritySubTlv{obj: &otg.BgpSrtePolicyPrioritySubTlv{}} +func NewBgpExtendedCommunityTransitiveEvpnType() BgpExtendedCommunityTransitiveEvpnType { + obj := bgpExtendedCommunityTransitiveEvpnType{obj: &otg.BgpExtendedCommunityTransitiveEvpnType{}} obj.setDefault() return &obj } -func (obj *bgpSrtePolicyPrioritySubTlv) Msg() *otg.BgpSrtePolicyPrioritySubTlv { +func (obj *bgpExtendedCommunityTransitiveEvpnType) Msg() *otg.BgpExtendedCommunityTransitiveEvpnType { return obj.obj } -func (obj *bgpSrtePolicyPrioritySubTlv) SetMsg(msg *otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv { - +func (obj *bgpExtendedCommunityTransitiveEvpnType) SetMsg(msg *otg.BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunityTransitiveEvpnType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -297204,7 +298262,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPrioritySub return obj.Msg(), nil } -func (obj *bgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnType) (BgpExtendedCommunityTransitiveEvpnType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -297213,7 +298271,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyPriority return newObj, nil } -func (obj *bgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297225,12 +298283,12 @@ func (obj *bgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297238,7 +298296,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297259,7 +298317,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -297276,7 +298334,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297284,7 +298342,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297302,7 +298360,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrtePolicyPrioritySubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -297315,7 +298373,7 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -297323,19 +298381,19 @@ func (obj *bgpSrtePolicyPrioritySubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePolicyPrioritySubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePolicyPrioritySubTlv) Validate() error { +func (obj *bgpExtendedCommunityTransitiveEvpnType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePolicyPrioritySubTlv) String() string { +func (obj *bgpExtendedCommunityTransitiveEvpnType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -297343,12 +298401,12 @@ func (obj *bgpSrtePolicyPrioritySubTlv) String() string { return str } -func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnType) Clone() (BgpExtendedCommunityTransitiveEvpnType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePolicyPrioritySubTlv() + newObj := NewBgpExtendedCommunityTransitiveEvpnType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -297360,114 +298418,174 @@ func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, er return newObj, nil } -// BgpSrtePolicyPrioritySubTlv is configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the order in which the SR policies are re-computed upon topological change. -type BgpSrtePolicyPrioritySubTlv interface { +func (obj *bgpExtendedCommunityTransitiveEvpnType) setNil() { + obj.routerMacSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveEvpnType is the Transitive EVPN Extended Community is sent as type 0x06 . +type BgpExtendedCommunityTransitiveEvpnType interface { Validation - // Msg marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // Msg marshals BgpExtendedCommunityTransitiveEvpnType to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType // and doesn't set defaults - Msg() *otg.BgpSrtePolicyPrioritySubTlv - // SetMsg unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + Msg() *otg.BgpExtendedCommunityTransitiveEvpnType + // SetMsg unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType // and doesn't set defaults - SetMsg(*otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv - // ToProto marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv - ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) - // ToPbText marshals BgpSrtePolicyPrioritySubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunityTransitiveEvpnType + // ToProto marshals BgpExtendedCommunityTransitiveEvpnType to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveEvpnType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePolicyPrioritySubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveEvpnType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePolicyPrioritySubTlv to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveEvpnType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv - FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) - // FromPbText unmarshals BgpSrtePolicyPrioritySubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnType) (BgpExtendedCommunityTransitiveEvpnType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePolicyPrioritySubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveEvpnType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePolicyPrioritySubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveEvpnType from JSON text FromJson(value string) error - // Validate validates BgpSrtePolicyPrioritySubTlv + // Validate validates BgpExtendedCommunityTransitiveEvpnType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePolicyPrioritySubTlv, error) + Clone() (BgpExtendedCommunityTransitiveEvpnType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // PolicyPriority returns uint32, set in BgpSrtePolicyPrioritySubTlv. - PolicyPriority() uint32 - // SetPolicyPriority assigns uint32 provided by user to BgpSrtePolicyPrioritySubTlv - SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv - // HasPolicyPriority checks if PolicyPriority has been set in BgpSrtePolicyPrioritySubTlv - HasPolicyPriority() bool + // Choice returns BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum, set in BgpExtendedCommunityTransitiveEvpnType + Choice() BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveEvpnType + SetChoice(value BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum) BgpExtendedCommunityTransitiveEvpnType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveEvpnType + HasChoice() bool + // RouterMacSubtype returns BgpExtendedCommunityTransitiveEvpnTypeRouterMac, set in BgpExtendedCommunityTransitiveEvpnType. + // BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. + RouterMacSubtype() BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // SetRouterMacSubtype assigns BgpExtendedCommunityTransitiveEvpnTypeRouterMac provided by user to BgpExtendedCommunityTransitiveEvpnType. + // BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. + SetRouterMacSubtype(value BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnType + // HasRouterMacSubtype checks if RouterMacSubtype has been set in BgpExtendedCommunityTransitiveEvpnType + HasRouterMacSubtype() bool + setNil() } -// One-octet Priority value. -// PolicyPriority returns a uint32 -func (obj *bgpSrtePolicyPrioritySubTlv) PolicyPriority() uint32 { +type BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum string - return *obj.obj.PolicyPriority +// Enum of Choice on BgpExtendedCommunityTransitiveEvpnType +var BgpExtendedCommunityTransitiveEvpnTypeChoice = struct { + ROUTER_MAC_SUBTYPE BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum +}{ + ROUTER_MAC_SUBTYPE: BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum("router_mac_subtype"), +} +func (obj *bgpExtendedCommunityTransitiveEvpnType) Choice() BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum { + return BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// One-octet Priority value. -// PolicyPriority returns a uint32 -func (obj *bgpSrtePolicyPrioritySubTlv) HasPolicyPriority() bool { - return obj.obj.PolicyPriority != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnType) HasChoice() bool { + return obj.obj.Choice != nil } -// One-octet Priority value. -// SetPolicyPriority sets the uint32 value in the BgpSrtePolicyPrioritySubTlv object -func (obj *bgpSrtePolicyPrioritySubTlv) SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv { +func (obj *bgpExtendedCommunityTransitiveEvpnType) SetChoice(value BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum) BgpExtendedCommunityTransitiveEvpnType { + intValue, ok := otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouterMacSubtype = nil + obj.routerMacSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE { + obj.obj.RouterMacSubtype = NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac().Msg() + } - obj.obj.PolicyPriority = &value return obj } -func (obj *bgpSrtePolicyPrioritySubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// RouterMacSubtype returns a BgpExtendedCommunityTransitiveEvpnTypeRouterMac +func (obj *bgpExtendedCommunityTransitiveEvpnType) RouterMacSubtype() BgpExtendedCommunityTransitiveEvpnTypeRouterMac { + if obj.obj.RouterMacSubtype == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + } + if obj.routerMacSubtypeHolder == nil { + obj.routerMacSubtypeHolder = &bgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: obj.obj.RouterMacSubtype} + } + return obj.routerMacSubtypeHolder +} + +// description is TBD +// RouterMacSubtype returns a BgpExtendedCommunityTransitiveEvpnTypeRouterMac +func (obj *bgpExtendedCommunityTransitiveEvpnType) HasRouterMacSubtype() bool { + return obj.obj.RouterMacSubtype != nil +} + +// description is TBD +// SetRouterMacSubtype sets the BgpExtendedCommunityTransitiveEvpnTypeRouterMac value in the BgpExtendedCommunityTransitiveEvpnType object +func (obj *bgpExtendedCommunityTransitiveEvpnType) SetRouterMacSubtype(value BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnType { + obj.SetChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + obj.routerMacSubtypeHolder = nil + obj.obj.RouterMacSubtype = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.PolicyPriority != nil { - - if *obj.obj.PolicyPriority > 255 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpSrtePolicyPrioritySubTlv.PolicyPriority <= 255 but Got %d", *obj.obj.PolicyPriority)) - } + if obj.obj.RouterMacSubtype != nil { + obj.RouterMacSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrtePolicyPrioritySubTlv) setDefault() { +func (obj *bgpExtendedCommunityTransitiveEvpnType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + + } } -// ***** BgpSrtePolicyNameSubTlv ***** -type bgpSrtePolicyNameSubTlv struct { +// ***** BgpExtendedCommunityNonTransitive2OctetAsType ***** +type bgpExtendedCommunityNonTransitive2OctetAsType struct { validation - obj *otg.BgpSrtePolicyNameSubTlv + obj *otg.BgpExtendedCommunityNonTransitive2OctetAsType + linkBandwidthSubtypeHolder BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth } -func NewBgpSrtePolicyNameSubTlv() BgpSrtePolicyNameSubTlv { - obj := bgpSrtePolicyNameSubTlv{obj: &otg.BgpSrtePolicyNameSubTlv{}} +func NewBgpExtendedCommunityNonTransitive2OctetAsType() BgpExtendedCommunityNonTransitive2OctetAsType { + obj := bgpExtendedCommunityNonTransitive2OctetAsType{obj: &otg.BgpExtendedCommunityNonTransitive2OctetAsType{}} obj.setDefault() return &obj } -func (obj *bgpSrtePolicyNameSubTlv) Msg() *otg.BgpSrtePolicyNameSubTlv { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsType { return obj.obj } -func (obj *bgpSrtePolicyNameSubTlv) SetMsg(msg *otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv { - +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) SetMsg(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunityNonTransitive2OctetAsType { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -297475,7 +298593,7 @@ func (obj *bgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv, err return obj.Msg(), nil } -func (obj *bgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) (BgpExtendedCommunityNonTransitive2OctetAsType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -297484,7 +298602,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameSubTlv) return newObj, nil } -func (obj *bgpSrtePolicyNameSubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297496,12 +298614,12 @@ func (obj *bgpSrtePolicyNameSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrtePolicyNameSubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297509,7 +298627,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromPbText(value string) error { return retObj } -func (obj *bgpSrtePolicyNameSubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297530,7 +298648,7 @@ func (obj *bgpSrtePolicyNameSubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrtePolicyNameSubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -297547,7 +298665,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -297555,7 +298673,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrtePolicyNameSubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297573,7 +298691,7 @@ func (obj *bgpSrtePolicyNameSubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrtePolicyNameSubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -297586,7 +298704,7 @@ func (obj *bgpSrtePolicyNameSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -297594,19 +298712,19 @@ func (obj *bgpSrtePolicyNameSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePolicyNameSubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePolicyNameSubTlv) Validate() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePolicyNameSubTlv) String() string { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -297614,12 +298732,12 @@ func (obj *bgpSrtePolicyNameSubTlv) String() string { return str } -func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Clone() (BgpExtendedCommunityNonTransitive2OctetAsType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePolicyNameSubTlv() + newObj := NewBgpExtendedCommunityNonTransitive2OctetAsType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -297631,116 +298749,173 @@ func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { return newObj, nil } -// BgpSrtePolicyNameSubTlv is configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach a symbolic name to the SR Policy candidate path. -type BgpSrtePolicyNameSubTlv interface { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setNil() { + obj.linkBandwidthSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityNonTransitive2OctetAsType is the Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +type BgpExtendedCommunityNonTransitive2OctetAsType interface { Validation - // Msg marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + // Msg marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType // and doesn't set defaults - Msg() *otg.BgpSrtePolicyNameSubTlv - // SetMsg unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + Msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsType + // SetMsg unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType // and doesn't set defaults - SetMsg(*otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv - // ToProto marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv - ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) - // ToPbText marshals BgpSrtePolicyNameSubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunityNonTransitive2OctetAsType + // ToProto marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePolicyNameSubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityNonTransitive2OctetAsType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePolicyNameSubTlv to JSON text + // ToJson marshals BgpExtendedCommunityNonTransitive2OctetAsType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv - FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) - // FromPbText unmarshals BgpSrtePolicyNameSubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) (BgpExtendedCommunityNonTransitive2OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePolicyNameSubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePolicyNameSubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from JSON text FromJson(value string) error - // Validate validates BgpSrtePolicyNameSubTlv + // Validate validates BgpExtendedCommunityNonTransitive2OctetAsType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePolicyNameSubTlv, error) + Clone() (BgpExtendedCommunityNonTransitive2OctetAsType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // PolicyName returns string, set in BgpSrtePolicyNameSubTlv. - PolicyName() string - // SetPolicyName assigns string provided by user to BgpSrtePolicyNameSubTlv - SetPolicyName(value string) BgpSrtePolicyNameSubTlv - // HasPolicyName checks if PolicyName has been set in BgpSrtePolicyNameSubTlv - HasPolicyName() bool + // Choice returns BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum, set in BgpExtendedCommunityNonTransitive2OctetAsType + Choice() BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum + // SetChoice assigns BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityNonTransitive2OctetAsType + SetChoice(value BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityNonTransitive2OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityNonTransitive2OctetAsType + HasChoice() bool + // LinkBandwidthSubtype returns BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, set in BgpExtendedCommunityNonTransitive2OctetAsType. + // BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. + LinkBandwidthSubtype() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // SetLinkBandwidthSubtype assigns BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth provided by user to BgpExtendedCommunityNonTransitive2OctetAsType. + // BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. + SetLinkBandwidthSubtype(value BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsType + // HasLinkBandwidthSubtype checks if LinkBandwidthSubtype has been set in BgpExtendedCommunityNonTransitive2OctetAsType + HasLinkBandwidthSubtype() bool + setNil() } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// PolicyName returns a string -func (obj *bgpSrtePolicyNameSubTlv) PolicyName() string { +type BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum string - return *obj.obj.PolicyName +// Enum of Choice on BgpExtendedCommunityNonTransitive2OctetAsType +var BgpExtendedCommunityNonTransitive2OctetAsTypeChoice = struct { + LINK_BANDWIDTH_SUBTYPE BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum +}{ + LINK_BANDWIDTH_SUBTYPE: BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum("link_bandwidth_subtype"), +} +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Choice() BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum { + return BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// PolicyName returns a string -func (obj *bgpSrtePolicyNameSubTlv) HasPolicyName() bool { - return obj.obj.PolicyName != nil +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// SetPolicyName sets the string value in the BgpSrtePolicyNameSubTlv object -func (obj *bgpSrtePolicyNameSubTlv) SetPolicyName(value string) BgpSrtePolicyNameSubTlv { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) SetChoice(value BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityNonTransitive2OctetAsType { + intValue, ok := otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.LinkBandwidthSubtype = nil + obj.linkBandwidthSubtypeHolder = nil + + if value == BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE { + obj.obj.LinkBandwidthSubtype = NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth().Msg() + } - obj.obj.PolicyName = &value return obj } -func (obj *bgpSrtePolicyNameSubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// LinkBandwidthSubtype returns a BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) LinkBandwidthSubtype() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + if obj.obj.LinkBandwidthSubtype == nil { + obj.SetChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + } + if obj.linkBandwidthSubtypeHolder == nil { + obj.linkBandwidthSubtypeHolder = &bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: obj.obj.LinkBandwidthSubtype} + } + return obj.linkBandwidthSubtypeHolder +} + +// description is TBD +// LinkBandwidthSubtype returns a BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) HasLinkBandwidthSubtype() bool { + return obj.obj.LinkBandwidthSubtype != nil +} + +// description is TBD +// SetLinkBandwidthSubtype sets the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth value in the BgpExtendedCommunityNonTransitive2OctetAsType object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) SetLinkBandwidthSubtype(value BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsType { + obj.SetChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + obj.linkBandwidthSubtypeHolder = nil + obj.obj.LinkBandwidthSubtype = value.Msg() + + return obj +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.PolicyName != nil { - - if len(*obj.obj.PolicyName) < 1 || len(*obj.obj.PolicyName) > 32 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf( - "1 <= length of BgpSrtePolicyNameSubTlv.PolicyName <= 32 but Got %d", - len(*obj.obj.PolicyName))) - } + if obj.obj.LinkBandwidthSubtype != nil { + obj.LinkBandwidthSubtype().validateObj(vObj, set_default) } } -func (obj *bgpSrtePolicyNameSubTlv) setDefault() { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.SetChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + + } } -// ***** BgpSrteExplicitNullLabelPolicySubTlv ***** -type bgpSrteExplicitNullLabelPolicySubTlv struct { +// ***** BgpExtendedCommunityCustomType ***** +type bgpExtendedCommunityCustomType struct { validation - obj *otg.BgpSrteExplicitNullLabelPolicySubTlv + obj *otg.BgpExtendedCommunityCustomType } -func NewBgpSrteExplicitNullLabelPolicySubTlv() BgpSrteExplicitNullLabelPolicySubTlv { - obj := bgpSrteExplicitNullLabelPolicySubTlv{obj: &otg.BgpSrteExplicitNullLabelPolicySubTlv{}} +func NewBgpExtendedCommunityCustomType() BgpExtendedCommunityCustomType { + obj := bgpExtendedCommunityCustomType{obj: &otg.BgpExtendedCommunityCustomType{}} obj.setDefault() return &obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv { +func (obj *bgpExtendedCommunityCustomType) Msg() *otg.BgpExtendedCommunityCustomType { return obj.obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetMsg(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv { +func (obj *bgpExtendedCommunityCustomType) SetMsg(msg *otg.BgpExtendedCommunityCustomType) BgpExtendedCommunityCustomType { proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (obj *bgpExtendedCommunityCustomType) ToProto() (*otg.BgpExtendedCommunityCustomType, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -297748,7 +298923,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExplicit return obj.Msg(), nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (obj *bgpExtendedCommunityCustomType) FromProto(msg *otg.BgpExtendedCommunityCustomType) (BgpExtendedCommunityCustomType, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -297757,7 +298932,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSrteExpli return newObj, nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityCustomType) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297769,7 +298944,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) error { +func (obj *bgpExtendedCommunityCustomType) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -297782,7 +298957,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) error return retObj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityCustomType) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297803,7 +298978,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) error { +func (obj *bgpExtendedCommunityCustomType) FromYaml(value string) error { if value == "" { value = "{}" } @@ -297828,7 +299003,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) error { return nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { +func (obj *bgpExtendedCommunityCustomType) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -297846,7 +299021,7 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) error { +func (obj *bgpExtendedCommunityCustomType) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -297867,19 +299042,19 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateToAndFrom() error { +func (obj *bgpExtendedCommunityCustomType) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Validate() error { +func (obj *bgpExtendedCommunityCustomType) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { +func (obj *bgpExtendedCommunityCustomType) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -297887,12 +299062,12 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { return str } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (obj *bgpExtendedCommunityCustomType) Clone() (BgpExtendedCommunityCustomType, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteExplicitNullLabelPolicySubTlv() + newObj := NewBgpExtendedCommunityCustomType() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -297904,127 +299079,205 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLab return newObj, nil } -// BgpSrteExplicitNullLabelPolicySubTlv is configuration for BGP explicit null label policy sub TLV settings. -type BgpSrteExplicitNullLabelPolicySubTlv interface { +// BgpExtendedCommunityCustomType is add a custom Extended Community with a combination of types , sub-types and values not explicitly specified above or not defined yet. +type BgpExtendedCommunityCustomType interface { Validation - // Msg marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + // Msg marshals BgpExtendedCommunityCustomType to protobuf object *otg.BgpExtendedCommunityCustomType // and doesn't set defaults - Msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv - // SetMsg unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + Msg() *otg.BgpExtendedCommunityCustomType + // SetMsg unmarshals BgpExtendedCommunityCustomType from protobuf object *otg.BgpExtendedCommunityCustomType // and doesn't set defaults - SetMsg(*otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv - // ToProto marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv - ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) - // ToPbText marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf text + SetMsg(*otg.BgpExtendedCommunityCustomType) BgpExtendedCommunityCustomType + // ToProto marshals BgpExtendedCommunityCustomType to protobuf object *otg.BgpExtendedCommunityCustomType + ToProto() (*otg.BgpExtendedCommunityCustomType, error) + // ToPbText marshals BgpExtendedCommunityCustomType to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteExplicitNullLabelPolicySubTlv to YAML text + // ToYaml marshals BgpExtendedCommunityCustomType to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteExplicitNullLabelPolicySubTlv to JSON text + // ToJson marshals BgpExtendedCommunityCustomType to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv - FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) - // FromPbText unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf text + // FromProto unmarshals BgpExtendedCommunityCustomType from protobuf object *otg.BgpExtendedCommunityCustomType + FromProto(msg *otg.BgpExtendedCommunityCustomType) (BgpExtendedCommunityCustomType, error) + // FromPbText unmarshals BgpExtendedCommunityCustomType from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteExplicitNullLabelPolicySubTlv from YAML text + // FromYaml unmarshals BgpExtendedCommunityCustomType from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteExplicitNullLabelPolicySubTlv from JSON text + // FromJson unmarshals BgpExtendedCommunityCustomType from JSON text FromJson(value string) error - // Validate validates BgpSrteExplicitNullLabelPolicySubTlv + // Validate validates BgpExtendedCommunityCustomType Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) + Clone() (BgpExtendedCommunityCustomType, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // ExplicitNullLabelPolicy returns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum, set in BgpSrteExplicitNullLabelPolicySubTlv - ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - // SetExplicitNullLabelPolicy assigns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum provided by user to BgpSrteExplicitNullLabelPolicySubTlv - SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv - // HasExplicitNullLabelPolicy checks if ExplicitNullLabelPolicy has been set in BgpSrteExplicitNullLabelPolicySubTlv - HasExplicitNullLabelPolicy() bool + // CommunityType returns string, set in BgpExtendedCommunityCustomType. + CommunityType() string + // SetCommunityType assigns string provided by user to BgpExtendedCommunityCustomType + SetCommunityType(value string) BgpExtendedCommunityCustomType + // HasCommunityType checks if CommunityType has been set in BgpExtendedCommunityCustomType + HasCommunityType() bool + // CommunitySubtype returns string, set in BgpExtendedCommunityCustomType. + CommunitySubtype() string + // SetCommunitySubtype assigns string provided by user to BgpExtendedCommunityCustomType + SetCommunitySubtype(value string) BgpExtendedCommunityCustomType + // HasCommunitySubtype checks if CommunitySubtype has been set in BgpExtendedCommunityCustomType + HasCommunitySubtype() bool + // Value returns string, set in BgpExtendedCommunityCustomType. + Value() string + // SetValue assigns string provided by user to BgpExtendedCommunityCustomType + SetValue(value string) BgpExtendedCommunityCustomType + // HasValue checks if Value has been set in BgpExtendedCommunityCustomType + HasValue() bool } -type BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum string +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// CommunityType returns a string +func (obj *bgpExtendedCommunityCustomType) CommunityType() string { + + return *obj.obj.CommunityType -// Enum of ExplicitNullLabelPolicy on BgpSrteExplicitNullLabelPolicySubTlv -var BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy = struct { - RESERVED_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV4_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV4_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - DO_NOT_PUSH_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum -}{ - RESERVED_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("reserved_enlp"), - PUSH_IPV4_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_enlp"), - PUSH_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv6_enlp"), - PUSH_IPV4_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_ipv6_enlp"), - DO_NOT_PUSH_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("do_not_push_enlp"), } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum { - return BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum(obj.obj.ExplicitNullLabelPolicy.Enum().String()) +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// CommunityType returns a string +func (obj *bgpExtendedCommunityCustomType) HasCommunityType() bool { + return obj.obj.CommunityType != nil } -// The value of the explicit null label policy -// ExplicitNullLabelPolicy returns a string -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) HasExplicitNullLabelPolicy() bool { - return obj.obj.ExplicitNullLabelPolicy != nil +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// SetCommunityType sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetCommunityType(value string) BgpExtendedCommunityCustomType { + + obj.obj.CommunityType = &value + return obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv { - intValue, ok := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum", string(value))) - return obj - } - enumValue := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum(intValue) - obj.obj.ExplicitNullLabelPolicy = &enumValue +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// CommunitySubtype returns a string +func (obj *bgpExtendedCommunityCustomType) CommunitySubtype() string { + + return *obj.obj.CommunitySubtype + +} + +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// CommunitySubtype returns a string +func (obj *bgpExtendedCommunityCustomType) HasCommunitySubtype() bool { + return obj.obj.CommunitySubtype != nil +} + +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// SetCommunitySubtype sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetCommunitySubtype(value string) BgpExtendedCommunityCustomType { + obj.obj.CommunitySubtype = &value return obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateObj(vObj *validation, set_default bool) { +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// Value returns a string +func (obj *bgpExtendedCommunityCustomType) Value() string { + + return *obj.obj.Value + +} + +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// Value returns a string +func (obj *bgpExtendedCommunityCustomType) HasValue() bool { + return obj.obj.Value != nil +} + +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// SetValue sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetValue(value string) BgpExtendedCommunityCustomType { + + obj.obj.Value = &value + return obj +} + +func (obj *bgpExtendedCommunityCustomType) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } -} + if obj.obj.CommunityType != nil { -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) setDefault() { - if obj.obj.ExplicitNullLabelPolicy == nil { - obj.SetExplicitNullLabelPolicy(BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy.DO_NOT_PUSH_ENLP) + if len(*obj.obj.CommunityType) > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.CommunityType <= 2 but Got %d", + len(*obj.obj.CommunityType))) + } + + } + + if obj.obj.CommunitySubtype != nil { + + if len(*obj.obj.CommunitySubtype) > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.CommunitySubtype <= 2 but Got %d", + len(*obj.obj.CommunitySubtype))) + } + + } + + if obj.obj.Value != nil { + + if len(*obj.obj.Value) > 12 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.Value <= 12 but Got %d", + len(*obj.obj.Value))) + } } } -// ***** BgpSrteSegmentList ***** -type bgpSrteSegmentList struct { +func (obj *bgpExtendedCommunityCustomType) setDefault() { + if obj.obj.CommunityType == nil { + obj.SetCommunityType("00") + } + if obj.obj.CommunitySubtype == nil { + obj.SetCommunitySubtype("00") + } + if obj.obj.Value == nil { + obj.SetValue("000000000000") + } + +} + +// ***** BgpSrteRemoteEndpointSubTlv ***** +type bgpSrteRemoteEndpointSubTlv struct { validation - obj *otg.BgpSrteSegmentList - segmentsHolder BgpSrteSegmentListBgpSrteSegmentIter + obj *otg.BgpSrteRemoteEndpointSubTlv } -func NewBgpSrteSegmentList() BgpSrteSegmentList { - obj := bgpSrteSegmentList{obj: &otg.BgpSrteSegmentList{}} +func NewBgpSrteRemoteEndpointSubTlv() BgpSrteRemoteEndpointSubTlv { + obj := bgpSrteRemoteEndpointSubTlv{obj: &otg.BgpSrteRemoteEndpointSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentList) Msg() *otg.BgpSrteSegmentList { +func (obj *bgpSrteRemoteEndpointSubTlv) Msg() *otg.BgpSrteRemoteEndpointSubTlv { return obj.obj } -func (obj *bgpSrteSegmentList) SetMsg(msg *otg.BgpSrteSegmentList) BgpSrteSegmentList { - obj.setNil() +func (obj *bgpSrteRemoteEndpointSubTlv) SetMsg(msg *otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv { + proto.Merge(obj.obj, msg) return obj } -func (obj *bgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -298032,7 +299285,7 @@ func (obj *bgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { return obj.Msg(), nil } -func (obj *bgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -298041,7 +299294,7 @@ func (obj *bgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSe return newObj, nil } -func (obj *bgpSrteSegmentList) ToPbText() (string, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298053,12 +299306,12 @@ func (obj *bgpSrteSegmentList) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpSrteSegmentList) FromPbText(value string) error { +func (obj *bgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -298066,7 +299319,7 @@ func (obj *bgpSrteSegmentList) FromPbText(value string) error { return retObj } -func (obj *bgpSrteSegmentList) ToYaml() (string, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298087,7 +299340,7 @@ func (obj *bgpSrteSegmentList) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpSrteSegmentList) FromYaml(value string) error { +func (obj *bgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -298104,7 +299357,7 @@ func (obj *bgpSrteSegmentList) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -298112,7 +299365,7 @@ func (obj *bgpSrteSegmentList) FromYaml(value string) error { return nil } -func (obj *bgpSrteSegmentList) ToJson() (string, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298130,7 +299383,7 @@ func (obj *bgpSrteSegmentList) ToJson() (string, error) { return string(data), nil } -func (obj *bgpSrteSegmentList) FromJson(value string) error { +func (obj *bgpSrteRemoteEndpointSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -298143,7 +299396,7 @@ func (obj *bgpSrteSegmentList) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + err := obj.validateToAndFrom() if err != nil { return err @@ -298151,19 +299404,19 @@ func (obj *bgpSrteSegmentList) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentList) validateToAndFrom() error { +func (obj *bgpSrteRemoteEndpointSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentList) Validate() error { +func (obj *bgpSrteRemoteEndpointSubTlv) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentList) String() string { +func (obj *bgpSrteRemoteEndpointSubTlv) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -298171,12 +299424,12 @@ func (obj *bgpSrteSegmentList) String() string { return str } -func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { +func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentList() + newObj := NewBgpSrteRemoteEndpointSubTlv() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -298188,282 +299441,501 @@ func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { return newObj, nil } -func (obj *bgpSrteSegmentList) setNil() { - obj.segmentsHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentList is optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV encodes a single explicit path towards the Endpoint. -type BgpSrteSegmentList interface { +// BgpSrteRemoteEndpointSubTlv is configuration for the BGP remote endpoint sub TLV. +type BgpSrteRemoteEndpointSubTlv interface { Validation - // Msg marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + // Msg marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv // and doesn't set defaults - Msg() *otg.BgpSrteSegmentList - // SetMsg unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + Msg() *otg.BgpSrteRemoteEndpointSubTlv + // SetMsg unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv // and doesn't set defaults - SetMsg(*otg.BgpSrteSegmentList) BgpSrteSegmentList - // ToProto marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList - ToProto() (*otg.BgpSrteSegmentList, error) - // ToPbText marshals BgpSrteSegmentList to protobuf text + SetMsg(*otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv + // ToProto marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv + ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) + // ToPbText marshals BgpSrteRemoteEndpointSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentList to YAML text + // ToYaml marshals BgpSrteRemoteEndpointSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentList to JSON text + // ToJson marshals BgpSrteRemoteEndpointSubTlv to JSON text ToJson() (string, error) - // FromProto unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList - FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) - // FromPbText unmarshals BgpSrteSegmentList from protobuf text + // FromProto unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv + FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) + // FromPbText unmarshals BgpSrteRemoteEndpointSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentList from YAML text + // FromYaml unmarshals BgpSrteRemoteEndpointSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentList from JSON text + // FromJson unmarshals BgpSrteRemoteEndpointSubTlv from JSON text FromJson(value string) error - // Validate validates BgpSrteSegmentList + // Validate validates BgpSrteRemoteEndpointSubTlv Validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentList, error) + Clone() (BgpSrteRemoteEndpointSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Weight returns uint32, set in BgpSrteSegmentList. - Weight() uint32 - // SetWeight assigns uint32 provided by user to BgpSrteSegmentList - SetWeight(value uint32) BgpSrteSegmentList - // HasWeight checks if Weight has been set in BgpSrteSegmentList - HasWeight() bool - // Segments returns BgpSrteSegmentListBgpSrteSegmentIterIter, set in BgpSrteSegmentList - Segments() BgpSrteSegmentListBgpSrteSegmentIter - // Name returns string, set in BgpSrteSegmentList. - Name() string - // SetName assigns string provided by user to BgpSrteSegmentList - SetName(value string) BgpSrteSegmentList - // Active returns bool, set in BgpSrteSegmentList. - Active() bool - // SetActive assigns bool provided by user to BgpSrteSegmentList - SetActive(value bool) BgpSrteSegmentList - // HasActive checks if Active has been set in BgpSrteSegmentList - HasActive() bool - setNil() + // AsNumber returns uint32, set in BgpSrteRemoteEndpointSubTlv. + AsNumber() uint32 + // SetAsNumber assigns uint32 provided by user to BgpSrteRemoteEndpointSubTlv + SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv + // HasAsNumber checks if AsNumber has been set in BgpSrteRemoteEndpointSubTlv + HasAsNumber() bool + // AddressFamily returns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum, set in BgpSrteRemoteEndpointSubTlv + AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum + // SetAddressFamily assigns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum provided by user to BgpSrteRemoteEndpointSubTlv + SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv + // HasAddressFamily checks if AddressFamily has been set in BgpSrteRemoteEndpointSubTlv + HasAddressFamily() bool + // Ipv4Address returns string, set in BgpSrteRemoteEndpointSubTlv. + Ipv4Address() string + // SetIpv4Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv + SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv + // HasIpv4Address checks if Ipv4Address has been set in BgpSrteRemoteEndpointSubTlv + HasIpv4Address() bool + // Ipv6Address returns string, set in BgpSrteRemoteEndpointSubTlv. + Ipv6Address() string + // SetIpv6Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv + SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv + // HasIpv6Address checks if Ipv6Address has been set in BgpSrteRemoteEndpointSubTlv + HasIpv6Address() bool } -// The Weight associated with a given path and the sub-TLV is optional. -// Weight returns a uint32 -func (obj *bgpSrteSegmentList) Weight() uint32 { +// Autonomous system (AS) number +// AsNumber returns a uint32 +func (obj *bgpSrteRemoteEndpointSubTlv) AsNumber() uint32 { - return *obj.obj.Weight + return *obj.obj.AsNumber } -// The Weight associated with a given path and the sub-TLV is optional. -// Weight returns a uint32 -func (obj *bgpSrteSegmentList) HasWeight() bool { - return obj.obj.Weight != nil +// Autonomous system (AS) number +// AsNumber returns a uint32 +func (obj *bgpSrteRemoteEndpointSubTlv) HasAsNumber() bool { + return obj.obj.AsNumber != nil } -// The Weight associated with a given path and the sub-TLV is optional. -// SetWeight sets the uint32 value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetWeight(value uint32) BgpSrteSegmentList { +// Autonomous system (AS) number +// SetAsNumber sets the uint32 value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv { - obj.obj.Weight = &value + obj.obj.AsNumber = &value return obj } -// description is TBD -// Segments returns a []BgpSrteSegment -func (obj *bgpSrteSegmentList) Segments() BgpSrteSegmentListBgpSrteSegmentIter { - if len(obj.obj.Segments) == 0 { - obj.obj.Segments = []*otg.BgpSrteSegment{} - } - if obj.segmentsHolder == nil { - obj.segmentsHolder = newBgpSrteSegmentListBgpSrteSegmentIter(&obj.obj.Segments).setMsg(obj) - } - return obj.segmentsHolder -} +type BgpSrteRemoteEndpointSubTlvAddressFamilyEnum string -type bgpSrteSegmentListBgpSrteSegmentIter struct { - obj *bgpSrteSegmentList - bgpSrteSegmentSlice []BgpSrteSegment - fieldPtr *[]*otg.BgpSrteSegment +// Enum of AddressFamily on BgpSrteRemoteEndpointSubTlv +var BgpSrteRemoteEndpointSubTlvAddressFamily = struct { + IPV4 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum + IPV6 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum +}{ + IPV4: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv4"), + IPV6: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv6"), } -func newBgpSrteSegmentListBgpSrteSegmentIter(ptr *[]*otg.BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - return &bgpSrteSegmentListBgpSrteSegmentIter{fieldPtr: ptr} +func (obj *bgpSrteRemoteEndpointSubTlv) AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum { + return BgpSrteRemoteEndpointSubTlvAddressFamilyEnum(obj.obj.AddressFamily.Enum().String()) } -type BgpSrteSegmentListBgpSrteSegmentIter interface { - setMsg(*bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter - Items() []BgpSrteSegment - Add() BgpSrteSegment - Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter - Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter - Clear() BgpSrteSegmentListBgpSrteSegmentIter - clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter - appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter +// Determines the address type +// AddressFamily returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasAddressFamily() bool { + return obj.obj.AddressFamily != nil } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) setMsg(msg *bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpSrteSegment{obj: val}) +func (obj *bgpSrteRemoteEndpointSubTlv) SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv { + intValue, ok := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteRemoteEndpointSubTlvAddressFamilyEnum", string(value))) + return obj } - obj.obj = msg + enumValue := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum(intValue) + obj.obj.AddressFamily = &enumValue + return obj } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Items() []BgpSrteSegment { - return obj.bgpSrteSegmentSlice +// The IPv4 address of the Remote Endpoint. +// Ipv4Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) Ipv4Address() string { + + return *obj.obj.Ipv4Address + } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Add() BgpSrteSegment { - newObj := &otg.BgpSrteSegment{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpSrteSegment{obj: newObj} - newLibObj.setDefault() - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, newLibObj) - return newLibObj +// The IPv4 address of the Remote Endpoint. +// Ipv4Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv4Address() bool { + return obj.obj.Ipv4Address != nil } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) - } +// The IPv4 address of the Remote Endpoint. +// SetIpv4Address sets the string value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv { + + obj.obj.Ipv4Address = &value return obj } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpSrteSegmentSlice[index] = newObj +// The IPv6 address of the Remote Endpoint. +// Ipv6Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) Ipv6Address() string { + + return *obj.obj.Ipv6Address + +} + +// The IPv6 address of the Remote Endpoint. +// Ipv6Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv6Address() bool { + return obj.obj.Ipv6Address != nil +} + +// The IPv6 address of the Remote Endpoint. +// SetIpv6Address sets the string value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv { + + obj.obj.Ipv6Address = &value return obj } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Clear() BgpSrteSegmentListBgpSrteSegmentIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpSrteSegment{} - obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + +func (obj *bgpSrteRemoteEndpointSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - return obj + + if obj.obj.Ipv4Address != nil { + + err := obj.validateIpv4(obj.Ipv4Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv4Address")) + } + + } + + if obj.obj.Ipv6Address != nil { + + err := obj.validateIpv6(obj.Ipv6Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv6Address")) + } + + } + } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter { - if len(obj.bgpSrteSegmentSlice) > 0 { - obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + +func (obj *bgpSrteRemoteEndpointSubTlv) setDefault() { + if obj.obj.AsNumber == nil { + obj.SetAsNumber(0) } - return obj + if obj.obj.AddressFamily == nil { + obj.SetAddressFamily(BgpSrteRemoteEndpointSubTlvAddressFamily.IPV4) + + } + if obj.obj.Ipv4Address == nil { + obj.SetIpv4Address("0.0.0.0") + } + if obj.obj.Ipv6Address == nil { + obj.SetIpv6Address("::0") + } + } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) - return obj + +// ***** BgpSrteColorSubTlv ***** +type bgpSrteColorSubTlv struct { + validation + obj *otg.BgpSrteColorSubTlv } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. -// Name returns a string -func (obj *bgpSrteSegmentList) Name() string { +func NewBgpSrteColorSubTlv() BgpSrteColorSubTlv { + obj := bgpSrteColorSubTlv{obj: &otg.BgpSrteColorSubTlv{}} + obj.setDefault() + return &obj +} - return obj.obj.Name +func (obj *bgpSrteColorSubTlv) Msg() *otg.BgpSrteColorSubTlv { + return obj.obj } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. -// SetName sets the string value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetName(value string) BgpSrteSegmentList { +func (obj *bgpSrteColorSubTlv) SetMsg(msg *otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv { - obj.obj.Name = value + proto.Merge(obj.obj, msg) return obj } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// Active returns a bool -func (obj *bgpSrteSegmentList) Active() bool { +func (obj *bgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} - return *obj.obj.Active +func (obj *bgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} +func (obj *bgpSrteColorSubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// Active returns a bool -func (obj *bgpSrteSegmentList) HasActive() bool { - return obj.obj.Active != nil +func (obj *bgpSrteColorSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// SetActive sets the bool value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetActive(value bool) BgpSrteSegmentList { +func (obj *bgpSrteColorSubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} - obj.obj.Active = &value +func (obj *bgpSrteColorSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrteColorSubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteColorSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteColorSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteColorSubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteColorSubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteColorSubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrteColorSubTlv is configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used as a way to "color" the corresponding Tunnel TLV. The Value field of the sub-TLV is eight octets long and consists of a Color Extended Community. First two octets of its Value field are 0x030b as type and subtype of extended community. Remaining six octets are are exposed to configure. +type BgpSrteColorSubTlv interface { + Validation + // Msg marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + // and doesn't set defaults + Msg() *otg.BgpSrteColorSubTlv + // SetMsg unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv + // ToProto marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + ToProto() (*otg.BgpSrteColorSubTlv, error) + // ToPbText marshals BgpSrteColorSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteColorSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteColorSubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) + // FromPbText unmarshals BgpSrteColorSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteColorSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteColorSubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrteColorSubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteColorSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Color returns string, set in BgpSrteColorSubTlv. + Color() string + // SetColor assigns string provided by user to BgpSrteColorSubTlv + SetColor(value string) BgpSrteColorSubTlv + // HasColor checks if Color has been set in BgpSrteColorSubTlv + HasColor() bool +} + +// Six octet values. Example: 000000000064 for color value 100. +// Color returns a string +func (obj *bgpSrteColorSubTlv) Color() string { + + return *obj.obj.Color + +} + +// Six octet values. Example: 000000000064 for color value 100. +// Color returns a string +func (obj *bgpSrteColorSubTlv) HasColor() bool { + return obj.obj.Color != nil +} + +// Six octet values. Example: 000000000064 for color value 100. +// SetColor sets the string value in the BgpSrteColorSubTlv object +func (obj *bgpSrteColorSubTlv) SetColor(value string) BgpSrteColorSubTlv { + + obj.obj.Color = &value return obj } -func (obj *bgpSrteSegmentList) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteColorSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.Segments) != 0 { + if obj.obj.Color != nil { - if set_default { - obj.Segments().clearHolderSlice() - for _, item := range obj.obj.Segments { - obj.Segments().appendHolderSlice(&bgpSrteSegment{obj: item}) - } - } - for _, item := range obj.Segments().Items() { - item.validateObj(vObj, set_default) + err := obj.validateHex(obj.Color()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteColorSubTlv.Color")) } } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegmentList") - } } -func (obj *bgpSrteSegmentList) setDefault() { - if obj.obj.Weight == nil { - obj.SetWeight(0) - } - if obj.obj.Active == nil { - obj.SetActive(true) - } +func (obj *bgpSrteColorSubTlv) setDefault() { } -// ***** BgpV6EviVxlan ***** -type bgpV6EviVxlan struct { +// ***** BgpSrteBindingSubTlv ***** +type bgpSrteBindingSubTlv struct { validation - obj *otg.BgpV6EviVxlan - broadcastDomainsHolder BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - routeDistinguisherHolder BgpRouteDistinguisher - routeTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter - routeTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter - l3RouteTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter - l3RouteTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter - advancedHolder BgpRouteAdvanced - communitiesHolder BgpV6EviVxlanBgpCommunityIter - extCommunitiesHolder BgpV6EviVxlanBgpExtCommunityIter - asPathHolder BgpAsPath + obj *otg.BgpSrteBindingSubTlv } -func NewBgpV6EviVxlan() BgpV6EviVxlan { - obj := bgpV6EviVxlan{obj: &otg.BgpV6EviVxlan{}} +func NewBgpSrteBindingSubTlv() BgpSrteBindingSubTlv { + obj := bgpSrteBindingSubTlv{obj: &otg.BgpSrteBindingSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpV6EviVxlan) Msg() *otg.BgpV6EviVxlan { +func (obj *bgpSrteBindingSubTlv) Msg() *otg.BgpSrteBindingSubTlv { return obj.obj } -func (obj *bgpV6EviVxlan) SetMsg(msg *otg.BgpV6EviVxlan) BgpV6EviVxlan { - obj.setNil() +func (obj *bgpSrteBindingSubTlv) SetMsg(msg *otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv { + proto.Merge(obj.obj, msg) return obj } -func (obj *bgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { +func (obj *bgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -298471,7 +299943,7 @@ func (obj *bgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { return obj.Msg(), nil } -func (obj *bgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) { +func (obj *bgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -298480,7 +299952,7 @@ func (obj *bgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, erro return newObj, nil } -func (obj *bgpV6EviVxlan) ToPbText() (string, error) { +func (obj *bgpSrteBindingSubTlv) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298492,12 +299964,12 @@ func (obj *bgpV6EviVxlan) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpV6EviVxlan) FromPbText(value string) error { +func (obj *bgpSrteBindingSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -298505,7 +299977,7 @@ func (obj *bgpV6EviVxlan) FromPbText(value string) error { return retObj } -func (obj *bgpV6EviVxlan) ToYaml() (string, error) { +func (obj *bgpSrteBindingSubTlv) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298526,7 +299998,7 @@ func (obj *bgpV6EviVxlan) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpV6EviVxlan) FromYaml(value string) error { +func (obj *bgpSrteBindingSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -298543,7 +300015,7 @@ func (obj *bgpV6EviVxlan) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -298551,7 +300023,7 @@ func (obj *bgpV6EviVxlan) FromYaml(value string) error { return nil } -func (obj *bgpV6EviVxlan) ToJson() (string, error) { +func (obj *bgpSrteBindingSubTlv) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -298569,7 +300041,7 @@ func (obj *bgpV6EviVxlan) ToJson() (string, error) { return string(data), nil } -func (obj *bgpV6EviVxlan) FromJson(value string) error { +func (obj *bgpSrteBindingSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -298582,7 +300054,7 @@ func (obj *bgpV6EviVxlan) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + err := obj.validateToAndFrom() if err != nil { return err @@ -298590,19 +300062,19 @@ func (obj *bgpV6EviVxlan) FromJson(value string) error { return nil } -func (obj *bgpV6EviVxlan) validateToAndFrom() error { +func (obj *bgpSrteBindingSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpV6EviVxlan) Validate() error { +func (obj *bgpSrteBindingSubTlv) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpV6EviVxlan) String() string { +func (obj *bgpSrteBindingSubTlv) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -298610,12 +300082,12 @@ func (obj *bgpV6EviVxlan) String() string { return str } -func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { +func (obj *bgpSrteBindingSubTlv) Clone() (BgpSrteBindingSubTlv, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpV6EviVxlan() + newObj := NewBgpSrteBindingSubTlv() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -298627,842 +300099,6222 @@ func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { return newObj, nil } -func (obj *bgpV6EviVxlan) setNil() { - obj.broadcastDomainsHolder = nil - obj.routeDistinguisherHolder = nil - obj.routeTargetExportHolder = nil - obj.routeTargetImportHolder = nil - obj.l3RouteTargetExportHolder = nil - obj.l3RouteTargetImportHolder = nil - obj.advancedHolder = nil - obj.communitiesHolder = nil - obj.extCommunitiesHolder = nil - obj.asPathHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpV6EviVxlan is configuration for BGP EVPN EVI. Advertises following routes - -// -// # Type 3 - Inclusive Multicast Ethernet Tag Route -// -// Type 1 - Ethernet Auto-discovery Route (Per EVI) -// -// Type 1 - Ethernet Auto-discovery Route (Per ES) -type BgpV6EviVxlan interface { +// BgpSrteBindingSubTlv is configuration for the binding SID sub-TLV. This is used to signal the binding SID related information of the SR Policy candidate path. +type BgpSrteBindingSubTlv interface { Validation - // Msg marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + // Msg marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv // and doesn't set defaults - Msg() *otg.BgpV6EviVxlan - // SetMsg unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + Msg() *otg.BgpSrteBindingSubTlv + // SetMsg unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv // and doesn't set defaults - SetMsg(*otg.BgpV6EviVxlan) BgpV6EviVxlan - // ToProto marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan - ToProto() (*otg.BgpV6EviVxlan, error) - // ToPbText marshals BgpV6EviVxlan to protobuf text + SetMsg(*otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv + // ToProto marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv + ToProto() (*otg.BgpSrteBindingSubTlv, error) + // ToPbText marshals BgpSrteBindingSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpV6EviVxlan to YAML text + // ToYaml marshals BgpSrteBindingSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpV6EviVxlan to JSON text + // ToJson marshals BgpSrteBindingSubTlv to JSON text ToJson() (string, error) - // FromProto unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan - FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) - // FromPbText unmarshals BgpV6EviVxlan from protobuf text + // FromProto unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv + FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) + // FromPbText unmarshals BgpSrteBindingSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpV6EviVxlan from YAML text + // FromYaml unmarshals BgpSrteBindingSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpV6EviVxlan from JSON text + // FromJson unmarshals BgpSrteBindingSubTlv from JSON text FromJson(value string) error - // Validate validates BgpV6EviVxlan + // Validate validates BgpSrteBindingSubTlv Validate() error // A stringer function String() string // Clones the object - Clone() (BgpV6EviVxlan, error) + Clone() (BgpSrteBindingSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // BroadcastDomains returns BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIterIter, set in BgpV6EviVxlan - BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - // ReplicationType returns BgpV6EviVxlanReplicationTypeEnum, set in BgpV6EviVxlan - ReplicationType() BgpV6EviVxlanReplicationTypeEnum - // SetReplicationType assigns BgpV6EviVxlanReplicationTypeEnum provided by user to BgpV6EviVxlan - SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan - // HasReplicationType checks if ReplicationType has been set in BgpV6EviVxlan - HasReplicationType() bool - // PmsiLabel returns uint32, set in BgpV6EviVxlan. - PmsiLabel() uint32 - // SetPmsiLabel assigns uint32 provided by user to BgpV6EviVxlan - SetPmsiLabel(value uint32) BgpV6EviVxlan - // HasPmsiLabel checks if PmsiLabel has been set in BgpV6EviVxlan - HasPmsiLabel() bool - // AdLabel returns uint32, set in BgpV6EviVxlan. - AdLabel() uint32 - // SetAdLabel assigns uint32 provided by user to BgpV6EviVxlan - SetAdLabel(value uint32) BgpV6EviVxlan - // HasAdLabel checks if AdLabel has been set in BgpV6EviVxlan - HasAdLabel() bool - // RouteDistinguisher returns BgpRouteDistinguisher, set in BgpV6EviVxlan. - // BgpRouteDistinguisher is bGP Route Distinguisher. - RouteDistinguisher() BgpRouteDistinguisher - // SetRouteDistinguisher assigns BgpRouteDistinguisher provided by user to BgpV6EviVxlan. - // BgpRouteDistinguisher is bGP Route Distinguisher. - SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan - // HasRouteDistinguisher checks if RouteDistinguisher has been set in BgpV6EviVxlan - HasRouteDistinguisher() bool - // RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter - // RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter - // L3RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter - // L3RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter - // Advanced returns BgpRouteAdvanced, set in BgpV6EviVxlan. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - Advanced() BgpRouteAdvanced - // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpV6EviVxlan. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan - // HasAdvanced checks if Advanced has been set in BgpV6EviVxlan - HasAdvanced() bool - // Communities returns BgpV6EviVxlanBgpCommunityIterIter, set in BgpV6EviVxlan - Communities() BgpV6EviVxlanBgpCommunityIter - // ExtCommunities returns BgpV6EviVxlanBgpExtCommunityIterIter, set in BgpV6EviVxlan - ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter - // AsPath returns BgpAsPath, set in BgpV6EviVxlan. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - AsPath() BgpAsPath - // SetAsPath assigns BgpAsPath provided by user to BgpV6EviVxlan. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - SetAsPath(value BgpAsPath) BgpV6EviVxlan - // HasAsPath checks if AsPath has been set in BgpV6EviVxlan - HasAsPath() bool - setNil() + // BindingSidType returns BgpSrteBindingSubTlvBindingSidTypeEnum, set in BgpSrteBindingSubTlv + BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum + // SetBindingSidType assigns BgpSrteBindingSubTlvBindingSidTypeEnum provided by user to BgpSrteBindingSubTlv + SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv + // HasBindingSidType checks if BindingSidType has been set in BgpSrteBindingSubTlv + HasBindingSidType() bool + // FourOctetSid returns uint32, set in BgpSrteBindingSubTlv. + FourOctetSid() uint32 + // SetFourOctetSid assigns uint32 provided by user to BgpSrteBindingSubTlv + SetFourOctetSid(value uint32) BgpSrteBindingSubTlv + // HasFourOctetSid checks if FourOctetSid has been set in BgpSrteBindingSubTlv + HasFourOctetSid() bool + // Ipv6Sid returns string, set in BgpSrteBindingSubTlv. + Ipv6Sid() string + // SetIpv6Sid assigns string provided by user to BgpSrteBindingSubTlv + SetIpv6Sid(value string) BgpSrteBindingSubTlv + // HasIpv6Sid checks if Ipv6Sid has been set in BgpSrteBindingSubTlv + HasIpv6Sid() bool + // SFlag returns bool, set in BgpSrteBindingSubTlv. + SFlag() bool + // SetSFlag assigns bool provided by user to BgpSrteBindingSubTlv + SetSFlag(value bool) BgpSrteBindingSubTlv + // HasSFlag checks if SFlag has been set in BgpSrteBindingSubTlv + HasSFlag() bool + // IFlag returns bool, set in BgpSrteBindingSubTlv. + IFlag() bool + // SetIFlag assigns bool provided by user to BgpSrteBindingSubTlv + SetIFlag(value bool) BgpSrteBindingSubTlv + // HasIFlag checks if IFlag has been set in BgpSrteBindingSubTlv + HasIFlag() bool } -// This contains the list of Broadcast Domains to be configured per EVI. -// BroadcastDomains returns a []BgpV6EviVxlanBroadcastDomain -func (obj *bgpV6EviVxlan) BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(obj.obj.BroadcastDomains) == 0 { - obj.obj.BroadcastDomains = []*otg.BgpV6EviVxlanBroadcastDomain{} - } - if obj.broadcastDomainsHolder == nil { - obj.broadcastDomainsHolder = newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(&obj.obj.BroadcastDomains).setMsg(obj) +type BgpSrteBindingSubTlvBindingSidTypeEnum string + +// Enum of BindingSidType on BgpSrteBindingSubTlv +var BgpSrteBindingSubTlvBindingSidType = struct { + NO_BINDING BgpSrteBindingSubTlvBindingSidTypeEnum + FOUR_OCTET_SID BgpSrteBindingSubTlvBindingSidTypeEnum + IPV6_SID BgpSrteBindingSubTlvBindingSidTypeEnum +}{ + NO_BINDING: BgpSrteBindingSubTlvBindingSidTypeEnum("no_binding"), + FOUR_OCTET_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("four_octet_sid"), + IPV6_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("ipv6_sid"), +} + +func (obj *bgpSrteBindingSubTlv) BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum { + return BgpSrteBindingSubTlvBindingSidTypeEnum(obj.obj.BindingSidType.Enum().String()) +} + +// Type of the binding SID. Supported types are "No Binding SID" or "Four Octets Sid" or "IPv6 SID". +// BindingSidType returns a string +func (obj *bgpSrteBindingSubTlv) HasBindingSidType() bool { + return obj.obj.BindingSidType != nil +} + +func (obj *bgpSrteBindingSubTlv) SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv { + intValue, ok := otg.BgpSrteBindingSubTlv_BindingSidType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteBindingSubTlvBindingSidTypeEnum", string(value))) + return obj } - return obj.broadcastDomainsHolder + enumValue := otg.BgpSrteBindingSubTlv_BindingSidType_Enum(intValue) + obj.obj.BindingSidType = &enumValue + + return obj } -type bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter struct { - obj *bgpV6EviVxlan - bgpV6EviVxlanBroadcastDomainSlice []BgpV6EviVxlanBroadcastDomain - fieldPtr *[]*otg.BgpV6EviVxlanBroadcastDomain +// Binding SID is encoded in 4 octets. +// FourOctetSid returns a uint32 +func (obj *bgpSrteBindingSubTlv) FourOctetSid() uint32 { + + return *obj.obj.FourOctetSid + } -func newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(ptr *[]*otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - return &bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter{fieldPtr: ptr} +// Binding SID is encoded in 4 octets. +// FourOctetSid returns a uint32 +func (obj *bgpSrteBindingSubTlv) HasFourOctetSid() bool { + return obj.obj.FourOctetSid != nil } -type BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Items() []BgpV6EviVxlanBroadcastDomain - Add() BgpV6EviVxlanBroadcastDomain - Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter +// Binding SID is encoded in 4 octets. +// SetFourOctetSid sets the uint32 value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetFourOctetSid(value uint32) BgpSrteBindingSubTlv { + + obj.obj.FourOctetSid = &value + return obj } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: val}) - } - obj.obj = msg +// IPv6 SID value. +// Ipv6Sid returns a string +func (obj *bgpSrteBindingSubTlv) Ipv6Sid() string { + + return *obj.obj.Ipv6Sid + +} + +// IPv6 SID value. +// Ipv6Sid returns a string +func (obj *bgpSrteBindingSubTlv) HasIpv6Sid() bool { + return obj.obj.Ipv6Sid != nil +} + +// IPv6 SID value. +// SetIpv6Sid sets the string value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetIpv6Sid(value string) BgpSrteBindingSubTlv { + + obj.obj.Ipv6Sid = &value return obj } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Items() []BgpV6EviVxlanBroadcastDomain { - return obj.bgpV6EviVxlanBroadcastDomainSlice +// S-Flag encodes the "Specified-BSID-only" behavior. +// SFlag returns a bool +func (obj *bgpSrteBindingSubTlv) SFlag() bool { + + return *obj.obj.SFlag + } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Add() BgpV6EviVxlanBroadcastDomain { - newObj := &otg.BgpV6EviVxlanBroadcastDomain{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpV6EviVxlanBroadcastDomain{obj: newObj} - newLibObj.setDefault() - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, newLibObj) - return newLibObj +// S-Flag encodes the "Specified-BSID-only" behavior. +// SFlag returns a bool +func (obj *bgpSrteBindingSubTlv) HasSFlag() bool { + return obj.obj.SFlag != nil } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) - } +// S-Flag encodes the "Specified-BSID-only" behavior. +// SetSFlag sets the bool value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetSFlag(value bool) BgpSrteBindingSubTlv { + + obj.obj.SFlag = &value return obj } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpV6EviVxlanBroadcastDomainSlice[index] = newObj +// I-Flag encodes the "Drop Upon Invalid" behavior. +// IFlag returns a bool +func (obj *bgpSrteBindingSubTlv) IFlag() bool { + + return *obj.obj.IFlag + +} + +// I-Flag encodes the "Drop Upon Invalid" behavior. +// IFlag returns a bool +func (obj *bgpSrteBindingSubTlv) HasIFlag() bool { + return obj.obj.IFlag != nil +} + +// I-Flag encodes the "Drop Upon Invalid" behavior. +// SetIFlag sets the bool value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetIFlag(value bool) BgpSrteBindingSubTlv { + + obj.obj.IFlag = &value return obj } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpV6EviVxlanBroadcastDomain{} - obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + +func (obj *bgpSrteBindingSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - return obj + + if obj.obj.Ipv6Sid != nil { + + err := obj.validateIpv6(obj.Ipv6Sid()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteBindingSubTlv.Ipv6Sid")) + } + + } + } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(obj.bgpV6EviVxlanBroadcastDomainSlice) > 0 { - obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + +func (obj *bgpSrteBindingSubTlv) setDefault() { + if obj.obj.BindingSidType == nil { + obj.SetBindingSidType(BgpSrteBindingSubTlvBindingSidType.NO_BINDING) + } - return obj + if obj.obj.SFlag == nil { + obj.SetSFlag(false) + } + if obj.obj.IFlag == nil { + obj.SetIFlag(false) + } + } -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) + +// ***** BgpSrtePreferenceSubTlv ***** +type bgpSrtePreferenceSubTlv struct { + validation + obj *otg.BgpSrtePreferenceSubTlv +} + +func NewBgpSrtePreferenceSubTlv() BgpSrtePreferenceSubTlv { + obj := bgpSrtePreferenceSubTlv{obj: &otg.BgpSrtePreferenceSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePreferenceSubTlv) Msg() *otg.BgpSrtePreferenceSubTlv { + return obj.obj +} + +func (obj *bgpSrtePreferenceSubTlv) SetMsg(msg *otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv { + + proto.Merge(obj.obj, msg) return obj } -type BgpV6EviVxlanReplicationTypeEnum string +func (obj *bgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} -// Enum of ReplicationType on BgpV6EviVxlan -var BgpV6EviVxlanReplicationType = struct { - INGRESS_REPLICATION BgpV6EviVxlanReplicationTypeEnum -}{ - INGRESS_REPLICATION: BgpV6EviVxlanReplicationTypeEnum("ingress_replication"), +func (obj *bgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrtePreferenceSubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrtePreferenceSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrtePreferenceSubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePreferenceSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrtePreferenceSubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePreferenceSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePreferenceSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePreferenceSubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePreferenceSubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePreferenceSubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePreferenceSubTlv is configuration for BGP preference sub TLV of the SR Policy candidate path. +type BgpSrtePreferenceSubTlv interface { + Validation + // Msg marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + // and doesn't set defaults + Msg() *otg.BgpSrtePreferenceSubTlv + // SetMsg unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv + // ToProto marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + ToProto() (*otg.BgpSrtePreferenceSubTlv, error) + // ToPbText marshals BgpSrtePreferenceSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePreferenceSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePreferenceSubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) + // FromPbText unmarshals BgpSrtePreferenceSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePreferenceSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePreferenceSubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrtePreferenceSubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePreferenceSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Preference returns uint32, set in BgpSrtePreferenceSubTlv. + Preference() uint32 + // SetPreference assigns uint32 provided by user to BgpSrtePreferenceSubTlv + SetPreference(value uint32) BgpSrtePreferenceSubTlv + // HasPreference checks if Preference has been set in BgpSrtePreferenceSubTlv + HasPreference() bool +} + +// The preference value of the SR Policy candidate path. +// Preference returns a uint32 +func (obj *bgpSrtePreferenceSubTlv) Preference() uint32 { + + return *obj.obj.Preference + +} + +// The preference value of the SR Policy candidate path. +// Preference returns a uint32 +func (obj *bgpSrtePreferenceSubTlv) HasPreference() bool { + return obj.obj.Preference != nil +} + +// The preference value of the SR Policy candidate path. +// SetPreference sets the uint32 value in the BgpSrtePreferenceSubTlv object +func (obj *bgpSrtePreferenceSubTlv) SetPreference(value uint32) BgpSrtePreferenceSubTlv { + + obj.obj.Preference = &value + return obj +} + +func (obj *bgpSrtePreferenceSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *bgpSrtePreferenceSubTlv) setDefault() { + if obj.obj.Preference == nil { + obj.SetPreference(0) + } + +} + +// ***** BgpSrtePolicyPrioritySubTlv ***** +type bgpSrtePolicyPrioritySubTlv struct { + validation + obj *otg.BgpSrtePolicyPrioritySubTlv +} + +func NewBgpSrtePolicyPrioritySubTlv() BgpSrtePolicyPrioritySubTlv { + obj := bgpSrtePolicyPrioritySubTlv{obj: &otg.BgpSrtePolicyPrioritySubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Msg() *otg.BgpSrtePolicyPrioritySubTlv { + return obj.obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) SetMsg(msg *otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyPrioritySubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePolicyPrioritySubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePolicyPrioritySubTlv is configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the order in which the SR policies are re-computed upon topological change. +type BgpSrtePolicyPrioritySubTlv interface { + Validation + // Msg marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // and doesn't set defaults + Msg() *otg.BgpSrtePolicyPrioritySubTlv + // SetMsg unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv + // ToProto marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) + // ToPbText marshals BgpSrtePolicyPrioritySubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePolicyPrioritySubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePolicyPrioritySubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) + // FromPbText unmarshals BgpSrtePolicyPrioritySubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePolicyPrioritySubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePolicyPrioritySubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrtePolicyPrioritySubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePolicyPrioritySubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // PolicyPriority returns uint32, set in BgpSrtePolicyPrioritySubTlv. + PolicyPriority() uint32 + // SetPolicyPriority assigns uint32 provided by user to BgpSrtePolicyPrioritySubTlv + SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv + // HasPolicyPriority checks if PolicyPriority has been set in BgpSrtePolicyPrioritySubTlv + HasPolicyPriority() bool +} + +// One-octet Priority value. +// PolicyPriority returns a uint32 +func (obj *bgpSrtePolicyPrioritySubTlv) PolicyPriority() uint32 { + + return *obj.obj.PolicyPriority + +} + +// One-octet Priority value. +// PolicyPriority returns a uint32 +func (obj *bgpSrtePolicyPrioritySubTlv) HasPolicyPriority() bool { + return obj.obj.PolicyPriority != nil +} + +// One-octet Priority value. +// SetPolicyPriority sets the uint32 value in the BgpSrtePolicyPrioritySubTlv object +func (obj *bgpSrtePolicyPrioritySubTlv) SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv { + + obj.obj.PolicyPriority = &value + return obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.PolicyPriority != nil { + + if *obj.obj.PolicyPriority > 255 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpSrtePolicyPrioritySubTlv.PolicyPriority <= 255 but Got %d", *obj.obj.PolicyPriority)) + } + + } + +} + +func (obj *bgpSrtePolicyPrioritySubTlv) setDefault() { + +} + +// ***** BgpSrtePolicyNameSubTlv ***** +type bgpSrtePolicyNameSubTlv struct { + validation + obj *otg.BgpSrtePolicyNameSubTlv +} + +func NewBgpSrtePolicyNameSubTlv() BgpSrtePolicyNameSubTlv { + obj := bgpSrtePolicyNameSubTlv{obj: &otg.BgpSrtePolicyNameSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePolicyNameSubTlv) Msg() *otg.BgpSrtePolicyNameSubTlv { + return obj.obj +} + +func (obj *bgpSrtePolicyNameSubTlv) SetMsg(msg *otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrtePolicyNameSubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrtePolicyNameSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrtePolicyNameSubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePolicyNameSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrtePolicyNameSubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrtePolicyNameSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePolicyNameSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyNameSubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyNameSubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePolicyNameSubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePolicyNameSubTlv is configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach a symbolic name to the SR Policy candidate path. +type BgpSrtePolicyNameSubTlv interface { + Validation + // Msg marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + // and doesn't set defaults + Msg() *otg.BgpSrtePolicyNameSubTlv + // SetMsg unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv + // ToProto marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) + // ToPbText marshals BgpSrtePolicyNameSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePolicyNameSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePolicyNameSubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) + // FromPbText unmarshals BgpSrtePolicyNameSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePolicyNameSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePolicyNameSubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrtePolicyNameSubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePolicyNameSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // PolicyName returns string, set in BgpSrtePolicyNameSubTlv. + PolicyName() string + // SetPolicyName assigns string provided by user to BgpSrtePolicyNameSubTlv + SetPolicyName(value string) BgpSrtePolicyNameSubTlv + // HasPolicyName checks if PolicyName has been set in BgpSrtePolicyNameSubTlv + HasPolicyName() bool +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// PolicyName returns a string +func (obj *bgpSrtePolicyNameSubTlv) PolicyName() string { + + return *obj.obj.PolicyName + +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// PolicyName returns a string +func (obj *bgpSrtePolicyNameSubTlv) HasPolicyName() bool { + return obj.obj.PolicyName != nil +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// SetPolicyName sets the string value in the BgpSrtePolicyNameSubTlv object +func (obj *bgpSrtePolicyNameSubTlv) SetPolicyName(value string) BgpSrtePolicyNameSubTlv { + + obj.obj.PolicyName = &value + return obj +} + +func (obj *bgpSrtePolicyNameSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.PolicyName != nil { + + if len(*obj.obj.PolicyName) < 1 || len(*obj.obj.PolicyName) > 32 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "1 <= length of BgpSrtePolicyNameSubTlv.PolicyName <= 32 but Got %d", + len(*obj.obj.PolicyName))) + } + + } + +} + +func (obj *bgpSrtePolicyNameSubTlv) setDefault() { + +} + +// ***** BgpSrteExplicitNullLabelPolicySubTlv ***** +type bgpSrteExplicitNullLabelPolicySubTlv struct { + validation + obj *otg.BgpSrteExplicitNullLabelPolicySubTlv +} + +func NewBgpSrteExplicitNullLabelPolicySubTlv() BgpSrteExplicitNullLabelPolicySubTlv { + obj := bgpSrteExplicitNullLabelPolicySubTlv{obj: &otg.BgpSrteExplicitNullLabelPolicySubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv { + return obj.obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetMsg(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteExplicitNullLabelPolicySubTlv() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrteExplicitNullLabelPolicySubTlv is configuration for BGP explicit null label policy sub TLV settings. +type BgpSrteExplicitNullLabelPolicySubTlv interface { + Validation + // Msg marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + // and doesn't set defaults + Msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv + // SetMsg unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + // and doesn't set defaults + SetMsg(*otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv + // ToProto marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) + // ToPbText marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteExplicitNullLabelPolicySubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteExplicitNullLabelPolicySubTlv to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) + // FromPbText unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteExplicitNullLabelPolicySubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteExplicitNullLabelPolicySubTlv from JSON text + FromJson(value string) error + // Validate validates BgpSrteExplicitNullLabelPolicySubTlv + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // ExplicitNullLabelPolicy returns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum, set in BgpSrteExplicitNullLabelPolicySubTlv + ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + // SetExplicitNullLabelPolicy assigns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum provided by user to BgpSrteExplicitNullLabelPolicySubTlv + SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv + // HasExplicitNullLabelPolicy checks if ExplicitNullLabelPolicy has been set in BgpSrteExplicitNullLabelPolicySubTlv + HasExplicitNullLabelPolicy() bool +} + +type BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum string + +// Enum of ExplicitNullLabelPolicy on BgpSrteExplicitNullLabelPolicySubTlv +var BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy = struct { + RESERVED_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV4_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV4_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + DO_NOT_PUSH_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum +}{ + RESERVED_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("reserved_enlp"), + PUSH_IPV4_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_enlp"), + PUSH_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv6_enlp"), + PUSH_IPV4_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_ipv6_enlp"), + DO_NOT_PUSH_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("do_not_push_enlp"), +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum { + return BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum(obj.obj.ExplicitNullLabelPolicy.Enum().String()) +} + +// The value of the explicit null label policy +// ExplicitNullLabelPolicy returns a string +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) HasExplicitNullLabelPolicy() bool { + return obj.obj.ExplicitNullLabelPolicy != nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv { + intValue, ok := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum", string(value))) + return obj + } + enumValue := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum(intValue) + obj.obj.ExplicitNullLabelPolicy = &enumValue + + return obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) setDefault() { + if obj.obj.ExplicitNullLabelPolicy == nil { + obj.SetExplicitNullLabelPolicy(BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy.DO_NOT_PUSH_ENLP) + + } + +} + +// ***** BgpSrteSegmentList ***** +type bgpSrteSegmentList struct { + validation + obj *otg.BgpSrteSegmentList + segmentsHolder BgpSrteSegmentListBgpSrteSegmentIter +} + +func NewBgpSrteSegmentList() BgpSrteSegmentList { + obj := bgpSrteSegmentList{obj: &otg.BgpSrteSegmentList{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteSegmentList) Msg() *otg.BgpSrteSegmentList { + return obj.obj +} + +func (obj *bgpSrteSegmentList) SetMsg(msg *otg.BgpSrteSegmentList) BgpSrteSegmentList { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpSrteSegmentList) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpSrteSegmentList) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpSrteSegmentList) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteSegmentList) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpSrteSegmentList) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpSrteSegmentList) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteSegmentList) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteSegmentList) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteSegmentList) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteSegmentList() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpSrteSegmentList) setNil() { + obj.segmentsHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpSrteSegmentList is optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV encodes a single explicit path towards the Endpoint. +type BgpSrteSegmentList interface { + Validation + // Msg marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + // and doesn't set defaults + Msg() *otg.BgpSrteSegmentList + // SetMsg unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + // and doesn't set defaults + SetMsg(*otg.BgpSrteSegmentList) BgpSrteSegmentList + // ToProto marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + ToProto() (*otg.BgpSrteSegmentList, error) + // ToPbText marshals BgpSrteSegmentList to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteSegmentList to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteSegmentList to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) + // FromPbText unmarshals BgpSrteSegmentList from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteSegmentList from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteSegmentList from JSON text + FromJson(value string) error + // Validate validates BgpSrteSegmentList + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteSegmentList, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Weight returns uint32, set in BgpSrteSegmentList. + Weight() uint32 + // SetWeight assigns uint32 provided by user to BgpSrteSegmentList + SetWeight(value uint32) BgpSrteSegmentList + // HasWeight checks if Weight has been set in BgpSrteSegmentList + HasWeight() bool + // Segments returns BgpSrteSegmentListBgpSrteSegmentIterIter, set in BgpSrteSegmentList + Segments() BgpSrteSegmentListBgpSrteSegmentIter + // Name returns string, set in BgpSrteSegmentList. + Name() string + // SetName assigns string provided by user to BgpSrteSegmentList + SetName(value string) BgpSrteSegmentList + // Active returns bool, set in BgpSrteSegmentList. + Active() bool + // SetActive assigns bool provided by user to BgpSrteSegmentList + SetActive(value bool) BgpSrteSegmentList + // HasActive checks if Active has been set in BgpSrteSegmentList + HasActive() bool + setNil() +} + +// The Weight associated with a given path and the sub-TLV is optional. +// Weight returns a uint32 +func (obj *bgpSrteSegmentList) Weight() uint32 { + + return *obj.obj.Weight + +} + +// The Weight associated with a given path and the sub-TLV is optional. +// Weight returns a uint32 +func (obj *bgpSrteSegmentList) HasWeight() bool { + return obj.obj.Weight != nil +} + +// The Weight associated with a given path and the sub-TLV is optional. +// SetWeight sets the uint32 value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetWeight(value uint32) BgpSrteSegmentList { + + obj.obj.Weight = &value + return obj +} + +// description is TBD +// Segments returns a []BgpSrteSegment +func (obj *bgpSrteSegmentList) Segments() BgpSrteSegmentListBgpSrteSegmentIter { + if len(obj.obj.Segments) == 0 { + obj.obj.Segments = []*otg.BgpSrteSegment{} + } + if obj.segmentsHolder == nil { + obj.segmentsHolder = newBgpSrteSegmentListBgpSrteSegmentIter(&obj.obj.Segments).setMsg(obj) + } + return obj.segmentsHolder +} + +type bgpSrteSegmentListBgpSrteSegmentIter struct { + obj *bgpSrteSegmentList + bgpSrteSegmentSlice []BgpSrteSegment + fieldPtr *[]*otg.BgpSrteSegment +} + +func newBgpSrteSegmentListBgpSrteSegmentIter(ptr *[]*otg.BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + return &bgpSrteSegmentListBgpSrteSegmentIter{fieldPtr: ptr} +} + +type BgpSrteSegmentListBgpSrteSegmentIter interface { + setMsg(*bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter + Items() []BgpSrteSegment + Add() BgpSrteSegment + Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter + Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter + Clear() BgpSrteSegmentListBgpSrteSegmentIter + clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter + appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) setMsg(msg *bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpSrteSegment{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Items() []BgpSrteSegment { + return obj.bgpSrteSegmentSlice +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Add() BgpSrteSegment { + newObj := &otg.BgpSrteSegment{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpSrteSegment{obj: newObj} + newLibObj.setDefault() + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, newLibObj) + return newLibObj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) + } + return obj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpSrteSegmentSlice[index] = newObj + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Clear() BgpSrteSegmentListBgpSrteSegmentIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpSrteSegment{} + obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + } + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter { + if len(obj.bgpSrteSegmentSlice) > 0 { + obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + } + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) + return obj +} + +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// Name returns a string +func (obj *bgpSrteSegmentList) Name() string { + + return obj.obj.Name +} + +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// SetName sets the string value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetName(value string) BgpSrteSegmentList { + + obj.obj.Name = value + return obj +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// Active returns a bool +func (obj *bgpSrteSegmentList) Active() bool { + + return *obj.obj.Active + +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// Active returns a bool +func (obj *bgpSrteSegmentList) HasActive() bool { + return obj.obj.Active != nil +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// SetActive sets the bool value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetActive(value bool) BgpSrteSegmentList { + + obj.obj.Active = &value + return obj +} + +func (obj *bgpSrteSegmentList) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.Segments) != 0 { + + if set_default { + obj.Segments().clearHolderSlice() + for _, item := range obj.obj.Segments { + obj.Segments().appendHolderSlice(&bgpSrteSegment{obj: item}) + } + } + for _, item := range obj.Segments().Items() { + item.validateObj(vObj, set_default) + } + + } + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegmentList") + } +} + +func (obj *bgpSrteSegmentList) setDefault() { + if obj.obj.Weight == nil { + obj.SetWeight(0) + } + if obj.obj.Active == nil { + obj.SetActive(true) + } + +} + +// ***** BgpV6EviVxlan ***** +type bgpV6EviVxlan struct { + validation + obj *otg.BgpV6EviVxlan + broadcastDomainsHolder BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + routeDistinguisherHolder BgpRouteDistinguisher + routeTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter + routeTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter + l3RouteTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter + l3RouteTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter + advancedHolder BgpRouteAdvanced + communitiesHolder BgpV6EviVxlanBgpCommunityIter + extCommunitiesHolder BgpV6EviVxlanBgpExtCommunityIter + asPathHolder BgpAsPath +} + +func NewBgpV6EviVxlan() BgpV6EviVxlan { + obj := bgpV6EviVxlan{obj: &otg.BgpV6EviVxlan{}} + obj.setDefault() + return &obj +} + +func (obj *bgpV6EviVxlan) Msg() *otg.BgpV6EviVxlan { + return obj.obj +} + +func (obj *bgpV6EviVxlan) SetMsg(msg *otg.BgpV6EviVxlan) BgpV6EviVxlan { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *bgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *bgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *bgpV6EviVxlan) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *bgpV6EviVxlan) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *bgpV6EviVxlan) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpV6EviVxlan) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *bgpV6EviVxlan) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *bgpV6EviVxlan) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + obj.setNil() + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpV6EviVxlan) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpV6EviVxlan) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpV6EviVxlan) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpV6EviVxlan() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpV6EviVxlan) setNil() { + obj.broadcastDomainsHolder = nil + obj.routeDistinguisherHolder = nil + obj.routeTargetExportHolder = nil + obj.routeTargetImportHolder = nil + obj.l3RouteTargetExportHolder = nil + obj.l3RouteTargetImportHolder = nil + obj.advancedHolder = nil + obj.communitiesHolder = nil + obj.extCommunitiesHolder = nil + obj.asPathHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpV6EviVxlan is configuration for BGP EVPN EVI. Advertises following routes - +// +// # Type 3 - Inclusive Multicast Ethernet Tag Route +// +// Type 1 - Ethernet Auto-discovery Route (Per EVI) +// +// Type 1 - Ethernet Auto-discovery Route (Per ES) +type BgpV6EviVxlan interface { + Validation + // Msg marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + // and doesn't set defaults + Msg() *otg.BgpV6EviVxlan + // SetMsg unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + // and doesn't set defaults + SetMsg(*otg.BgpV6EviVxlan) BgpV6EviVxlan + // ToProto marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + ToProto() (*otg.BgpV6EviVxlan, error) + // ToPbText marshals BgpV6EviVxlan to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpV6EviVxlan to YAML text + ToYaml() (string, error) + // ToJson marshals BgpV6EviVxlan to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) + // FromPbText unmarshals BgpV6EviVxlan from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpV6EviVxlan from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpV6EviVxlan from JSON text + FromJson(value string) error + // Validate validates BgpV6EviVxlan + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpV6EviVxlan, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // BroadcastDomains returns BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIterIter, set in BgpV6EviVxlan + BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + // ReplicationType returns BgpV6EviVxlanReplicationTypeEnum, set in BgpV6EviVxlan + ReplicationType() BgpV6EviVxlanReplicationTypeEnum + // SetReplicationType assigns BgpV6EviVxlanReplicationTypeEnum provided by user to BgpV6EviVxlan + SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan + // HasReplicationType checks if ReplicationType has been set in BgpV6EviVxlan + HasReplicationType() bool + // PmsiLabel returns uint32, set in BgpV6EviVxlan. + PmsiLabel() uint32 + // SetPmsiLabel assigns uint32 provided by user to BgpV6EviVxlan + SetPmsiLabel(value uint32) BgpV6EviVxlan + // HasPmsiLabel checks if PmsiLabel has been set in BgpV6EviVxlan + HasPmsiLabel() bool + // AdLabel returns uint32, set in BgpV6EviVxlan. + AdLabel() uint32 + // SetAdLabel assigns uint32 provided by user to BgpV6EviVxlan + SetAdLabel(value uint32) BgpV6EviVxlan + // HasAdLabel checks if AdLabel has been set in BgpV6EviVxlan + HasAdLabel() bool + // RouteDistinguisher returns BgpRouteDistinguisher, set in BgpV6EviVxlan. + // BgpRouteDistinguisher is bGP Route Distinguisher. + RouteDistinguisher() BgpRouteDistinguisher + // SetRouteDistinguisher assigns BgpRouteDistinguisher provided by user to BgpV6EviVxlan. + // BgpRouteDistinguisher is bGP Route Distinguisher. + SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan + // HasRouteDistinguisher checks if RouteDistinguisher has been set in BgpV6EviVxlan + HasRouteDistinguisher() bool + // RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter + // RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter + // L3RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter + // L3RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter + // Advanced returns BgpRouteAdvanced, set in BgpV6EviVxlan. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + Advanced() BgpRouteAdvanced + // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpV6EviVxlan. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan + // HasAdvanced checks if Advanced has been set in BgpV6EviVxlan + HasAdvanced() bool + // Communities returns BgpV6EviVxlanBgpCommunityIterIter, set in BgpV6EviVxlan + Communities() BgpV6EviVxlanBgpCommunityIter + // ExtCommunities returns BgpV6EviVxlanBgpExtCommunityIterIter, set in BgpV6EviVxlan + ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter + // AsPath returns BgpAsPath, set in BgpV6EviVxlan. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + AsPath() BgpAsPath + // SetAsPath assigns BgpAsPath provided by user to BgpV6EviVxlan. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + SetAsPath(value BgpAsPath) BgpV6EviVxlan + // HasAsPath checks if AsPath has been set in BgpV6EviVxlan + HasAsPath() bool + setNil() +} + +// This contains the list of Broadcast Domains to be configured per EVI. +// BroadcastDomains returns a []BgpV6EviVxlanBroadcastDomain +func (obj *bgpV6EviVxlan) BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(obj.obj.BroadcastDomains) == 0 { + obj.obj.BroadcastDomains = []*otg.BgpV6EviVxlanBroadcastDomain{} + } + if obj.broadcastDomainsHolder == nil { + obj.broadcastDomainsHolder = newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(&obj.obj.BroadcastDomains).setMsg(obj) + } + return obj.broadcastDomainsHolder +} + +type bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter struct { + obj *bgpV6EviVxlan + bgpV6EviVxlanBroadcastDomainSlice []BgpV6EviVxlanBroadcastDomain + fieldPtr *[]*otg.BgpV6EviVxlanBroadcastDomain +} + +func newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(ptr *[]*otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + return &bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Items() []BgpV6EviVxlanBroadcastDomain + Add() BgpV6EviVxlanBroadcastDomain + Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Items() []BgpV6EviVxlanBroadcastDomain { + return obj.bgpV6EviVxlanBroadcastDomainSlice +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Add() BgpV6EviVxlanBroadcastDomain { + newObj := &otg.BgpV6EviVxlanBroadcastDomain{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpV6EviVxlanBroadcastDomain{obj: newObj} + newLibObj.setDefault() + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpV6EviVxlanBroadcastDomainSlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpV6EviVxlanBroadcastDomain{} + obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(obj.bgpV6EviVxlanBroadcastDomainSlice) > 0 { + obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) + return obj +} + +type BgpV6EviVxlanReplicationTypeEnum string + +// Enum of ReplicationType on BgpV6EviVxlan +var BgpV6EviVxlanReplicationType = struct { + INGRESS_REPLICATION BgpV6EviVxlanReplicationTypeEnum +}{ + INGRESS_REPLICATION: BgpV6EviVxlanReplicationTypeEnum("ingress_replication"), +} + +func (obj *bgpV6EviVxlan) ReplicationType() BgpV6EviVxlanReplicationTypeEnum { + return BgpV6EviVxlanReplicationTypeEnum(obj.obj.ReplicationType.Enum().String()) +} + +// This model only supports Ingress Replication +// ReplicationType returns a string +func (obj *bgpV6EviVxlan) HasReplicationType() bool { + return obj.obj.ReplicationType != nil +} + +func (obj *bgpV6EviVxlan) SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan { + intValue, ok := otg.BgpV6EviVxlan_ReplicationType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpV6EviVxlanReplicationTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpV6EviVxlan_ReplicationType_Enum(intValue) + obj.obj.ReplicationType = &enumValue + + return obj +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// PmsiLabel returns a uint32 +func (obj *bgpV6EviVxlan) PmsiLabel() uint32 { + + return *obj.obj.PmsiLabel + +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// PmsiLabel returns a uint32 +func (obj *bgpV6EviVxlan) HasPmsiLabel() bool { + return obj.obj.PmsiLabel != nil +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// SetPmsiLabel sets the uint32 value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetPmsiLabel(value uint32) BgpV6EviVxlan { + + obj.obj.PmsiLabel = &value + return obj +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// AdLabel returns a uint32 +func (obj *bgpV6EviVxlan) AdLabel() uint32 { + + return *obj.obj.AdLabel + +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// AdLabel returns a uint32 +func (obj *bgpV6EviVxlan) HasAdLabel() bool { + return obj.obj.AdLabel != nil +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// SetAdLabel sets the uint32 value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAdLabel(value uint32) BgpV6EviVxlan { + + obj.obj.AdLabel = &value + return obj +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// RouteDistinguisher returns a BgpRouteDistinguisher +func (obj *bgpV6EviVxlan) RouteDistinguisher() BgpRouteDistinguisher { + if obj.obj.RouteDistinguisher == nil { + obj.obj.RouteDistinguisher = NewBgpRouteDistinguisher().Msg() + } + if obj.routeDistinguisherHolder == nil { + obj.routeDistinguisherHolder = &bgpRouteDistinguisher{obj: obj.obj.RouteDistinguisher} + } + return obj.routeDistinguisherHolder +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// RouteDistinguisher returns a BgpRouteDistinguisher +func (obj *bgpV6EviVxlan) HasRouteDistinguisher() bool { + return obj.obj.RouteDistinguisher != nil +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// SetRouteDistinguisher sets the BgpRouteDistinguisher value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan { + + obj.routeDistinguisherHolder = nil + obj.obj.RouteDistinguisher = value.Msg() + + return obj +} + +// List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with this EVI. +// RouteTargetExport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.RouteTargetExport) == 0 { + obj.obj.RouteTargetExport = []*otg.BgpRouteTarget{} + } + if obj.routeTargetExportHolder == nil { + obj.routeTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetExport).setMsg(obj) + } + return obj.routeTargetExportHolder +} + +type bgpV6EviVxlanBgpRouteTargetIter struct { + obj *bgpV6EviVxlan + bgpRouteTargetSlice []BgpRouteTarget + fieldPtr *[]*otg.BgpRouteTarget +} + +func newBgpV6EviVxlanBgpRouteTargetIter(ptr *[]*otg.BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + return &bgpV6EviVxlanBgpRouteTargetIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpRouteTargetIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter + Items() []BgpRouteTarget + Add() BgpRouteTarget + Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter + Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter + Clear() BgpV6EviVxlanBgpRouteTargetIter + clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter + appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpRouteTarget{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Items() []BgpRouteTarget { + return obj.bgpRouteTargetSlice +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Add() BgpRouteTarget { + newObj := &otg.BgpRouteTarget{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpRouteTarget{obj: newObj} + newLibObj.setDefault() + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpRouteTargetSlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Clear() BgpV6EviVxlanBgpRouteTargetIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpRouteTarget{} + obj.bgpRouteTargetSlice = []BgpRouteTarget{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.bgpRouteTargetSlice) > 0 { + obj.bgpRouteTargetSlice = []BgpRouteTarget{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + return obj +} + +// List of L2VNI import targets associated with this EVI. +// RouteTargetImport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.RouteTargetImport) == 0 { + obj.obj.RouteTargetImport = []*otg.BgpRouteTarget{} + } + if obj.routeTargetImportHolder == nil { + obj.routeTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetImport).setMsg(obj) + } + return obj.routeTargetImportHolder +} + +// List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. +// L3RouteTargetExport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.L3RouteTargetExport) == 0 { + obj.obj.L3RouteTargetExport = []*otg.BgpRouteTarget{} + } + if obj.l3RouteTargetExportHolder == nil { + obj.l3RouteTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetExport).setMsg(obj) + } + return obj.l3RouteTargetExportHolder +} + +// List of L3VNI Import Route Targets. +// L3RouteTargetImport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.L3RouteTargetImport) == 0 { + obj.obj.L3RouteTargetImport = []*otg.BgpRouteTarget{} + } + if obj.l3RouteTargetImportHolder == nil { + obj.l3RouteTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetImport).setMsg(obj) + } + return obj.l3RouteTargetImportHolder +} + +// description is TBD +// Advanced returns a BgpRouteAdvanced +func (obj *bgpV6EviVxlan) Advanced() BgpRouteAdvanced { + if obj.obj.Advanced == nil { + obj.obj.Advanced = NewBgpRouteAdvanced().Msg() + } + if obj.advancedHolder == nil { + obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} + } + return obj.advancedHolder +} + +// description is TBD +// Advanced returns a BgpRouteAdvanced +func (obj *bgpV6EviVxlan) HasAdvanced() bool { + return obj.obj.Advanced != nil +} + +// description is TBD +// SetAdvanced sets the BgpRouteAdvanced value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan { + + obj.advancedHolder = nil + obj.obj.Advanced = value.Msg() + + return obj +} + +// Optional community settings. +// Communities returns a []BgpCommunity +func (obj *bgpV6EviVxlan) Communities() BgpV6EviVxlanBgpCommunityIter { + if len(obj.obj.Communities) == 0 { + obj.obj.Communities = []*otg.BgpCommunity{} + } + if obj.communitiesHolder == nil { + obj.communitiesHolder = newBgpV6EviVxlanBgpCommunityIter(&obj.obj.Communities).setMsg(obj) + } + return obj.communitiesHolder +} + +type bgpV6EviVxlanBgpCommunityIter struct { + obj *bgpV6EviVxlan + bgpCommunitySlice []BgpCommunity + fieldPtr *[]*otg.BgpCommunity +} + +func newBgpV6EviVxlanBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + return &bgpV6EviVxlanBgpCommunityIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpCommunityIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter + Items() []BgpCommunity + Add() BgpCommunity + Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter + Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter + Clear() BgpV6EviVxlanBgpCommunityIter + clearHolderSlice() BgpV6EviVxlanBgpCommunityIter + appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Items() []BgpCommunity { + return obj.bgpCommunitySlice +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Add() BgpCommunity { + newObj := &otg.BgpCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) Clear() BgpV6EviVxlanBgpCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCommunity{} + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpCommunityIter { + if len(obj.bgpCommunitySlice) > 0 { + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + return obj +} + +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. +// ExtCommunities returns a []BgpExtCommunity +func (obj *bgpV6EviVxlan) ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter { + if len(obj.obj.ExtCommunities) == 0 { + obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} + } + if obj.extCommunitiesHolder == nil { + obj.extCommunitiesHolder = newBgpV6EviVxlanBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + } + return obj.extCommunitiesHolder +} + +type bgpV6EviVxlanBgpExtCommunityIter struct { + obj *bgpV6EviVxlan + bgpExtCommunitySlice []BgpExtCommunity + fieldPtr *[]*otg.BgpExtCommunity +} + +func newBgpV6EviVxlanBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + return &bgpV6EviVxlanBgpExtCommunityIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpExtCommunityIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter + Items() []BgpExtCommunity + Add() BgpExtCommunity + Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter + Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter + Clear() BgpV6EviVxlanBgpExtCommunityIter + clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter + appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Items() []BgpExtCommunity { + return obj.bgpExtCommunitySlice +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Add() BgpExtCommunity { + newObj := &otg.BgpExtCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpExtCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Clear() BgpV6EviVxlanBgpExtCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtCommunity{} + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter { + if len(obj.bgpExtCommunitySlice) > 0 { + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + return obj +} + +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpV6EviVxlan) AsPath() BgpAsPath { + if obj.obj.AsPath == nil { + obj.obj.AsPath = NewBgpAsPath().Msg() + } + if obj.asPathHolder == nil { + obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} + } + return obj.asPathHolder +} + +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpV6EviVxlan) HasAsPath() bool { + return obj.obj.AsPath != nil +} + +// Optional AS PATH settings. +// SetAsPath sets the BgpAsPath value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAsPath(value BgpAsPath) BgpV6EviVxlan { + + obj.asPathHolder = nil + obj.obj.AsPath = value.Msg() + + return obj +} + +func (obj *bgpV6EviVxlan) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.BroadcastDomains) != 0 { + + if set_default { + obj.BroadcastDomains().clearHolderSlice() + for _, item := range obj.obj.BroadcastDomains { + obj.BroadcastDomains().appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: item}) + } + } + for _, item := range obj.BroadcastDomains().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.PmsiLabel != nil { + + if *obj.obj.PmsiLabel > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpV6EviVxlan.PmsiLabel <= 16777215 but Got %d", *obj.obj.PmsiLabel)) + } + + } + + if obj.obj.AdLabel != nil { + + if *obj.obj.AdLabel > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpV6EviVxlan.AdLabel <= 16777215 but Got %d", *obj.obj.AdLabel)) + } + + } + + if obj.obj.RouteDistinguisher != nil { + + obj.RouteDistinguisher().validateObj(vObj, set_default) + } + + if len(obj.obj.RouteTargetExport) != 0 { + + if set_default { + obj.RouteTargetExport().clearHolderSlice() + for _, item := range obj.obj.RouteTargetExport { + obj.RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.RouteTargetExport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.RouteTargetImport) != 0 { + + if set_default { + obj.RouteTargetImport().clearHolderSlice() + for _, item := range obj.obj.RouteTargetImport { + obj.RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.RouteTargetImport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.L3RouteTargetExport) != 0 { + + if set_default { + obj.L3RouteTargetExport().clearHolderSlice() + for _, item := range obj.obj.L3RouteTargetExport { + obj.L3RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.L3RouteTargetExport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.L3RouteTargetImport) != 0 { + + if set_default { + obj.L3RouteTargetImport().clearHolderSlice() + for _, item := range obj.obj.L3RouteTargetImport { + obj.L3RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.L3RouteTargetImport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.Advanced != nil { + + obj.Advanced().validateObj(vObj, set_default) + } + + if len(obj.obj.Communities) != 0 { + + if set_default { + obj.Communities().clearHolderSlice() + for _, item := range obj.obj.Communities { + obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) + } + } + for _, item := range obj.Communities().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.ExtCommunities) != 0 { + + if set_default { + obj.ExtCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtCommunities { + obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) + } + } + for _, item := range obj.ExtCommunities().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.AsPath != nil { + + obj.AsPath().validateObj(vObj, set_default) + } + +} + +func (obj *bgpV6EviVxlan) setDefault() { + if obj.obj.ReplicationType == nil { + obj.SetReplicationType(BgpV6EviVxlanReplicationType.INGRESS_REPLICATION) + + } + if obj.obj.PmsiLabel == nil { + obj.SetPmsiLabel(16) + } + if obj.obj.AdLabel == nil { + obj.SetAdLabel(0) + } + +} + +// ***** VxlanTunnelDestinationIPModeUnicastArpSuppressionCache ***** +type vxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { + validation + obj *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache +} + +func NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + obj := vxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: &otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{}} + obj.setDefault() + return &obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + return obj.obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetMsg(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// VxlanTunnelDestinationIPModeUnicastArpSuppressionCache is each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request for another end-host IP address, its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table. If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host. +type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { + Validation + // Msg marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // and doesn't set defaults + Msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // SetMsg unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // and doesn't set defaults + SetMsg(*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // ToProto marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + // ToPbText marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf text + ToPbText() (string, error) + // ToYaml marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to YAML text + ToYaml() (string, error) + // ToJson marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to JSON text + ToJson() (string, error) + // FromProto unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + // FromPbText unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf text + FromPbText(value string) error + // FromYaml unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from YAML text + FromYaml(value string) error + // FromJson unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from JSON text + FromJson(value string) error + // Validate validates VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // RemoteVmMac returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. + RemoteVmMac() string + // SetRemoteVmMac assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // HasRemoteVmMac checks if RemoteVmMac has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + HasRemoteVmMac() bool + // RemoteVmIpv4 returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. + RemoteVmIpv4() string + // SetRemoteVmIpv4 assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // HasRemoteVmIpv4 checks if RemoteVmIpv4 has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + HasRemoteVmIpv4() bool +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// RemoteVmMac returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmMac() string { + + return *obj.obj.RemoteVmMac + +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// RemoteVmMac returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmMac() bool { + return obj.obj.RemoteVmMac != nil +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// SetRemoteVmMac sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + obj.obj.RemoteVmMac = &value + return obj +} + +// Remote VM IPv4 address +// RemoteVmIpv4 returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmIpv4() string { + + return *obj.obj.RemoteVmIpv4 + +} + +// Remote VM IPv4 address +// RemoteVmIpv4 returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmIpv4() bool { + return obj.obj.RemoteVmIpv4 != nil +} + +// Remote VM IPv4 address +// SetRemoteVmIpv4 sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + obj.obj.RemoteVmIpv4 = &value + return obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RemoteVmMac != nil { + + err := obj.validateMac(obj.RemoteVmMac()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmMac")) + } + + } + + if obj.obj.RemoteVmIpv4 != nil { + + err := obj.validateIpv4(obj.RemoteVmIpv4()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmIpv4")) + } + + } + +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) setDefault() { + +} + +// ***** PatternFlowIpv4TosPrecedenceCounter ***** +type patternFlowIpv4TosPrecedenceCounter struct { + validation + obj *otg.PatternFlowIpv4TosPrecedenceCounter +} + +func NewPatternFlowIpv4TosPrecedenceCounter() PatternFlowIpv4TosPrecedenceCounter { + obj := patternFlowIpv4TosPrecedenceCounter{obj: &otg.PatternFlowIpv4TosPrecedenceCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Msg() *otg.PatternFlowIpv4TosPrecedenceCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) SetMsg(msg *otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrecedenceCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosPrecedenceCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosPrecedenceCounter is integer counter pattern +type PatternFlowIpv4TosPrecedenceCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosPrecedenceCounter + // SetMsg unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter + // ToProto marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) + // ToPbText marshals PatternFlowIpv4TosPrecedenceCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosPrecedenceCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosPrecedenceCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosPrecedenceCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosPrecedenceCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosPrecedenceCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosPrecedenceCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosPrecedenceCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosPrecedenceCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosPrecedenceCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Start <= 7 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Step <= 7 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Count <= 7 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosPrecedenceMetricTag ***** +type patternFlowIpv4TosPrecedenceMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosPrecedenceMetricTag +} + +func NewPatternFlowIpv4TosPrecedenceMetricTag() PatternFlowIpv4TosPrecedenceMetricTag { + obj := patternFlowIpv4TosPrecedenceMetricTag{obj: &otg.PatternFlowIpv4TosPrecedenceMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosPrecedenceMetricTag() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosPrecedenceMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosPrecedenceMetricTag interface { + Validation + // Msg marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag + // SetMsg unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag + // ToProto marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosPrecedenceMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosPrecedenceMetricTag to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosPrecedenceMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosPrecedenceMetricTag from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosPrecedenceMetricTag + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosPrecedenceMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosPrecedenceMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosPrecedenceMetricTag + HasLength() bool +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Name() string { + + return obj.obj.Name +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag { + + obj.obj.Name = value + return obj +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() uint32 { + + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { + + obj.obj.Offset = &value + return obj +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosPrecedenceMetricTag") + } + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceMetricTag.Offset <= 2 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosPrecedenceMetricTag.Length <= 3 but Got %d", *obj.obj.Length)) + } + + } + +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(3) + } + +} + +// ***** PatternFlowIpv4TosDelayCounter ***** +type patternFlowIpv4TosDelayCounter struct { + validation + obj *otg.PatternFlowIpv4TosDelayCounter +} + +func NewPatternFlowIpv4TosDelayCounter() PatternFlowIpv4TosDelayCounter { + obj := patternFlowIpv4TosDelayCounter{obj: &otg.PatternFlowIpv4TosDelayCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosDelayCounter) Msg() *otg.PatternFlowIpv4TosDelayCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosDelayCounter) SetMsg(msg *otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosDelayCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosDelayCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosDelayCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosDelayCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosDelayCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosDelayCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosDelayCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosDelayCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosDelayCounter is integer counter pattern +type PatternFlowIpv4TosDelayCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosDelayCounter + // SetMsg unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter + // ToProto marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) + // ToPbText marshals PatternFlowIpv4TosDelayCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosDelayCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosDelayCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosDelayCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosDelayCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosDelayCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosDelayCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosDelayCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosDelayCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetStart(value uint32) PatternFlowIpv4TosDelayCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosDelayCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosDelayCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetStep(value uint32) PatternFlowIpv4TosDelayCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosDelayCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosDelayCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetCount(value uint32) PatternFlowIpv4TosDelayCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosDelayCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetStart(value uint32) PatternFlowIpv4TosDelayCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetStep(value uint32) PatternFlowIpv4TosDelayCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetCount(value uint32) PatternFlowIpv4TosDelayCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosDelayCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosDelayCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosDelayMetricTag ***** +type patternFlowIpv4TosDelayMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosDelayMetricTag +} + +func NewPatternFlowIpv4TosDelayMetricTag() PatternFlowIpv4TosDelayMetricTag { + obj := patternFlowIpv4TosDelayMetricTag{obj: &otg.PatternFlowIpv4TosDelayMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) Msg() *otg.PatternFlowIpv4TosDelayMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosDelayMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayMetricTag) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayMetricTag) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMetricTag, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosDelayMetricTag() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosDelayMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosDelayMetricTag interface { + Validation + // Msg marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosDelayMetricTag + // SetMsg unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag + // ToProto marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosDelayMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosDelayMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosDelayMetricTag to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosDelayMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosDelayMetricTag from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosDelayMetricTag + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosDelayMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosDelayMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosDelayMetricTag + SetName(value string) PatternFlowIpv4TosDelayMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag + SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosDelayMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag + SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosDelayMetricTag + HasLength() bool +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosDelayMetricTag) Name() string { + + return obj.obj.Name +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIpv4TosDelayMetricTag { + + obj.obj.Name = value + return obj +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) Offset() uint32 { + + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag { + + obj.obj.Offset = &value + return obj +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosDelayMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosDelayMetricTag") + } + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosDelayMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + } + + } + +} + +func (obj *patternFlowIpv4TosDelayMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } + +} + +// ***** PatternFlowIpv4TosThroughputCounter ***** +type patternFlowIpv4TosThroughputCounter struct { + validation + obj *otg.PatternFlowIpv4TosThroughputCounter +} + +func NewPatternFlowIpv4TosThroughputCounter() PatternFlowIpv4TosThroughputCounter { + obj := patternFlowIpv4TosThroughputCounter{obj: &otg.PatternFlowIpv4TosThroughputCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosThroughputCounter) Msg() *otg.PatternFlowIpv4TosThroughputCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosThroughputCounter) SetMsg(msg *otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosThroughputCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosThroughputCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosThroughputCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThroughputCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosThroughputCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosThroughputCounter is integer counter pattern +type PatternFlowIpv4TosThroughputCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosThroughputCounter + // SetMsg unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter + // ToProto marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter + ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) + // ToPbText marshals PatternFlowIpv4TosThroughputCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosThroughputCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosThroughputCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter + FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosThroughputCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosThroughputCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosThroughputCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosThroughputCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosThroughputCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetStart(value uint32) PatternFlowIpv4TosThroughputCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosThroughputCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetStep(value uint32) PatternFlowIpv4TosThroughputCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosThroughputCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetCount(value uint32) PatternFlowIpv4TosThroughputCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosThroughputCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetStart(value uint32) PatternFlowIpv4TosThroughputCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetStep(value uint32) PatternFlowIpv4TosThroughputCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetCount(value uint32) PatternFlowIpv4TosThroughputCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosThroughputCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosThroughputCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosThroughputMetricTag ***** +type patternFlowIpv4TosThroughputMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosThroughputMetricTag +} + +func NewPatternFlowIpv4TosThroughputMetricTag() PatternFlowIpv4TosThroughputMetricTag { + obj := patternFlowIpv4TosThroughputMetricTag{obj: &otg.PatternFlowIpv4TosThroughputMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) Msg() *otg.PatternFlowIpv4TosThroughputMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThroughputMetricTag, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosThroughputMetricTag() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosThroughputMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosThroughputMetricTag interface { + Validation + // Msg marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosThroughputMetricTag + // SetMsg unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag + // ToProto marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosThroughputMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosThroughputMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosThroughputMetricTag to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosThroughputMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosThroughputMetricTag from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosThroughputMetricTag + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosThroughputMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosThroughputMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosThroughputMetricTag + SetName(value string) PatternFlowIpv4TosThroughputMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag + SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosThroughputMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag + SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosThroughputMetricTag + HasLength() bool +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosThroughputMetricTag) Name() string { + + return obj.obj.Name +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternFlowIpv4TosThroughputMetricTag { + + obj.obj.Name = value + return obj +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() uint32 { + + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag { + + obj.obj.Offset = &value + return obj +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosThroughputMetricTag") + } + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosThroughputMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + } + + } + +} + +func (obj *patternFlowIpv4TosThroughputMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } + +} + +// ***** PatternFlowIpv4TosReliabilityCounter ***** +type patternFlowIpv4TosReliabilityCounter struct { + validation + obj *otg.PatternFlowIpv4TosReliabilityCounter +} + +func NewPatternFlowIpv4TosReliabilityCounter() PatternFlowIpv4TosReliabilityCounter { + obj := patternFlowIpv4TosReliabilityCounter{obj: &otg.PatternFlowIpv4TosReliabilityCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) Msg() *otg.PatternFlowIpv4TosReliabilityCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) SetMsg(msg *otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosReliabilityCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosReliabilityCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosReliabilityCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReliabilityCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosReliabilityCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosReliabilityCounter is integer counter pattern +type PatternFlowIpv4TosReliabilityCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosReliabilityCounter + // SetMsg unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter + // ToProto marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) + // ToPbText marshals PatternFlowIpv4TosReliabilityCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosReliabilityCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosReliabilityCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosReliabilityCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosReliabilityCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosReliabilityCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosReliabilityCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosReliabilityCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosReliabilityCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosReliabilityCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosReliabilityCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosReliabilityCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosReliabilityMetricTag ***** +type patternFlowIpv4TosReliabilityMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosReliabilityMetricTag +} + +func NewPatternFlowIpv4TosReliabilityMetricTag() PatternFlowIpv4TosReliabilityMetricTag { + obj := patternFlowIpv4TosReliabilityMetricTag{obj: &otg.PatternFlowIpv4TosReliabilityMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) Msg() *otg.PatternFlowIpv4TosReliabilityMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err + } + return obj.Msg(), nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosReliabilityMetricTag() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosReliabilityMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosReliabilityMetricTag interface { + Validation + // Msg marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosReliabilityMetricTag + // SetMsg unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag + // ToProto marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosReliabilityMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosReliabilityMetricTag to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosReliabilityMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosReliabilityMetricTag from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosReliabilityMetricTag + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosReliabilityMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetName(value string) PatternFlowIpv4TosReliabilityMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosReliabilityMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosReliabilityMetricTag + HasLength() bool } -func (obj *bgpV6EviVxlan) ReplicationType() BgpV6EviVxlanReplicationTypeEnum { - return BgpV6EviVxlanReplicationTypeEnum(obj.obj.ReplicationType.Enum().String()) -} +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosReliabilityMetricTag) Name() string { -// This model only supports Ingress Replication -// ReplicationType returns a string -func (obj *bgpV6EviVxlan) HasReplicationType() bool { - return obj.obj.ReplicationType != nil + return obj.obj.Name } -func (obj *bgpV6EviVxlan) SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan { - intValue, ok := otg.BgpV6EviVxlan_ReplicationType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpV6EviVxlanReplicationTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpV6EviVxlan_ReplicationType_Enum(intValue) - obj.obj.ReplicationType = &enumValue +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) PatternFlowIpv4TosReliabilityMetricTag { + obj.obj.Name = value return obj } -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// PmsiLabel returns a uint32 -func (obj *bgpV6EviVxlan) PmsiLabel() uint32 { +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) Offset() uint32 { - return *obj.obj.PmsiLabel + return *obj.obj.Offset } -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// PmsiLabel returns a uint32 -func (obj *bgpV6EviVxlan) HasPmsiLabel() bool { - return obj.obj.PmsiLabel != nil +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) HasOffset() bool { + return obj.obj.Offset != nil } -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// SetPmsiLabel sets the uint32 value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetPmsiLabel(value uint32) BgpV6EviVxlan { +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag { - obj.obj.PmsiLabel = &value + obj.obj.Offset = &value return obj } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// AdLabel returns a uint32 -func (obj *bgpV6EviVxlan) AdLabel() uint32 { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) Length() uint32 { - return *obj.obj.AdLabel + return *obj.obj.Length } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// AdLabel returns a uint32 -func (obj *bgpV6EviVxlan) HasAdLabel() bool { - return obj.obj.AdLabel != nil +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) HasLength() bool { + return obj.obj.Length != nil } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// SetAdLabel sets the uint32 value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAdLabel(value uint32) BgpV6EviVxlan { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag { - obj.obj.AdLabel = &value + obj.obj.Length = &value return obj } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// RouteDistinguisher returns a BgpRouteDistinguisher -func (obj *bgpV6EviVxlan) RouteDistinguisher() BgpRouteDistinguisher { - if obj.obj.RouteDistinguisher == nil { - obj.obj.RouteDistinguisher = NewBgpRouteDistinguisher().Msg() +func (obj *patternFlowIpv4TosReliabilityMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - if obj.routeDistinguisherHolder == nil { - obj.routeDistinguisherHolder = &bgpRouteDistinguisher{obj: obj.obj.RouteDistinguisher} + + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosReliabilityMetricTag") } - return obj.routeDistinguisherHolder -} -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// RouteDistinguisher returns a BgpRouteDistinguisher -func (obj *bgpV6EviVxlan) HasRouteDistinguisher() bool { - return obj.obj.RouteDistinguisher != nil -} + if obj.obj.Offset != nil { -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// SetRouteDistinguisher sets the BgpRouteDistinguisher value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan { + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } - obj.routeDistinguisherHolder = nil - obj.obj.RouteDistinguisher = value.Msg() + } - return obj -} + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosReliabilityMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + } -// List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with this EVI. -// RouteTargetExport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.RouteTargetExport) == 0 { - obj.obj.RouteTargetExport = []*otg.BgpRouteTarget{} - } - if obj.routeTargetExportHolder == nil { - obj.routeTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetExport).setMsg(obj) } - return obj.routeTargetExportHolder -} -type bgpV6EviVxlanBgpRouteTargetIter struct { - obj *bgpV6EviVxlan - bgpRouteTargetSlice []BgpRouteTarget - fieldPtr *[]*otg.BgpRouteTarget } -func newBgpV6EviVxlanBgpRouteTargetIter(ptr *[]*otg.BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - return &bgpV6EviVxlanBgpRouteTargetIter{fieldPtr: ptr} -} +func (obj *patternFlowIpv4TosReliabilityMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } -type BgpV6EviVxlanBgpRouteTargetIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter - Items() []BgpRouteTarget - Add() BgpRouteTarget - Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter - Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter - Clear() BgpV6EviVxlanBgpRouteTargetIter - clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter - appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpRouteTarget{obj: val}) - } - obj.obj = msg - return obj +// ***** PatternFlowIpv4TosMonetaryCounter ***** +type patternFlowIpv4TosMonetaryCounter struct { + validation + obj *otg.PatternFlowIpv4TosMonetaryCounter } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Items() []BgpRouteTarget { - return obj.bgpRouteTargetSlice +func NewPatternFlowIpv4TosMonetaryCounter() PatternFlowIpv4TosMonetaryCounter { + obj := patternFlowIpv4TosMonetaryCounter{obj: &otg.PatternFlowIpv4TosMonetaryCounter{}} + obj.setDefault() + return &obj } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Add() BgpRouteTarget { - newObj := &otg.BgpRouteTarget{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpRouteTarget{obj: newObj} - newLibObj.setDefault() - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, newLibObj) - return newLibObj +func (obj *patternFlowIpv4TosMonetaryCounter) Msg() *otg.PatternFlowIpv4TosMonetaryCounter { + return obj.obj } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) - } - return obj -} +func (obj *patternFlowIpv4TosMonetaryCounter) SetMsg(msg *otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter { -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpRouteTargetSlice[index] = newObj + proto.Merge(obj.obj, msg) return obj } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Clear() BgpV6EviVxlanBgpRouteTargetIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpRouteTarget{} - obj.bgpRouteTargetSlice = []BgpRouteTarget{} + +func (obj *patternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) { + err := obj.validateToAndFrom() + if err != nil { + return nil, err } - return obj + return obj.Msg(), nil } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.bgpRouteTargetSlice) > 0 { - obj.bgpRouteTargetSlice = []BgpRouteTarget{} + +func (obj *patternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) { + newObj := obj.SetMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err } - return obj -} -func (obj *bgpV6EviVxlanBgpRouteTargetIter) appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) - return obj + return newObj, nil } -// List of L2VNI import targets associated with this EVI. -// RouteTargetImport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.RouteTargetImport) == 0 { - obj.obj.RouteTargetImport = []*otg.BgpRouteTarget{} +func (obj *patternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr } - if obj.routeTargetImportHolder == nil { - obj.routeTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetImport).setMsg(obj) + protoMarshal, err := proto.Marshal(obj.Msg()) + if err != nil { + return "", err } - return obj.routeTargetImportHolder + return string(protoMarshal), nil } -// List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. -// L3RouteTargetExport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.L3RouteTargetExport) == 0 { - obj.obj.L3RouteTargetExport = []*otg.BgpRouteTarget{} +func (obj *patternFlowIpv4TosMonetaryCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), obj.Msg()) + if retObj != nil { + return retObj } - if obj.l3RouteTargetExportHolder == nil { - obj.l3RouteTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetExport).setMsg(obj) + + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr } - return obj.l3RouteTargetExportHolder + return retObj } -// List of L3VNI Import Route Targets. -// L3RouteTargetImport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.L3RouteTargetImport) == 0 { - obj.obj.L3RouteTargetImport = []*otg.BgpRouteTarget{} +func (obj *patternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr } - if obj.l3RouteTargetImportHolder == nil { - obj.l3RouteTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetImport).setMsg(obj) + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, } - return obj.l3RouteTargetImportHolder -} - -// description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpV6EviVxlan) Advanced() BgpRouteAdvanced { - if obj.obj.Advanced == nil { - obj.obj.Advanced = NewBgpRouteAdvanced().Msg() + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err } - if obj.advancedHolder == nil { - obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err } - return obj.advancedHolder -} - -// description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpV6EviVxlan) HasAdvanced() bool { - return obj.obj.Advanced != nil -} - -// description is TBD -// SetAdvanced sets the BgpRouteAdvanced value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan { - - obj.advancedHolder = nil - obj.obj.Advanced = value.Msg() - - return obj + return string(data), nil } -// Optional community settings. -// Communities returns a []BgpCommunity -func (obj *bgpV6EviVxlan) Communities() BgpV6EviVxlanBgpCommunityIter { - if len(obj.obj.Communities) == 0 { - obj.obj.Communities = []*otg.BgpCommunity{} +func (obj *patternFlowIpv4TosMonetaryCounter) FromYaml(value string) error { + if value == "" { + value = "{}" } - if obj.communitiesHolder == nil { - obj.communitiesHolder = newBgpV6EviVxlanBgpCommunityIter(&obj.obj.Communities).setMsg(obj) + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) } - return obj.communitiesHolder -} -type bgpV6EviVxlanBgpCommunityIter struct { - obj *bgpV6EviVxlan - bgpCommunitySlice []BgpCommunity - fieldPtr *[]*otg.BgpCommunity + vErr := obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil } -func newBgpV6EviVxlanBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - return &bgpV6EviVxlanBgpCommunityIter{fieldPtr: ptr} +func (obj *patternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { + vErr := obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(obj.Msg()) + if err != nil { + return "", err + } + return string(data), nil } -type BgpV6EviVxlanBgpCommunityIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter - Items() []BgpCommunity - Add() BgpCommunity - Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter - Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter - Clear() BgpV6EviVxlanBgpCommunityIter - clearHolderSlice() BgpV6EviVxlanBgpCommunityIter - appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter -} +func (obj *patternFlowIpv4TosMonetaryCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), obj.Msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } -func (obj *bgpV6EviVxlanBgpCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCommunity{obj: val}) + err := obj.validateToAndFrom() + if err != nil { + return err } - obj.obj = msg - return obj + return nil } -func (obj *bgpV6EviVxlanBgpCommunityIter) Items() []BgpCommunity { - return obj.bgpCommunitySlice +func (obj *patternFlowIpv4TosMonetaryCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() } -func (obj *bgpV6EviVxlanBgpCommunityIter) Add() BgpCommunity { - newObj := &otg.BgpCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) - return newLibObj +func (obj *patternFlowIpv4TosMonetaryCounter) Validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() } -func (obj *bgpV6EviVxlanBgpCommunityIter) Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) +func (obj *patternFlowIpv4TosMonetaryCounter) String() string { + str, err := obj.ToYaml() + if err != nil { + return err.Error() } - return obj + return str } -func (obj *bgpV6EviVxlanBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpCommunitySlice[index] = newObj - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) Clear() BgpV6EviVxlanBgpCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCommunity{} - obj.bgpCommunitySlice = []BgpCommunity{} - } - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpCommunityIter { - if len(obj.bgpCommunitySlice) > 0 { - obj.bgpCommunitySlice = []BgpCommunity{} +func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetaryCounter, error) { + vErr := obj.Validate() + if vErr != nil { + return nil, vErr } - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) - return obj -} - -// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. -// ExtCommunities returns a []BgpExtCommunity -func (obj *bgpV6EviVxlan) ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter { - if len(obj.obj.ExtCommunities) == 0 { - obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} + newObj := NewPatternFlowIpv4TosMonetaryCounter() + data, err := proto.Marshal(obj.Msg()) + if err != nil { + return nil, err } - if obj.extCommunitiesHolder == nil { - obj.extCommunitiesHolder = newBgpV6EviVxlanBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr } - return obj.extCommunitiesHolder + return newObj, nil } -type bgpV6EviVxlanBgpExtCommunityIter struct { - obj *bgpV6EviVxlan - bgpExtCommunitySlice []BgpExtCommunity - fieldPtr *[]*otg.BgpExtCommunity +// PatternFlowIpv4TosMonetaryCounter is integer counter pattern +type PatternFlowIpv4TosMonetaryCounter interface { + Validation + // Msg marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // and doesn't set defaults + Msg() *otg.PatternFlowIpv4TosMonetaryCounter + // SetMsg unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // and doesn't set defaults + SetMsg(*otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter + // ToProto marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) + // ToPbText marshals PatternFlowIpv4TosMonetaryCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosMonetaryCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosMonetaryCounter to JSON text + ToJson() (string, error) + // FromProto unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosMonetaryCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosMonetaryCounter from JSON text + FromJson(value string) error + // Validate validates PatternFlowIpv4TosMonetaryCounter + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosMonetaryCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosMonetaryCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosMonetaryCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosMonetaryCounter + HasCount() bool } -func newBgpV6EviVxlanBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - return &bgpV6EviVxlanBgpExtCommunityIter{fieldPtr: ptr} -} +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Start() uint32 { -type BgpV6EviVxlanBgpExtCommunityIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter - Items() []BgpExtCommunity - Add() BgpExtCommunity - Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter - Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter - Clear() BgpV6EviVxlanBgpExtCommunityIter - clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter - appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter -} + return *obj.obj.Start -func (obj *bgpV6EviVxlanBgpExtCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpExtCommunity{obj: val}) - } - obj.obj = msg - return obj } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Items() []BgpExtCommunity { - return obj.bgpExtCommunitySlice +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasStart() bool { + return obj.obj.Start != nil } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Add() BgpExtCommunity { - newObj := &otg.BgpExtCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpExtCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) - return newLibObj -} +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter { -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) - } + obj.obj.Start = &value return obj } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpExtCommunitySlice[index] = newObj - return obj -} -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Clear() BgpV6EviVxlanBgpExtCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpExtCommunity{} - obj.bgpExtCommunitySlice = []BgpExtCommunity{} - } - return obj +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Step() uint32 { + + return *obj.obj.Step + } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter { - if len(obj.bgpExtCommunitySlice) > 0 { - obj.bgpExtCommunitySlice = []BgpExtCommunity{} - } - return obj + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasStep() bool { + return obj.obj.Step != nil } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter { + + obj.obj.Step = &value return obj } -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpV6EviVxlan) AsPath() BgpAsPath { - if obj.obj.AsPath == nil { - obj.obj.AsPath = NewBgpAsPath().Msg() - } - if obj.asPathHolder == nil { - obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} - } - return obj.asPathHolder -} +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Count() uint32 { + + return *obj.obj.Count -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpV6EviVxlan) HasAsPath() bool { - return obj.obj.AsPath != nil } -// Optional AS PATH settings. -// SetAsPath sets the BgpAsPath value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAsPath(value BgpAsPath) BgpV6EviVxlan { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasCount() bool { + return obj.obj.Count != nil +} - obj.asPathHolder = nil - obj.obj.AsPath = value.Msg() +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter { + obj.obj.Count = &value return obj } -func (obj *bgpV6EviVxlan) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosMonetaryCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.BroadcastDomains) != 0 { - - if set_default { - obj.BroadcastDomains().clearHolderSlice() - for _, item := range obj.obj.BroadcastDomains { - obj.BroadcastDomains().appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: item}) - } - } - for _, item := range obj.BroadcastDomains().Items() { - item.validateObj(vObj, set_default) - } - - } - - if obj.obj.PmsiLabel != nil { + if obj.obj.Start != nil { - if *obj.obj.PmsiLabel > 16777215 { + if *obj.obj.Start > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= BgpV6EviVxlan.PmsiLabel <= 16777215 but Got %d", *obj.obj.PmsiLabel)) + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Start <= 1 but Got %d", *obj.obj.Start)) } } - if obj.obj.AdLabel != nil { + if obj.obj.Step != nil { - if *obj.obj.AdLabel > 16777215 { + if *obj.obj.Step > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= BgpV6EviVxlan.AdLabel <= 16777215 but Got %d", *obj.obj.AdLabel)) - } - - } - - if obj.obj.RouteDistinguisher != nil { - - obj.RouteDistinguisher().validateObj(vObj, set_default) - } - - if len(obj.obj.RouteTargetExport) != 0 { - - if set_default { - obj.RouteTargetExport().clearHolderSlice() - for _, item := range obj.obj.RouteTargetExport { - obj.RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.RouteTargetExport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.RouteTargetImport) != 0 { - - if set_default { - obj.RouteTargetImport().clearHolderSlice() - for _, item := range obj.obj.RouteTargetImport { - obj.RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.RouteTargetImport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.L3RouteTargetExport) != 0 { - - if set_default { - obj.L3RouteTargetExport().clearHolderSlice() - for _, item := range obj.obj.L3RouteTargetExport { - obj.L3RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.L3RouteTargetExport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.L3RouteTargetImport) != 0 { - - if set_default { - obj.L3RouteTargetImport().clearHolderSlice() - for _, item := range obj.obj.L3RouteTargetImport { - obj.L3RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.L3RouteTargetImport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if obj.obj.Advanced != nil { - - obj.Advanced().validateObj(vObj, set_default) - } - - if len(obj.obj.Communities) != 0 { - - if set_default { - obj.Communities().clearHolderSlice() - for _, item := range obj.obj.Communities { - obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) - } - } - for _, item := range obj.Communities().Items() { - item.validateObj(vObj, set_default) + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Step <= 1 but Got %d", *obj.obj.Step)) } } - if len(obj.obj.ExtCommunities) != 0 { + if obj.obj.Count != nil { - if set_default { - obj.ExtCommunities().clearHolderSlice() - for _, item := range obj.obj.ExtCommunities { - obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) - } - } - for _, item := range obj.ExtCommunities().Items() { - item.validateObj(vObj, set_default) + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Count <= 1 but Got %d", *obj.obj.Count)) } } - if obj.obj.AsPath != nil { - - obj.AsPath().validateObj(vObj, set_default) - } - } -func (obj *bgpV6EviVxlan) setDefault() { - if obj.obj.ReplicationType == nil { - obj.SetReplicationType(BgpV6EviVxlanReplicationType.INGRESS_REPLICATION) - +func (obj *patternFlowIpv4TosMonetaryCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.PmsiLabel == nil { - obj.SetPmsiLabel(16) + if obj.obj.Step == nil { + obj.SetStep(1) } - if obj.obj.AdLabel == nil { - obj.SetAdLabel(0) + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** VxlanTunnelDestinationIPModeUnicastArpSuppressionCache ***** -type vxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { +// ***** PatternFlowIpv4TosMonetaryMetricTag ***** +type patternFlowIpv4TosMonetaryMetricTag struct { validation - obj *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + obj *otg.PatternFlowIpv4TosMonetaryMetricTag } -func NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { - obj := vxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: &otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{}} +func NewPatternFlowIpv4TosMonetaryMetricTag() PatternFlowIpv4TosMonetaryMetricTag { + obj := patternFlowIpv4TosMonetaryMetricTag{obj: &otg.PatternFlowIpv4TosMonetaryMetricTag{}} obj.setDefault() return &obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Msg() *otg.PatternFlowIpv4TosMonetaryMetricTag { return obj.obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetMsg(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag { proto.Merge(obj.obj, msg) return obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -299470,7 +306322,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto() (*o return obj.Msg(), nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -299479,7 +306331,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromProto(msg return newObj, nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText() (string, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299491,7 +306343,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText() (s return string(protoMarshal), nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPbText(value string) error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -299504,7 +306356,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPbText(va return retObj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() (string, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299525,7 +306377,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() (str return string(data), nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYaml(value string) error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -299550,7 +306402,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYaml(valu return nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() (string, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299568,7 +306420,7 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() (str return string(data), nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJson(value string) error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -299589,19 +306441,19 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJson(valu return nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateToAndFrom() error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Validate() error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { +func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -299609,12 +306461,12 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() stri return str } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() + newObj := NewPatternFlowIpv4TosMonetaryMetricTag() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -299626,150 +306478,182 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (Vxla return newObj, nil } -// VxlanTunnelDestinationIPModeUnicastArpSuppressionCache is each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request for another end-host IP address, its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table. If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host. -type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { +// PatternFlowIpv4TosMonetaryMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosMonetaryMetricTag interface { Validation - // Msg marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // Msg marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag // and doesn't set defaults - Msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // SetMsg unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + Msg() *otg.PatternFlowIpv4TosMonetaryMetricTag + // SetMsg unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag // and doesn't set defaults - SetMsg(*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // ToProto marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) - // ToPbText marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf text + SetMsg(*otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag + // ToProto marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to YAML text + // ToYaml marshals PatternFlowIpv4TosMonetaryMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to JSON text + // ToJson marshals PatternFlowIpv4TosMonetaryMetricTag to JSON text ToJson() (string, error) - // FromProto unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) - // FromPbText unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf text + // FromProto unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from YAML text + // FromYaml unmarshals PatternFlowIpv4TosMonetaryMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from JSON text + // FromJson unmarshals PatternFlowIpv4TosMonetaryMetricTag from JSON text FromJson(value string) error - // Validate validates VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // Validate validates PatternFlowIpv4TosMonetaryMetricTag Validate() error // A stringer function String() string // Clones the object - Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RemoteVmMac returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. - RemoteVmMac() string - // SetRemoteVmMac assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // HasRemoteVmMac checks if RemoteVmMac has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - HasRemoteVmMac() bool - // RemoteVmIpv4 returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. - RemoteVmIpv4() string - // SetRemoteVmIpv4 assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // HasRemoteVmIpv4 checks if RemoteVmIpv4 has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - HasRemoteVmIpv4() bool + // Name returns string, set in PatternFlowIpv4TosMonetaryMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetName(value string) PatternFlowIpv4TosMonetaryMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosMonetaryMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosMonetaryMetricTag + HasLength() bool } -// Remote VM MAC address bound to Remote VM IPv4 address -// RemoteVmMac returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmMac() string { +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosMonetaryMetricTag) Name() string { - return *obj.obj.RemoteVmMac + return obj.obj.Name +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlowIpv4TosMonetaryMetricTag { + obj.obj.Name = value + return obj } -// Remote VM MAC address bound to Remote VM IPv4 address -// RemoteVmMac returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmMac() bool { - return obj.obj.RemoteVmMac != nil +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) Offset() uint32 { + + return *obj.obj.Offset + } -// Remote VM MAC address bound to Remote VM IPv4 address -// SetRemoteVmMac sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} - obj.obj.RemoteVmMac = &value +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag { + + obj.obj.Offset = &value return obj } -// Remote VM IPv4 address -// RemoteVmIpv4 returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmIpv4() string { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) Length() uint32 { - return *obj.obj.RemoteVmIpv4 + return *obj.obj.Length } -// Remote VM IPv4 address -// RemoteVmIpv4 returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmIpv4() bool { - return obj.obj.RemoteVmIpv4 != nil +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) HasLength() bool { + return obj.obj.Length != nil } -// Remote VM IPv4 address -// SetRemoteVmIpv4 sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag { - obj.obj.RemoteVmIpv4 = &value + obj.obj.Length = &value return obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.RemoteVmMac != nil { + // Name is required + if obj.obj.Name == "" { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosMonetaryMetricTag") + } - err := obj.validateMac(obj.RemoteVmMac()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmMac")) + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) } } - if obj.obj.RemoteVmIpv4 != nil { + if obj.obj.Length != nil { - err := obj.validateIpv4(obj.RemoteVmIpv4()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmIpv4")) + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosMonetaryMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) } } } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) setDefault() { +func (obj *patternFlowIpv4TosMonetaryMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } } -// ***** PatternFlowIpv4TosPrecedenceCounter ***** -type patternFlowIpv4TosPrecedenceCounter struct { +// ***** PatternFlowIpv4TosUnusedCounter ***** +type patternFlowIpv4TosUnusedCounter struct { validation - obj *otg.PatternFlowIpv4TosPrecedenceCounter + obj *otg.PatternFlowIpv4TosUnusedCounter } -func NewPatternFlowIpv4TosPrecedenceCounter() PatternFlowIpv4TosPrecedenceCounter { - obj := patternFlowIpv4TosPrecedenceCounter{obj: &otg.PatternFlowIpv4TosPrecedenceCounter{}} +func NewPatternFlowIpv4TosUnusedCounter() PatternFlowIpv4TosUnusedCounter { + obj := patternFlowIpv4TosUnusedCounter{obj: &otg.PatternFlowIpv4TosUnusedCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) Msg() *otg.PatternFlowIpv4TosPrecedenceCounter { +func (obj *patternFlowIpv4TosUnusedCounter) Msg() *otg.PatternFlowIpv4TosUnusedCounter { return obj.obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) SetMsg(msg *otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter { +func (obj *patternFlowIpv4TosUnusedCounter) SetMsg(msg *otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) { +func (obj *patternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -299777,7 +306661,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlowIpv4T return obj.Msg(), nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) { +func (obj *patternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -299786,7 +306670,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.PatternFlowIp return newObj, nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) { +func (obj *patternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299798,7 +306682,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) FromPbText(value string) error { +func (obj *patternFlowIpv4TosUnusedCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -299811,7 +306695,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { +func (obj *patternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299832,7 +306716,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) FromYaml(value string) error { +func (obj *patternFlowIpv4TosUnusedCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -299857,7 +306741,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { +func (obj *patternFlowIpv4TosUnusedCounter) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -299875,7 +306759,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) FromJson(value string) error { +func (obj *patternFlowIpv4TosUnusedCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -299896,19 +306780,19 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) validateToAndFrom() error { +func (obj *patternFlowIpv4TosUnusedCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceCounter) Validate() error { +func (obj *patternFlowIpv4TosUnusedCounter) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { +func (obj *patternFlowIpv4TosUnusedCounter) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -299916,12 +306800,12 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { return str } -func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrecedenceCounter, error) { +func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCounter, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosPrecedenceCounter() + newObj := NewPatternFlowIpv4TosUnusedCounter() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -299933,63 +306817,63 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrece return newObj, nil } -// PatternFlowIpv4TosPrecedenceCounter is integer counter pattern -type PatternFlowIpv4TosPrecedenceCounter interface { +// PatternFlowIpv4TosUnusedCounter is integer counter pattern +type PatternFlowIpv4TosUnusedCounter interface { Validation - // Msg marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // Msg marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosPrecedenceCounter - // SetMsg unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + Msg() *otg.PatternFlowIpv4TosUnusedCounter + // SetMsg unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter - // ToProto marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter - ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) - // ToPbText marshals PatternFlowIpv4TosPrecedenceCounter to protobuf text + SetMsg(*otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter + // ToProto marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter + ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) + // ToPbText marshals PatternFlowIpv4TosUnusedCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosPrecedenceCounter to YAML text + // ToYaml marshals PatternFlowIpv4TosUnusedCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosPrecedenceCounter to JSON text + // ToJson marshals PatternFlowIpv4TosUnusedCounter to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter - FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf text + // FromProto unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter + FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosUnusedCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosPrecedenceCounter from YAML text + // FromYaml unmarshals PatternFlowIpv4TosUnusedCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosPrecedenceCounter from JSON text + // FromJson unmarshals PatternFlowIpv4TosUnusedCounter from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosPrecedenceCounter + // Validate validates PatternFlowIpv4TosUnusedCounter Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosPrecedenceCounter, error) + Clone() (PatternFlowIpv4TosUnusedCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + // Start returns uint32, set in PatternFlowIpv4TosUnusedCounter. Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosPrecedenceCounter + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetStart(value uint32) PatternFlowIpv4TosUnusedCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosUnusedCounter HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + // Step returns uint32, set in PatternFlowIpv4TosUnusedCounter. Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosPrecedenceCounter + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetStep(value uint32) PatternFlowIpv4TosUnusedCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosUnusedCounter HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + // Count returns uint32, set in PatternFlowIpv4TosUnusedCounter. Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosPrecedenceCounter + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetCount(value uint32) PatternFlowIpv4TosUnusedCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosUnusedCounter HasCount() bool } // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Start() uint32 { +func (obj *patternFlowIpv4TosUnusedCounter) Start() uint32 { return *obj.obj.Start @@ -299997,13 +306881,13 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Start() uint32 { // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasStart() bool { +func (obj *patternFlowIpv4TosUnusedCounter) HasStart() bool { return obj.obj.Start != nil } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter { +// SetStart sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetStart(value uint32) PatternFlowIpv4TosUnusedCounter { obj.obj.Start = &value return obj @@ -300011,7 +306895,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) SetStart(value uint32) PatternFl // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Step() uint32 { +func (obj *patternFlowIpv4TosUnusedCounter) Step() uint32 { return *obj.obj.Step @@ -300019,13 +306903,13 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Step() uint32 { // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasStep() bool { +func (obj *patternFlowIpv4TosUnusedCounter) HasStep() bool { return obj.obj.Step != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter { +// SetStep sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetStep(value uint32) PatternFlowIpv4TosUnusedCounter { obj.obj.Step = &value return obj @@ -300033,7 +306917,7 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) SetStep(value uint32) PatternFlo // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Count() uint32 { +func (obj *patternFlowIpv4TosUnusedCounter) Count() uint32 { return *obj.obj.Count @@ -300041,56 +306925,56 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Count() uint32 { // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasCount() bool { +func (obj *patternFlowIpv4TosUnusedCounter) HasCount() bool { return obj.obj.Count != nil } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter { +// SetCount sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetCount(value uint32) PatternFlowIpv4TosUnusedCounter { obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosUnusedCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } if obj.obj.Start != nil { - if *obj.obj.Start > 7 { + if *obj.obj.Start > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Start <= 7 but Got %d", *obj.obj.Start)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Start <= 1 but Got %d", *obj.obj.Start)) } } if obj.obj.Step != nil { - if *obj.obj.Step > 7 { + if *obj.obj.Step > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Step <= 7 but Got %d", *obj.obj.Step)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Step <= 1 but Got %d", *obj.obj.Step)) } } if obj.obj.Count != nil { - if *obj.obj.Count > 7 { + if *obj.obj.Count > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Count <= 7 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Count <= 1 but Got %d", *obj.obj.Count)) } } } -func (obj *patternFlowIpv4TosPrecedenceCounter) setDefault() { +func (obj *patternFlowIpv4TosUnusedCounter) setDefault() { if obj.obj.Start == nil { obj.SetStart(0) } @@ -300103,29 +306987,29 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) setDefault() { } -// ***** PatternFlowIpv4TosPrecedenceMetricTag ***** -type patternFlowIpv4TosPrecedenceMetricTag struct { +// ***** PatternFlowIpv4TosUnusedMetricTag ***** +type patternFlowIpv4TosUnusedMetricTag struct { validation - obj *otg.PatternFlowIpv4TosPrecedenceMetricTag + obj *otg.PatternFlowIpv4TosUnusedMetricTag } -func NewPatternFlowIpv4TosPrecedenceMetricTag() PatternFlowIpv4TosPrecedenceMetricTag { - obj := patternFlowIpv4TosPrecedenceMetricTag{obj: &otg.PatternFlowIpv4TosPrecedenceMetricTag{}} +func NewPatternFlowIpv4TosUnusedMetricTag() PatternFlowIpv4TosUnusedMetricTag { + obj := patternFlowIpv4TosUnusedMetricTag{obj: &otg.PatternFlowIpv4TosUnusedMetricTag{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag { +func (obj *patternFlowIpv4TosUnusedMetricTag) Msg() *otg.PatternFlowIpv4TosUnusedMetricTag { return obj.obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag { +func (obj *patternFlowIpv4TosUnusedMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -300133,7 +307017,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFlowIpv return obj.Msg(), nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -300142,7 +307026,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.PatternFlow return newObj, nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300154,7 +307038,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string) error { +func (obj *patternFlowIpv4TosUnusedMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -300167,7 +307051,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string) error return retObj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300188,7 +307072,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) error { +func (obj *patternFlowIpv4TosUnusedMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -300213,7 +307097,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300231,7 +307115,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) error { +func (obj *patternFlowIpv4TosUnusedMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -300252,19 +307136,19 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateToAndFrom() error { +func (obj *patternFlowIpv4TosUnusedMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Validate() error { +func (obj *patternFlowIpv4TosUnusedMetricTag) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { +func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -300272,12 +307156,12 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedMetricTag, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosPrecedenceMetricTag() + newObj := NewPatternFlowIpv4TosUnusedMetricTag() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -300289,68 +307173,68 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPre return newObj, nil } -// PatternFlowIpv4TosPrecedenceMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosPrecedenceMetricTag interface { +// PatternFlowIpv4TosUnusedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosUnusedMetricTag interface { Validation - // Msg marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // Msg marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag - // SetMsg unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + Msg() *otg.PatternFlowIpv4TosUnusedMetricTag + // SetMsg unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag - // ToProto marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag - ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf text + SetMsg(*otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag + // ToProto marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosUnusedMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosPrecedenceMetricTag to YAML text + // ToYaml marshals PatternFlowIpv4TosUnusedMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosPrecedenceMetricTag to JSON text + // ToJson marshals PatternFlowIpv4TosUnusedMetricTag to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag - FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf text + // FromProto unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosPrecedenceMetricTag from YAML text + // FromYaml unmarshals PatternFlowIpv4TosUnusedMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosPrecedenceMetricTag from JSON text + // FromJson unmarshals PatternFlowIpv4TosUnusedMetricTag from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosPrecedenceMetricTag + // Validate validates PatternFlowIpv4TosUnusedMetricTag Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) + Clone() (PatternFlowIpv4TosUnusedMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosPrecedenceMetricTag. + // Name returns string, set in PatternFlowIpv4TosUnusedMetricTag. Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + // SetName assigns string provided by user to PatternFlowIpv4TosUnusedMetricTag + SetName(value string) PatternFlowIpv4TosUnusedMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosPrecedenceMetricTag + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag + SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosUnusedMetricTag HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + // Length returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosPrecedenceMetricTag + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag + SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosUnusedMetricTag HasLength() bool } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Name() string { +func (obj *patternFlowIpv4TosUnusedMetricTag) Name() string { return obj.obj.Name } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag { +// SetName sets the string value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowIpv4TosUnusedMetricTag { obj.obj.Name = value return obj @@ -300358,7 +307242,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternF // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() uint32 { +func (obj *patternFlowIpv4TosUnusedMetricTag) Offset() uint32 { return *obj.obj.Offset @@ -300366,13 +307250,13 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() uint32 { // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasOffset() bool { +func (obj *patternFlowIpv4TosUnusedMetricTag) HasOffset() bool { return obj.obj.Offset != nil } // Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { +// SetOffset sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag { obj.obj.Offset = &value return obj @@ -300380,7 +307264,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value uint32) Patter // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() uint32 { +func (obj *patternFlowIpv4TosUnusedMetricTag) Length() uint32 { return *obj.obj.Length @@ -300388,83 +307272,83 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() uint32 { // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasLength() bool { +func (obj *patternFlowIpv4TosUnusedMetricTag) HasLength() bool { return obj.obj.Length != nil } // Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { +// SetLength sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag { obj.obj.Length = &value return obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosUnusedMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } // Name is required if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosPrecedenceMetricTag") + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosUnusedMetricTag") } if obj.obj.Offset != nil { - if *obj.obj.Offset > 2 { + if *obj.obj.Offset > 0 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceMetricTag.Offset <= 2 but Got %d", *obj.obj.Offset)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) } } if obj.obj.Length != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 3 { + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosPrecedenceMetricTag.Length <= 3 but Got %d", *obj.obj.Length)) + fmt.Sprintf("1 <= PatternFlowIpv4TosUnusedMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) } } } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) setDefault() { +func (obj *patternFlowIpv4TosUnusedMetricTag) setDefault() { if obj.obj.Offset == nil { obj.SetOffset(0) } if obj.obj.Length == nil { - obj.SetLength(3) + obj.SetLength(1) } } -// ***** PatternFlowIpv4TosDelayCounter ***** -type patternFlowIpv4TosDelayCounter struct { +// ***** PatternFlowIpv4DscpPhbCounter ***** +type patternFlowIpv4DscpPhbCounter struct { validation - obj *otg.PatternFlowIpv4TosDelayCounter + obj *otg.PatternFlowIpv4DscpPhbCounter } -func NewPatternFlowIpv4TosDelayCounter() PatternFlowIpv4TosDelayCounter { - obj := patternFlowIpv4TosDelayCounter{obj: &otg.PatternFlowIpv4TosDelayCounter{}} +func NewPatternFlowIpv4DscpPhbCounter() PatternFlowIpv4DscpPhbCounter { + obj := patternFlowIpv4DscpPhbCounter{obj: &otg.PatternFlowIpv4DscpPhbCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosDelayCounter) Msg() *otg.PatternFlowIpv4TosDelayCounter { +func (obj *patternFlowIpv4DscpPhbCounter) Msg() *otg.PatternFlowIpv4DscpPhbCounter { return obj.obj } -func (obj *patternFlowIpv4TosDelayCounter) SetMsg(msg *otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter { +func (obj *patternFlowIpv4DscpPhbCounter) SetMsg(msg *otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) { +func (obj *patternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -300472,7 +307356,7 @@ func (obj *patternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4TosDel return obj.Msg(), nil } -func (obj *patternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) { +func (obj *patternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -300481,7 +307365,7 @@ func (obj *patternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlowIpv4Tos return newObj, nil } -func (obj *patternFlowIpv4TosDelayCounter) ToPbText() (string, error) { +func (obj *patternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300493,7 +307377,7 @@ func (obj *patternFlowIpv4TosDelayCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosDelayCounter) FromPbText(value string) error { +func (obj *patternFlowIpv4DscpPhbCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -300506,7 +307390,7 @@ func (obj *patternFlowIpv4TosDelayCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosDelayCounter) ToYaml() (string, error) { +func (obj *patternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300527,7 +307411,7 @@ func (obj *patternFlowIpv4TosDelayCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosDelayCounter) FromYaml(value string) error { +func (obj *patternFlowIpv4DscpPhbCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -300552,7 +307436,7 @@ func (obj *patternFlowIpv4TosDelayCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayCounter) ToJson() (string, error) { +func (obj *patternFlowIpv4DscpPhbCounter) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300570,7 +307454,7 @@ func (obj *patternFlowIpv4TosDelayCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosDelayCounter) FromJson(value string) error { +func (obj *patternFlowIpv4DscpPhbCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -300591,19 +307475,19 @@ func (obj *patternFlowIpv4TosDelayCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayCounter) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpPhbCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayCounter) Validate() error { +func (obj *patternFlowIpv4DscpPhbCounter) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayCounter) String() string { +func (obj *patternFlowIpv4DscpPhbCounter) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -300611,12 +307495,12 @@ func (obj *patternFlowIpv4TosDelayCounter) String() string { return str } -func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCounter, error) { +func (obj *patternFlowIpv4DscpPhbCounter) Clone() (PatternFlowIpv4DscpPhbCounter, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosDelayCounter() + newObj := NewPatternFlowIpv4DscpPhbCounter() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -300628,63 +307512,63 @@ func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCount return newObj, nil } -// PatternFlowIpv4TosDelayCounter is integer counter pattern -type PatternFlowIpv4TosDelayCounter interface { +// PatternFlowIpv4DscpPhbCounter is integer counter pattern +type PatternFlowIpv4DscpPhbCounter interface { Validation - // Msg marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + // Msg marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosDelayCounter - // SetMsg unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + Msg() *otg.PatternFlowIpv4DscpPhbCounter + // SetMsg unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter - // ToProto marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter - ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) - // ToPbText marshals PatternFlowIpv4TosDelayCounter to protobuf text + SetMsg(*otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter + // ToProto marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter + ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) + // ToPbText marshals PatternFlowIpv4DscpPhbCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosDelayCounter to YAML text + // ToYaml marshals PatternFlowIpv4DscpPhbCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosDelayCounter to JSON text + // ToJson marshals PatternFlowIpv4DscpPhbCounter to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter - FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosDelayCounter from protobuf text + // FromProto unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter + FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) + // FromPbText unmarshals PatternFlowIpv4DscpPhbCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosDelayCounter from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpPhbCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosDelayCounter from JSON text + // FromJson unmarshals PatternFlowIpv4DscpPhbCounter from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosDelayCounter + // Validate validates PatternFlowIpv4DscpPhbCounter Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosDelayCounter, error) + Clone() (PatternFlowIpv4DscpPhbCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosDelayCounter. + // Start returns uint32, set in PatternFlowIpv4DscpPhbCounter. Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetStart(value uint32) PatternFlowIpv4TosDelayCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosDelayCounter + // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetStart(value uint32) PatternFlowIpv4DscpPhbCounter + // HasStart checks if Start has been set in PatternFlowIpv4DscpPhbCounter HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosDelayCounter. + // Step returns uint32, set in PatternFlowIpv4DscpPhbCounter. Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetStep(value uint32) PatternFlowIpv4TosDelayCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosDelayCounter + // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetStep(value uint32) PatternFlowIpv4DscpPhbCounter + // HasStep checks if Step has been set in PatternFlowIpv4DscpPhbCounter HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosDelayCounter. + // Count returns uint32, set in PatternFlowIpv4DscpPhbCounter. Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetCount(value uint32) PatternFlowIpv4TosDelayCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosDelayCounter + // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetCount(value uint32) PatternFlowIpv4DscpPhbCounter + // HasCount checks if Count has been set in PatternFlowIpv4DscpPhbCounter HasCount() bool } // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Start() uint32 { +func (obj *patternFlowIpv4DscpPhbCounter) Start() uint32 { return *obj.obj.Start @@ -300692,13 +307576,13 @@ func (obj *patternFlowIpv4TosDelayCounter) Start() uint32 { // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasStart() bool { +func (obj *patternFlowIpv4DscpPhbCounter) HasStart() bool { return obj.obj.Start != nil } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetStart(value uint32) PatternFlowIpv4TosDelayCounter { +// SetStart sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetStart(value uint32) PatternFlowIpv4DscpPhbCounter { obj.obj.Start = &value return obj @@ -300706,7 +307590,7 @@ func (obj *patternFlowIpv4TosDelayCounter) SetStart(value uint32) PatternFlowIpv // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Step() uint32 { +func (obj *patternFlowIpv4DscpPhbCounter) Step() uint32 { return *obj.obj.Step @@ -300714,13 +307598,13 @@ func (obj *patternFlowIpv4TosDelayCounter) Step() uint32 { // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasStep() bool { +func (obj *patternFlowIpv4DscpPhbCounter) HasStep() bool { return obj.obj.Step != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetStep(value uint32) PatternFlowIpv4TosDelayCounter { +// SetStep sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetStep(value uint32) PatternFlowIpv4DscpPhbCounter { obj.obj.Step = &value return obj @@ -300728,7 +307612,7 @@ func (obj *patternFlowIpv4TosDelayCounter) SetStep(value uint32) PatternFlowIpv4 // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Count() uint32 { +func (obj *patternFlowIpv4DscpPhbCounter) Count() uint32 { return *obj.obj.Count @@ -300736,56 +307620,56 @@ func (obj *patternFlowIpv4TosDelayCounter) Count() uint32 { // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasCount() bool { +func (obj *patternFlowIpv4DscpPhbCounter) HasCount() bool { return obj.obj.Count != nil } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetCount(value uint32) PatternFlowIpv4TosDelayCounter { +// SetCount sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetCount(value uint32) PatternFlowIpv4DscpPhbCounter { obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosDelayCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpPhbCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } if obj.obj.Start != nil { - if *obj.obj.Start > 1 { + if *obj.obj.Start > 63 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Start <= 1 but Got %d", *obj.obj.Start)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Start <= 63 but Got %d", *obj.obj.Start)) } } if obj.obj.Step != nil { - if *obj.obj.Step > 1 { + if *obj.obj.Step > 63 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Step <= 1 but Got %d", *obj.obj.Step)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Step <= 63 but Got %d", *obj.obj.Step)) } } if obj.obj.Count != nil { - if *obj.obj.Count > 1 { + if *obj.obj.Count > 63 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Count <= 1 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Count <= 63 but Got %d", *obj.obj.Count)) } } } -func (obj *patternFlowIpv4TosDelayCounter) setDefault() { +func (obj *patternFlowIpv4DscpPhbCounter) setDefault() { if obj.obj.Start == nil { obj.SetStart(0) } @@ -300798,29 +307682,29 @@ func (obj *patternFlowIpv4TosDelayCounter) setDefault() { } -// ***** PatternFlowIpv4TosDelayMetricTag ***** -type patternFlowIpv4TosDelayMetricTag struct { +// ***** PatternFlowIpv4DscpPhbMetricTag ***** +type patternFlowIpv4DscpPhbMetricTag struct { validation - obj *otg.PatternFlowIpv4TosDelayMetricTag + obj *otg.PatternFlowIpv4DscpPhbMetricTag } -func NewPatternFlowIpv4TosDelayMetricTag() PatternFlowIpv4TosDelayMetricTag { - obj := patternFlowIpv4TosDelayMetricTag{obj: &otg.PatternFlowIpv4TosDelayMetricTag{}} +func NewPatternFlowIpv4DscpPhbMetricTag() PatternFlowIpv4DscpPhbMetricTag { + obj := patternFlowIpv4DscpPhbMetricTag{obj: &otg.PatternFlowIpv4DscpPhbMetricTag{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosDelayMetricTag) Msg() *otg.PatternFlowIpv4TosDelayMetricTag { +func (obj *patternFlowIpv4DscpPhbMetricTag) Msg() *otg.PatternFlowIpv4DscpPhbMetricTag { return obj.obj } -func (obj *patternFlowIpv4TosDelayMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag { +func (obj *patternFlowIpv4DscpPhbMetricTag) SetMsg(msg *otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -300828,7 +307712,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv4TosD return obj.Msg(), nil } -func (obj *patternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -300837,7 +307721,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFlowIpv4T return newObj, nil } -func (obj *patternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300849,7 +307733,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosDelayMetricTag) FromPbText(value string) error { +func (obj *patternFlowIpv4DscpPhbMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -300862,7 +307746,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300883,7 +307767,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosDelayMetricTag) FromYaml(value string) error { +func (obj *patternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -300908,7 +307792,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -300926,7 +307810,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosDelayMetricTag) FromJson(value string) error { +func (obj *patternFlowIpv4DscpPhbMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -300947,19 +307831,19 @@ func (obj *patternFlowIpv4TosDelayMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayMetricTag) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpPhbMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayMetricTag) Validate() error { +func (obj *patternFlowIpv4DscpPhbMetricTag) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayMetricTag) String() string { +func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -300967,12 +307851,12 @@ func (obj *patternFlowIpv4TosDelayMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMetricTag, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetricTag, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosDelayMetricTag() + newObj := NewPatternFlowIpv4DscpPhbMetricTag() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -300984,68 +307868,68 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMet return newObj, nil } -// PatternFlowIpv4TosDelayMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosDelayMetricTag interface { +// PatternFlowIpv4DscpPhbMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4DscpPhbMetricTag interface { Validation - // Msg marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + // Msg marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosDelayMetricTag - // SetMsg unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + Msg() *otg.PatternFlowIpv4DscpPhbMetricTag + // SetMsg unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag - // ToProto marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag - ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosDelayMetricTag to protobuf text + SetMsg(*otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag + // ToProto marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) + // ToPbText marshals PatternFlowIpv4DscpPhbMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosDelayMetricTag to YAML text + // ToYaml marshals PatternFlowIpv4DscpPhbMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosDelayMetricTag to JSON text + // ToJson marshals PatternFlowIpv4DscpPhbMetricTag to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag - FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf text + // FromProto unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosDelayMetricTag from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpPhbMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosDelayMetricTag from JSON text + // FromJson unmarshals PatternFlowIpv4DscpPhbMetricTag from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosDelayMetricTag + // Validate validates PatternFlowIpv4DscpPhbMetricTag Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosDelayMetricTag, error) + Clone() (PatternFlowIpv4DscpPhbMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosDelayMetricTag. + // Name returns string, set in PatternFlowIpv4DscpPhbMetricTag. Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosDelayMetricTag - SetName(value string) PatternFlowIpv4TosDelayMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + // SetName assigns string provided by user to PatternFlowIpv4DscpPhbMetricTag + SetName(value string) PatternFlowIpv4DscpPhbMetricTag + // Offset returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag - SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosDelayMetricTag + // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag + SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4DscpPhbMetricTag HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + // Length returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag - SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosDelayMetricTag + // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag + SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4DscpPhbMetricTag HasLength() bool } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string -func (obj *patternFlowIpv4TosDelayMetricTag) Name() string { +func (obj *patternFlowIpv4DscpPhbMetricTag) Name() string { return obj.obj.Name } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIpv4TosDelayMetricTag { +// SetName sets the string value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv4DscpPhbMetricTag { obj.obj.Name = value return obj @@ -301053,7 +307937,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIp // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) Offset() uint32 { +func (obj *patternFlowIpv4DscpPhbMetricTag) Offset() uint32 { return *obj.obj.Offset @@ -301061,13 +307945,13 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Offset() uint32 { // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) HasOffset() bool { +func (obj *patternFlowIpv4DscpPhbMetricTag) HasOffset() bool { return obj.obj.Offset != nil } // Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag { +// SetOffset sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag { obj.obj.Offset = &value return obj @@ -301075,7 +307959,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value uint32) PatternFlow // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) Length() uint32 { +func (obj *patternFlowIpv4DscpPhbMetricTag) Length() uint32 { return *obj.obj.Length @@ -301083,83 +307967,83 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Length() uint32 { // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) HasLength() bool { +func (obj *patternFlowIpv4DscpPhbMetricTag) HasLength() bool { return obj.obj.Length != nil } // Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag { +// SetLength sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag { obj.obj.Length = &value return obj } -func (obj *patternFlowIpv4TosDelayMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpPhbMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } // Name is required if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosDelayMetricTag") + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpPhbMetricTag") } if obj.obj.Offset != nil { - if *obj.obj.Offset > 0 { + if *obj.obj.Offset > 5 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbMetricTag.Offset <= 5 but Got %d", *obj.obj.Offset)) } } if obj.obj.Length != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + if *obj.obj.Length < 1 || *obj.obj.Length > 6 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosDelayMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + fmt.Sprintf("1 <= PatternFlowIpv4DscpPhbMetricTag.Length <= 6 but Got %d", *obj.obj.Length)) } } } -func (obj *patternFlowIpv4TosDelayMetricTag) setDefault() { +func (obj *patternFlowIpv4DscpPhbMetricTag) setDefault() { if obj.obj.Offset == nil { obj.SetOffset(0) } if obj.obj.Length == nil { - obj.SetLength(1) + obj.SetLength(6) } } -// ***** PatternFlowIpv4TosThroughputCounter ***** -type patternFlowIpv4TosThroughputCounter struct { +// ***** PatternFlowIpv4DscpEcnCounter ***** +type patternFlowIpv4DscpEcnCounter struct { validation - obj *otg.PatternFlowIpv4TosThroughputCounter + obj *otg.PatternFlowIpv4DscpEcnCounter } -func NewPatternFlowIpv4TosThroughputCounter() PatternFlowIpv4TosThroughputCounter { - obj := patternFlowIpv4TosThroughputCounter{obj: &otg.PatternFlowIpv4TosThroughputCounter{}} +func NewPatternFlowIpv4DscpEcnCounter() PatternFlowIpv4DscpEcnCounter { + obj := patternFlowIpv4DscpEcnCounter{obj: &otg.PatternFlowIpv4DscpEcnCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosThroughputCounter) Msg() *otg.PatternFlowIpv4TosThroughputCounter { +func (obj *patternFlowIpv4DscpEcnCounter) Msg() *otg.PatternFlowIpv4DscpEcnCounter { return obj.obj } -func (obj *patternFlowIpv4TosThroughputCounter) SetMsg(msg *otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter { +func (obj *patternFlowIpv4DscpEcnCounter) SetMsg(msg *otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) { +func (obj *patternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -301167,7 +308051,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlowIpv4T return obj.Msg(), nil } -func (obj *patternFlowIpv4TosThroughputCounter) FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) { +func (obj *patternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -301176,7 +308060,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) FromProto(msg *otg.PatternFlowIp return newObj, nil } -func (obj *patternFlowIpv4TosThroughputCounter) ToPbText() (string, error) { +func (obj *patternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301188,7 +308072,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosThroughputCounter) FromPbText(value string) error { +func (obj *patternFlowIpv4DscpEcnCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -301201,7 +308085,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { +func (obj *patternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301222,7 +308106,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosThroughputCounter) FromYaml(value string) error { +func (obj *patternFlowIpv4DscpEcnCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -301247,7 +308131,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosThroughputCounter) ToJson() (string, error) { +func (obj *patternFlowIpv4DscpEcnCounter) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301265,7 +308149,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosThroughputCounter) FromJson(value string) error { +func (obj *patternFlowIpv4DscpEcnCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -301286,19 +308170,19 @@ func (obj *patternFlowIpv4TosThroughputCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosThroughputCounter) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpEcnCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputCounter) Validate() error { +func (obj *patternFlowIpv4DscpEcnCounter) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputCounter) String() string { +func (obj *patternFlowIpv4DscpEcnCounter) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -301306,12 +308190,12 @@ func (obj *patternFlowIpv4TosThroughputCounter) String() string { return str } -func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThroughputCounter, error) { +func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosThroughputCounter() + newObj := NewPatternFlowIpv4DscpEcnCounter() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -301323,63 +308207,63 @@ func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThrou return newObj, nil } -// PatternFlowIpv4TosThroughputCounter is integer counter pattern -type PatternFlowIpv4TosThroughputCounter interface { +// PatternFlowIpv4DscpEcnCounter is integer counter pattern +type PatternFlowIpv4DscpEcnCounter interface { Validation - // Msg marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter + // Msg marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosThroughputCounter - // SetMsg unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter + Msg() *otg.PatternFlowIpv4DscpEcnCounter + // SetMsg unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter - // ToProto marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter - ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) - // ToPbText marshals PatternFlowIpv4TosThroughputCounter to protobuf text + SetMsg(*otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter + // ToProto marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter + ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) + // ToPbText marshals PatternFlowIpv4DscpEcnCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosThroughputCounter to YAML text + // ToYaml marshals PatternFlowIpv4DscpEcnCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosThroughputCounter to JSON text + // ToJson marshals PatternFlowIpv4DscpEcnCounter to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter - FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosThroughputCounter from protobuf text + // FromProto unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter + FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) + // FromPbText unmarshals PatternFlowIpv4DscpEcnCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosThroughputCounter from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpEcnCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosThroughputCounter from JSON text + // FromJson unmarshals PatternFlowIpv4DscpEcnCounter from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosThroughputCounter + // Validate validates PatternFlowIpv4DscpEcnCounter Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosThroughputCounter, error) + Clone() (PatternFlowIpv4DscpEcnCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosThroughputCounter. + // Start returns uint32, set in PatternFlowIpv4DscpEcnCounter. Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetStart(value uint32) PatternFlowIpv4TosThroughputCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosThroughputCounter + // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetStart(value uint32) PatternFlowIpv4DscpEcnCounter + // HasStart checks if Start has been set in PatternFlowIpv4DscpEcnCounter HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosThroughputCounter. + // Step returns uint32, set in PatternFlowIpv4DscpEcnCounter. Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetStep(value uint32) PatternFlowIpv4TosThroughputCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosThroughputCounter + // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetStep(value uint32) PatternFlowIpv4DscpEcnCounter + // HasStep checks if Step has been set in PatternFlowIpv4DscpEcnCounter HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosThroughputCounter. + // Count returns uint32, set in PatternFlowIpv4DscpEcnCounter. Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetCount(value uint32) PatternFlowIpv4TosThroughputCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosThroughputCounter + // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetCount(value uint32) PatternFlowIpv4DscpEcnCounter + // HasCount checks if Count has been set in PatternFlowIpv4DscpEcnCounter HasCount() bool } // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Start() uint32 { +func (obj *patternFlowIpv4DscpEcnCounter) Start() uint32 { return *obj.obj.Start @@ -301387,13 +308271,13 @@ func (obj *patternFlowIpv4TosThroughputCounter) Start() uint32 { // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasStart() bool { +func (obj *patternFlowIpv4DscpEcnCounter) HasStart() bool { return obj.obj.Start != nil } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetStart(value uint32) PatternFlowIpv4TosThroughputCounter { +// SetStart sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetStart(value uint32) PatternFlowIpv4DscpEcnCounter { obj.obj.Start = &value return obj @@ -301401,7 +308285,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) SetStart(value uint32) PatternFl // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Step() uint32 { +func (obj *patternFlowIpv4DscpEcnCounter) Step() uint32 { return *obj.obj.Step @@ -301409,13 +308293,13 @@ func (obj *patternFlowIpv4TosThroughputCounter) Step() uint32 { // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasStep() bool { +func (obj *patternFlowIpv4DscpEcnCounter) HasStep() bool { return obj.obj.Step != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetStep(value uint32) PatternFlowIpv4TosThroughputCounter { +// SetStep sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetStep(value uint32) PatternFlowIpv4DscpEcnCounter { obj.obj.Step = &value return obj @@ -301423,7 +308307,7 @@ func (obj *patternFlowIpv4TosThroughputCounter) SetStep(value uint32) PatternFlo // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Count() uint32 { +func (obj *patternFlowIpv4DscpEcnCounter) Count() uint32 { return *obj.obj.Count @@ -301431,56 +308315,56 @@ func (obj *patternFlowIpv4TosThroughputCounter) Count() uint32 { // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasCount() bool { +func (obj *patternFlowIpv4DscpEcnCounter) HasCount() bool { return obj.obj.Count != nil } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetCount(value uint32) PatternFlowIpv4TosThroughputCounter { +// SetCount sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetCount(value uint32) PatternFlowIpv4DscpEcnCounter { obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosThroughputCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpEcnCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } if obj.obj.Start != nil { - if *obj.obj.Start > 1 { + if *obj.obj.Start > 3 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Start <= 1 but Got %d", *obj.obj.Start)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Start <= 3 but Got %d", *obj.obj.Start)) } } if obj.obj.Step != nil { - if *obj.obj.Step > 1 { + if *obj.obj.Step > 3 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Step <= 1 but Got %d", *obj.obj.Step)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Step <= 3 but Got %d", *obj.obj.Step)) } } if obj.obj.Count != nil { - if *obj.obj.Count > 1 { + if *obj.obj.Count > 3 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Count <= 1 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Count <= 3 but Got %d", *obj.obj.Count)) } } } -func (obj *patternFlowIpv4TosThroughputCounter) setDefault() { +func (obj *patternFlowIpv4DscpEcnCounter) setDefault() { if obj.obj.Start == nil { obj.SetStart(0) } @@ -301493,29 +308377,29 @@ func (obj *patternFlowIpv4TosThroughputCounter) setDefault() { } -// ***** PatternFlowIpv4TosThroughputMetricTag ***** -type patternFlowIpv4TosThroughputMetricTag struct { +// ***** PatternFlowIpv4DscpEcnMetricTag ***** +type patternFlowIpv4DscpEcnMetricTag struct { validation - obj *otg.PatternFlowIpv4TosThroughputMetricTag + obj *otg.PatternFlowIpv4DscpEcnMetricTag } -func NewPatternFlowIpv4TosThroughputMetricTag() PatternFlowIpv4TosThroughputMetricTag { - obj := patternFlowIpv4TosThroughputMetricTag{obj: &otg.PatternFlowIpv4TosThroughputMetricTag{}} +func NewPatternFlowIpv4DscpEcnMetricTag() PatternFlowIpv4DscpEcnMetricTag { + obj := patternFlowIpv4DscpEcnMetricTag{obj: &otg.PatternFlowIpv4DscpEcnMetricTag{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) Msg() *otg.PatternFlowIpv4TosThroughputMetricTag { +func (obj *patternFlowIpv4DscpEcnMetricTag) Msg() *otg.PatternFlowIpv4DscpEcnMetricTag { return obj.obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag { +func (obj *patternFlowIpv4DscpEcnMetricTag) SetMsg(msg *otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -301523,7 +308407,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFlowIpv return obj.Msg(), nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -301532,7 +308416,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.PatternFlow return newObj, nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301544,7 +308428,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) FromPbText(value string) error { +func (obj *patternFlowIpv4DscpEcnMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -301557,7 +308441,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) FromPbText(value string) error return retObj } -func (obj *patternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301578,7 +308462,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) FromYaml(value string) error { +func (obj *patternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -301603,7 +308487,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301621,7 +308505,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) FromJson(value string) error { +func (obj *patternFlowIpv4DscpEcnMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -301642,19 +308526,19 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpEcnMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputMetricTag) Validate() error { +func (obj *patternFlowIpv4DscpEcnMetricTag) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { +func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -301662,12 +308546,12 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThroughputMetricTag, error) { +func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetricTag, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosThroughputMetricTag() + newObj := NewPatternFlowIpv4DscpEcnMetricTag() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -301679,68 +308563,68 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThr return newObj, nil } -// PatternFlowIpv4TosThroughputMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosThroughputMetricTag interface { +// PatternFlowIpv4DscpEcnMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4DscpEcnMetricTag interface { Validation - // Msg marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + // Msg marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosThroughputMetricTag - // SetMsg unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + Msg() *otg.PatternFlowIpv4DscpEcnMetricTag + // SetMsg unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag - // ToProto marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag - ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosThroughputMetricTag to protobuf text + SetMsg(*otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag + // ToProto marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) + // ToPbText marshals PatternFlowIpv4DscpEcnMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosThroughputMetricTag to YAML text + // ToYaml marshals PatternFlowIpv4DscpEcnMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosThroughputMetricTag to JSON text + // ToJson marshals PatternFlowIpv4DscpEcnMetricTag to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag - FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf text + // FromProto unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosThroughputMetricTag from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpEcnMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosThroughputMetricTag from JSON text + // FromJson unmarshals PatternFlowIpv4DscpEcnMetricTag from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosThroughputMetricTag + // Validate validates PatternFlowIpv4DscpEcnMetricTag Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosThroughputMetricTag, error) + Clone() (PatternFlowIpv4DscpEcnMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosThroughputMetricTag. + // Name returns string, set in PatternFlowIpv4DscpEcnMetricTag. Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosThroughputMetricTag - SetName(value string) PatternFlowIpv4TosThroughputMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + // SetName assigns string provided by user to PatternFlowIpv4DscpEcnMetricTag + SetName(value string) PatternFlowIpv4DscpEcnMetricTag + // Offset returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag - SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosThroughputMetricTag + // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag + SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4DscpEcnMetricTag HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + // Length returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag - SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosThroughputMetricTag + // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag + SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4DscpEcnMetricTag HasLength() bool } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string -func (obj *patternFlowIpv4TosThroughputMetricTag) Name() string { +func (obj *patternFlowIpv4DscpEcnMetricTag) Name() string { return obj.obj.Name } // Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternFlowIpv4TosThroughputMetricTag { +// SetName sets the string value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv4DscpEcnMetricTag { obj.obj.Name = value return obj @@ -301748,7 +308632,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternF // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() uint32 { +func (obj *patternFlowIpv4DscpEcnMetricTag) Offset() uint32 { return *obj.obj.Offset @@ -301756,13 +308640,13 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() uint32 { // Offset in bits relative to start of corresponding header field // Offset returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) HasOffset() bool { +func (obj *patternFlowIpv4DscpEcnMetricTag) HasOffset() bool { return obj.obj.Offset != nil } // Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag { +// SetOffset sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag { obj.obj.Offset = &value return obj @@ -301770,7 +308654,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value uint32) Patter // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) Length() uint32 { +func (obj *patternFlowIpv4DscpEcnMetricTag) Length() uint32 { return *obj.obj.Length @@ -301778,83 +308662,83 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Length() uint32 { // Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) HasLength() bool { +func (obj *patternFlowIpv4DscpEcnMetricTag) HasLength() bool { return obj.obj.Length != nil } // Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag { +// SetLength sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag { obj.obj.Length = &value return obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpEcnMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } // Name is required if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosThroughputMetricTag") + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpEcnMetricTag") } if obj.obj.Offset != nil { - if *obj.obj.Offset > 0 { + if *obj.obj.Offset > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnMetricTag.Offset <= 1 but Got %d", *obj.obj.Offset)) } } if obj.obj.Length != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + if *obj.obj.Length < 1 || *obj.obj.Length > 2 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosThroughputMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + fmt.Sprintf("1 <= PatternFlowIpv4DscpEcnMetricTag.Length <= 2 but Got %d", *obj.obj.Length)) } } } -func (obj *patternFlowIpv4TosThroughputMetricTag) setDefault() { +func (obj *patternFlowIpv4DscpEcnMetricTag) setDefault() { if obj.obj.Offset == nil { obj.SetOffset(0) } if obj.obj.Length == nil { - obj.SetLength(1) + obj.SetLength(2) } } -// ***** PatternFlowIpv4TosReliabilityCounter ***** -type patternFlowIpv4TosReliabilityCounter struct { +// ***** IsisLspPrefixAttributes ***** +type isisLspPrefixAttributes struct { validation - obj *otg.PatternFlowIpv4TosReliabilityCounter + obj *otg.IsisLspPrefixAttributes } -func NewPatternFlowIpv4TosReliabilityCounter() PatternFlowIpv4TosReliabilityCounter { - obj := patternFlowIpv4TosReliabilityCounter{obj: &otg.PatternFlowIpv4TosReliabilityCounter{}} +func NewIsisLspPrefixAttributes() IsisLspPrefixAttributes { + obj := isisLspPrefixAttributes{obj: &otg.IsisLspPrefixAttributes{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosReliabilityCounter) Msg() *otg.PatternFlowIpv4TosReliabilityCounter { +func (obj *isisLspPrefixAttributes) Msg() *otg.IsisLspPrefixAttributes { return obj.obj } -func (obj *patternFlowIpv4TosReliabilityCounter) SetMsg(msg *otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter { +func (obj *isisLspPrefixAttributes) SetMsg(msg *otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) { +func (obj *isisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -301862,7 +308746,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlowIpv4 return obj.Msg(), nil } -func (obj *patternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) { +func (obj *isisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -301871,7 +308755,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.PatternFlowI return newObj, nil } -func (obj *patternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) { +func (obj *isisLspPrefixAttributes) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301883,7 +308767,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosReliabilityCounter) FromPbText(value string) error { +func (obj *isisLspPrefixAttributes) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -301896,7 +308780,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) FromPbText(value string) error return retObj } -func (obj *patternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { +func (obj *isisLspPrefixAttributes) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301917,7 +308801,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosReliabilityCounter) FromYaml(value string) error { +func (obj *isisLspPrefixAttributes) FromYaml(value string) error { if value == "" { value = "{}" } @@ -301942,7 +308826,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { +func (obj *isisLspPrefixAttributes) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -301960,7 +308844,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosReliabilityCounter) FromJson(value string) error { +func (obj *isisLspPrefixAttributes) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -301981,19 +308865,19 @@ func (obj *patternFlowIpv4TosReliabilityCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosReliabilityCounter) validateToAndFrom() error { +func (obj *isisLspPrefixAttributes) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityCounter) Validate() error { +func (obj *isisLspPrefixAttributes) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityCounter) String() string { +func (obj *isisLspPrefixAttributes) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -302001,12 +308885,12 @@ func (obj *patternFlowIpv4TosReliabilityCounter) String() string { return str } -func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReliabilityCounter, error) { +func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosReliabilityCounter() + newObj := NewIsisLspPrefixAttributes() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -302018,199 +308902,161 @@ func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReli return newObj, nil } -// PatternFlowIpv4TosReliabilityCounter is integer counter pattern -type PatternFlowIpv4TosReliabilityCounter interface { +// IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html +type IsisLspPrefixAttributes interface { Validation - // Msg marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + // Msg marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosReliabilityCounter - // SetMsg unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + Msg() *otg.IsisLspPrefixAttributes + // SetMsg unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter - // ToProto marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter - ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) - // ToPbText marshals PatternFlowIpv4TosReliabilityCounter to protobuf text + SetMsg(*otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes + // ToProto marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes + ToProto() (*otg.IsisLspPrefixAttributes, error) + // ToPbText marshals IsisLspPrefixAttributes to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosReliabilityCounter to YAML text + // ToYaml marshals IsisLspPrefixAttributes to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosReliabilityCounter to JSON text + // ToJson marshals IsisLspPrefixAttributes to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter - FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf text + // FromProto unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes + FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) + // FromPbText unmarshals IsisLspPrefixAttributes from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosReliabilityCounter from YAML text + // FromYaml unmarshals IsisLspPrefixAttributes from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosReliabilityCounter from JSON text + // FromJson unmarshals IsisLspPrefixAttributes from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosReliabilityCounter + // Validate validates IsisLspPrefixAttributes Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosReliabilityCounter, error) + Clone() (IsisLspPrefixAttributes, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosReliabilityCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosReliabilityCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosReliabilityCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosReliabilityCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosReliabilityCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosReliabilityCounter - HasCount() bool + // XFlag returns bool, set in IsisLspPrefixAttributes. + XFlag() bool + // SetXFlag assigns bool provided by user to IsisLspPrefixAttributes + SetXFlag(value bool) IsisLspPrefixAttributes + // HasXFlag checks if XFlag has been set in IsisLspPrefixAttributes + HasXFlag() bool + // RFlag returns bool, set in IsisLspPrefixAttributes. + RFlag() bool + // SetRFlag assigns bool provided by user to IsisLspPrefixAttributes + SetRFlag(value bool) IsisLspPrefixAttributes + // HasRFlag checks if RFlag has been set in IsisLspPrefixAttributes + HasRFlag() bool + // NFlag returns bool, set in IsisLspPrefixAttributes. + NFlag() bool + // SetNFlag assigns bool provided by user to IsisLspPrefixAttributes + SetNFlag(value bool) IsisLspPrefixAttributes + // HasNFlag checks if NFlag has been set in IsisLspPrefixAttributes + HasNFlag() bool } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Start() uint32 { +// External Prefix Flag (Bit 0) +// XFlag returns a bool +func (obj *isisLspPrefixAttributes) XFlag() bool { - return *obj.obj.Start + return *obj.obj.XFlag } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasStart() bool { - return obj.obj.Start != nil +// External Prefix Flag (Bit 0) +// XFlag returns a bool +func (obj *isisLspPrefixAttributes) HasXFlag() bool { + return obj.obj.XFlag != nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter { +// External Prefix Flag (Bit 0) +// SetXFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetXFlag(value bool) IsisLspPrefixAttributes { - obj.obj.Start = &value + obj.obj.XFlag = &value return obj } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Step() uint32 { +// Re-advertisement Flag (Bit 1) +// RFlag returns a bool +func (obj *isisLspPrefixAttributes) RFlag() bool { - return *obj.obj.Step + return *obj.obj.RFlag } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasStep() bool { - return obj.obj.Step != nil +// Re-advertisement Flag (Bit 1) +// RFlag returns a bool +func (obj *isisLspPrefixAttributes) HasRFlag() bool { + return obj.obj.RFlag != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter { +// Re-advertisement Flag (Bit 1) +// SetRFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetRFlag(value bool) IsisLspPrefixAttributes { - obj.obj.Step = &value + obj.obj.RFlag = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Count() uint32 { +// Node Flag (Bit 2) +// NFlag returns a bool +func (obj *isisLspPrefixAttributes) NFlag() bool { - return *obj.obj.Count + return *obj.obj.NFlag } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasCount() bool { - return obj.obj.Count != nil +// Node Flag (Bit 2) +// NFlag returns a bool +func (obj *isisLspPrefixAttributes) HasNFlag() bool { + return obj.obj.NFlag != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter { +// Node Flag (Bit 2) +// SetNFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetNFlag(value bool) IsisLspPrefixAttributes { - obj.obj.Count = &value + obj.obj.NFlag = &value return obj } -func (obj *patternFlowIpv4TosReliabilityCounter) validateObj(vObj *validation, set_default bool) { +func (obj *isisLspPrefixAttributes) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Count <= 1 but Got %d", *obj.obj.Count)) - } - - } - } -func (obj *patternFlowIpv4TosReliabilityCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) - } - if obj.obj.Count == nil { - obj.SetCount(1) - } +func (obj *isisLspPrefixAttributes) setDefault() { } -// ***** PatternFlowIpv4TosReliabilityMetricTag ***** -type patternFlowIpv4TosReliabilityMetricTag struct { +// ***** BgpV4EviVxlanBroadcastDomain ***** +type bgpV4EviVxlanBroadcastDomain struct { validation - obj *otg.PatternFlowIpv4TosReliabilityMetricTag + obj *otg.BgpV4EviVxlanBroadcastDomain + cmacIpRangeHolder BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter } -func NewPatternFlowIpv4TosReliabilityMetricTag() PatternFlowIpv4TosReliabilityMetricTag { - obj := patternFlowIpv4TosReliabilityMetricTag{obj: &otg.PatternFlowIpv4TosReliabilityMetricTag{}} +func NewBgpV4EviVxlanBroadcastDomain() BgpV4EviVxlanBroadcastDomain { + obj := bgpV4EviVxlanBroadcastDomain{obj: &otg.BgpV4EviVxlanBroadcastDomain{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Msg() *otg.PatternFlowIpv4TosReliabilityMetricTag { +func (obj *bgpV4EviVxlanBroadcastDomain) Msg() *otg.BgpV4EviVxlanBroadcastDomain { return obj.obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag { - +func (obj *bgpV4EviVxlanBroadcastDomain) SetMsg(msg *otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -302218,7 +309064,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternFlowIp return obj.Msg(), nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -302227,7 +309073,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.PatternFlo return newObj, nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302239,12 +309085,12 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) FromPbText(value string) error { +func (obj *bgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -302252,7 +309098,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromPbText(value string) erro return retObj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302273,7 +309119,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error { +func (obj *bgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { if value == "" { value = "{}" } @@ -302290,7 +309136,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -302298,7 +309144,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error return nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302316,7 +309162,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error { +func (obj *bgpV4EviVxlanBroadcastDomain) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -302329,7 +309175,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + obj.setNil() err := obj.validateToAndFrom() if err != nil { return err @@ -302337,19 +309183,19 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error return nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) validateToAndFrom() error { +func (obj *bgpV4EviVxlanBroadcastDomain) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Validate() error { +func (obj *bgpV4EviVxlanBroadcastDomain) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { +func (obj *bgpV4EviVxlanBroadcastDomain) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -302357,12 +309203,12 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosReliabilityMetricTag() + newObj := NewBgpV4EviVxlanBroadcastDomain() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -302374,182 +309220,252 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosRe return newObj, nil } -// PatternFlowIpv4TosReliabilityMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosReliabilityMetricTag interface { +func (obj *bgpV4EviVxlanBroadcastDomain) setNil() { + obj.cmacIpRangeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpV4EviVxlanBroadcastDomain is configuration for Broadcast Domains per EVI. +type BgpV4EviVxlanBroadcastDomain interface { Validation - // Msg marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + // Msg marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosReliabilityMetricTag - // SetMsg unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + Msg() *otg.BgpV4EviVxlanBroadcastDomain + // SetMsg unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag - // ToProto marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag - ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf text + SetMsg(*otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain + // ToProto marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain + ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) + // ToPbText marshals BgpV4EviVxlanBroadcastDomain to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosReliabilityMetricTag to YAML text + // ToYaml marshals BgpV4EviVxlanBroadcastDomain to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosReliabilityMetricTag to JSON text + // ToJson marshals BgpV4EviVxlanBroadcastDomain to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag - FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf text + // FromProto unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain + FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) + // FromPbText unmarshals BgpV4EviVxlanBroadcastDomain from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosReliabilityMetricTag from YAML text + // FromYaml unmarshals BgpV4EviVxlanBroadcastDomain from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosReliabilityMetricTag from JSON text + // FromJson unmarshals BgpV4EviVxlanBroadcastDomain from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosReliabilityMetricTag + // Validate validates BgpV4EviVxlanBroadcastDomain Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) + Clone() (BgpV4EviVxlanBroadcastDomain, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosReliabilityMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetName(value string) PatternFlowIpv4TosReliabilityMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosReliabilityMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosReliabilityMetricTag - HasLength() bool + // CmacIpRange returns BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIterIter, set in BgpV4EviVxlanBroadcastDomain + CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + // EthernetTagId returns uint32, set in BgpV4EviVxlanBroadcastDomain. + EthernetTagId() uint32 + // SetEthernetTagId assigns uint32 provided by user to BgpV4EviVxlanBroadcastDomain + SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain + // HasEthernetTagId checks if EthernetTagId has been set in BgpV4EviVxlanBroadcastDomain + HasEthernetTagId() bool + // VlanAwareService returns bool, set in BgpV4EviVxlanBroadcastDomain. + VlanAwareService() bool + // SetVlanAwareService assigns bool provided by user to BgpV4EviVxlanBroadcastDomain + SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain + // HasVlanAwareService checks if VlanAwareService has been set in BgpV4EviVxlanBroadcastDomain + HasVlanAwareService() bool + setNil() } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosReliabilityMetricTag) Name() string { +// This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. +// +// Advertises following route - +// Type 2 - MAC/IP Advertisement Route. +// CmacIpRange returns a []BgpCMacIpRange +func (obj *bgpV4EviVxlanBroadcastDomain) CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(obj.obj.CmacIpRange) == 0 { + obj.obj.CmacIpRange = []*otg.BgpCMacIpRange{} + } + if obj.cmacIpRangeHolder == nil { + obj.cmacIpRangeHolder = newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(&obj.obj.CmacIpRange).setMsg(obj) + } + return obj.cmacIpRangeHolder +} - return obj.obj.Name +type bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter struct { + obj *bgpV4EviVxlanBroadcastDomain + bgpCMacIpRangeSlice []BgpCMacIpRange + fieldPtr *[]*otg.BgpCMacIpRange } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) PatternFlowIpv4TosReliabilityMetricTag { +func newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(ptr *[]*otg.BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + return &bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter{fieldPtr: ptr} +} - obj.obj.Name = value +type BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter interface { + setMsg(*bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Items() []BgpCMacIpRange + Add() BgpCMacIpRange + Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter +} + +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) setMsg(msg *bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCMacIpRange{obj: val}) + } + obj.obj = msg return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) Offset() uint32 { +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Items() []BgpCMacIpRange { + return obj.bgpCMacIpRangeSlice +} - return *obj.obj.Offset +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Add() BgpCMacIpRange { + newObj := &otg.BgpCMacIpRange{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCMacIpRange{obj: newObj} + newLibObj.setDefault() + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, newLibObj) + return newLibObj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + for _, item := range items { + newObj := item.Msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + } + return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + (*obj.fieldPtr)[index] = newObj.Msg() + obj.bgpCMacIpRangeSlice[index] = newObj + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCMacIpRange{} + obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} + } + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(obj.bgpCMacIpRangeSlice) > 0 { + obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} + } + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + return obj } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag { +// The Ethernet Tag ID of the Broadcast Domain. +// EthernetTagId returns a uint32 +func (obj *bgpV4EviVxlanBroadcastDomain) EthernetTagId() uint32 { - obj.obj.Offset = &value + return *obj.obj.EthernetTagId + +} + +// The Ethernet Tag ID of the Broadcast Domain. +// EthernetTagId returns a uint32 +func (obj *bgpV4EviVxlanBroadcastDomain) HasEthernetTagId() bool { + return obj.obj.EthernetTagId != nil +} + +// The Ethernet Tag ID of the Broadcast Domain. +// SetEthernetTagId sets the uint32 value in the BgpV4EviVxlanBroadcastDomain object +func (obj *bgpV4EviVxlanBroadcastDomain) SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain { + + obj.obj.EthernetTagId = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) Length() uint32 { +// VLAN-Aware service to be enabled or disabled. +// VlanAwareService returns a bool +func (obj *bgpV4EviVxlanBroadcastDomain) VlanAwareService() bool { - return *obj.obj.Length + return *obj.obj.VlanAwareService } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) HasLength() bool { - return obj.obj.Length != nil +// VLAN-Aware service to be enabled or disabled. +// VlanAwareService returns a bool +func (obj *bgpV4EviVxlanBroadcastDomain) HasVlanAwareService() bool { + return obj.obj.VlanAwareService != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag { +// VLAN-Aware service to be enabled or disabled. +// SetVlanAwareService sets the bool value in the BgpV4EviVxlanBroadcastDomain object +func (obj *bgpV4EviVxlanBroadcastDomain) SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain { - obj.obj.Length = &value + obj.obj.VlanAwareService = &value return obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpV4EviVxlanBroadcastDomain) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosReliabilityMetricTag") - } - - if obj.obj.Offset != nil { + if len(obj.obj.CmacIpRange) != 0 { - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + if set_default { + obj.CmacIpRange().clearHolderSlice() + for _, item := range obj.obj.CmacIpRange { + obj.CmacIpRange().appendHolderSlice(&bgpCMacIpRange{obj: item}) + } } - - } - - if obj.obj.Length != nil { - - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosReliabilityMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + for _, item := range obj.CmacIpRange().Items() { + item.validateObj(vObj, set_default) } } } -func (obj *patternFlowIpv4TosReliabilityMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpV4EviVxlanBroadcastDomain) setDefault() { + if obj.obj.EthernetTagId == nil { + obj.SetEthernetTagId(0) } - if obj.obj.Length == nil { - obj.SetLength(1) + if obj.obj.VlanAwareService == nil { + obj.SetVlanAwareService(false) } } -// ***** PatternFlowIpv4TosMonetaryCounter ***** -type patternFlowIpv4TosMonetaryCounter struct { +// ***** BgpRouteDistinguisher ***** +type bgpRouteDistinguisher struct { validation - obj *otg.PatternFlowIpv4TosMonetaryCounter + obj *otg.BgpRouteDistinguisher } -func NewPatternFlowIpv4TosMonetaryCounter() PatternFlowIpv4TosMonetaryCounter { - obj := patternFlowIpv4TosMonetaryCounter{obj: &otg.PatternFlowIpv4TosMonetaryCounter{}} +func NewBgpRouteDistinguisher() BgpRouteDistinguisher { + obj := bgpRouteDistinguisher{obj: &otg.BgpRouteDistinguisher{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosMonetaryCounter) Msg() *otg.PatternFlowIpv4TosMonetaryCounter { +func (obj *bgpRouteDistinguisher) Msg() *otg.BgpRouteDistinguisher { return obj.obj } -func (obj *patternFlowIpv4TosMonetaryCounter) SetMsg(msg *otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter { +func (obj *bgpRouteDistinguisher) SetMsg(msg *otg.BgpRouteDistinguisher) BgpRouteDistinguisher { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) { +func (obj *bgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -302557,7 +309473,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIpv4Tos return obj.Msg(), nil } -func (obj *patternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) { +func (obj *bgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -302566,7 +309482,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternFlowIpv4 return newObj, nil } -func (obj *patternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { +func (obj *bgpRouteDistinguisher) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302578,7 +309494,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosMonetaryCounter) FromPbText(value string) error { +func (obj *bgpRouteDistinguisher) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -302591,7 +309507,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { +func (obj *bgpRouteDistinguisher) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302612,7 +309528,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosMonetaryCounter) FromYaml(value string) error { +func (obj *bgpRouteDistinguisher) FromYaml(value string) error { if value == "" { value = "{}" } @@ -302637,7 +309553,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { +func (obj *bgpRouteDistinguisher) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302655,7 +309571,7 @@ func (obj *patternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosMonetaryCounter) FromJson(value string) error { +func (obj *bgpRouteDistinguisher) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -302676,19 +309592,19 @@ func (obj *patternFlowIpv4TosMonetaryCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosMonetaryCounter) validateToAndFrom() error { +func (obj *bgpRouteDistinguisher) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryCounter) Validate() error { +func (obj *bgpRouteDistinguisher) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryCounter) String() string { +func (obj *bgpRouteDistinguisher) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -302696,12 +309612,12 @@ func (obj *patternFlowIpv4TosMonetaryCounter) String() string { return str } -func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetaryCounter, error) { +func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosMonetaryCounter() + newObj := NewBgpRouteDistinguisher() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -302713,199 +309629,184 @@ func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetar return newObj, nil } -// PatternFlowIpv4TosMonetaryCounter is integer counter pattern -type PatternFlowIpv4TosMonetaryCounter interface { +// BgpRouteDistinguisher is bGP Route Distinguisher. +type BgpRouteDistinguisher interface { Validation - // Msg marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // Msg marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosMonetaryCounter - // SetMsg unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + Msg() *otg.BgpRouteDistinguisher + // SetMsg unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter - // ToProto marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter - ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) - // ToPbText marshals PatternFlowIpv4TosMonetaryCounter to protobuf text + SetMsg(*otg.BgpRouteDistinguisher) BgpRouteDistinguisher + // ToProto marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher + ToProto() (*otg.BgpRouteDistinguisher, error) + // ToPbText marshals BgpRouteDistinguisher to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosMonetaryCounter to YAML text + // ToYaml marshals BgpRouteDistinguisher to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosMonetaryCounter to JSON text + // ToJson marshals BgpRouteDistinguisher to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter - FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf text + // FromProto unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher + FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) + // FromPbText unmarshals BgpRouteDistinguisher from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosMonetaryCounter from YAML text + // FromYaml unmarshals BgpRouteDistinguisher from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosMonetaryCounter from JSON text + // FromJson unmarshals BgpRouteDistinguisher from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosMonetaryCounter + // Validate validates BgpRouteDistinguisher Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosMonetaryCounter, error) + Clone() (BgpRouteDistinguisher, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosMonetaryCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosMonetaryCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosMonetaryCounter - HasCount() bool + // RdType returns BgpRouteDistinguisherRdTypeEnum, set in BgpRouteDistinguisher + RdType() BgpRouteDistinguisherRdTypeEnum + // SetRdType assigns BgpRouteDistinguisherRdTypeEnum provided by user to BgpRouteDistinguisher + SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher + // HasRdType checks if RdType has been set in BgpRouteDistinguisher + HasRdType() bool + // AutoConfigRdIpAddr returns bool, set in BgpRouteDistinguisher. + AutoConfigRdIpAddr() bool + // SetAutoConfigRdIpAddr assigns bool provided by user to BgpRouteDistinguisher + SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher + // HasAutoConfigRdIpAddr checks if AutoConfigRdIpAddr has been set in BgpRouteDistinguisher + HasAutoConfigRdIpAddr() bool + // RdValue returns string, set in BgpRouteDistinguisher. + RdValue() string + // SetRdValue assigns string provided by user to BgpRouteDistinguisher + SetRdValue(value string) BgpRouteDistinguisher + // HasRdValue checks if RdValue has been set in BgpRouteDistinguisher + HasRdValue() bool } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Start() uint32 { +type BgpRouteDistinguisherRdTypeEnum string - return *obj.obj.Start +// Enum of RdType on BgpRouteDistinguisher +var BgpRouteDistinguisherRdType = struct { + AS_2OCTET BgpRouteDistinguisherRdTypeEnum + IPV4_ADDRESS BgpRouteDistinguisherRdTypeEnum + AS_4OCTET BgpRouteDistinguisherRdTypeEnum +}{ + AS_2OCTET: BgpRouteDistinguisherRdTypeEnum("as_2octet"), + IPV4_ADDRESS: BgpRouteDistinguisherRdTypeEnum("ipv4_address"), + AS_4OCTET: BgpRouteDistinguisherRdTypeEnum("as_4octet"), +} +func (obj *bgpRouteDistinguisher) RdType() BgpRouteDistinguisherRdTypeEnum { + return BgpRouteDistinguisherRdTypeEnum(obj.obj.RdType.Enum().String()) } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasStart() bool { - return obj.obj.Start != nil +// Route Distinguisher Type field of 2 Byte. +// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). +// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). +// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). +// RdType returns a string +func (obj *bgpRouteDistinguisher) HasRdType() bool { + return obj.obj.RdType != nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter { +func (obj *bgpRouteDistinguisher) SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher { + intValue, ok := otg.BgpRouteDistinguisher_RdType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpRouteDistinguisherRdTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpRouteDistinguisher_RdType_Enum(intValue) + obj.obj.RdType = &enumValue - obj.obj.Start = &value return obj } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Step() uint32 { +// Allow to automatically configure RD IP address from local ip. +// AutoConfigRdIpAddr returns a bool +func (obj *bgpRouteDistinguisher) AutoConfigRdIpAddr() bool { - return *obj.obj.Step + return *obj.obj.AutoConfigRdIpAddr } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasStep() bool { - return obj.obj.Step != nil +// Allow to automatically configure RD IP address from local ip. +// AutoConfigRdIpAddr returns a bool +func (obj *bgpRouteDistinguisher) HasAutoConfigRdIpAddr() bool { + return obj.obj.AutoConfigRdIpAddr != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter { +// Allow to automatically configure RD IP address from local ip. +// SetAutoConfigRdIpAddr sets the bool value in the BgpRouteDistinguisher object +func (obj *bgpRouteDistinguisher) SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher { - obj.obj.Step = &value + obj.obj.AutoConfigRdIpAddr = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Count() uint32 { +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RdValue returns a string +func (obj *bgpRouteDistinguisher) RdValue() string { - return *obj.obj.Count + return *obj.obj.RdValue } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasCount() bool { - return obj.obj.Count != nil +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RdValue returns a string +func (obj *bgpRouteDistinguisher) HasRdValue() bool { + return obj.obj.RdValue != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter { +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// SetRdValue sets the string value in the BgpRouteDistinguisher object +func (obj *bgpRouteDistinguisher) SetRdValue(value string) BgpRouteDistinguisher { - obj.obj.Count = &value + obj.obj.RdValue = &value return obj } -func (obj *patternFlowIpv4TosMonetaryCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpRouteDistinguisher) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Count <= 1 but Got %d", *obj.obj.Count)) - } - - } - } -func (obj *patternFlowIpv4TosMonetaryCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpRouteDistinguisher) setDefault() { + if obj.obj.RdType == nil { + obj.SetRdType(BgpRouteDistinguisherRdType.AS_2OCTET) + } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.AutoConfigRdIpAddr == nil { + obj.SetAutoConfigRdIpAddr(false) } } -// ***** PatternFlowIpv4TosMonetaryMetricTag ***** -type patternFlowIpv4TosMonetaryMetricTag struct { +// ***** BgpRouteTarget ***** +type bgpRouteTarget struct { validation - obj *otg.PatternFlowIpv4TosMonetaryMetricTag + obj *otg.BgpRouteTarget } -func NewPatternFlowIpv4TosMonetaryMetricTag() PatternFlowIpv4TosMonetaryMetricTag { - obj := patternFlowIpv4TosMonetaryMetricTag{obj: &otg.PatternFlowIpv4TosMonetaryMetricTag{}} +func NewBgpRouteTarget() BgpRouteTarget { + obj := bgpRouteTarget{obj: &otg.BgpRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Msg() *otg.PatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteTarget) Msg() *otg.BgpRouteTarget { return obj.obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteTarget) SetMsg(msg *otg.BgpRouteTarget) BgpRouteTarget { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) { +func (obj *bgpRouteTarget) ToProto() (*otg.BgpRouteTarget, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -302913,7 +309814,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlowIpv4T return obj.Msg(), nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) { +func (obj *bgpRouteTarget) FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -302922,7 +309823,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.PatternFlowIp return newObj, nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) { +func (obj *bgpRouteTarget) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302934,7 +309835,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) error { +func (obj *bgpRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -302947,7 +309848,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { +func (obj *bgpRouteTarget) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -302968,7 +309869,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) error { +func (obj *bgpRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -302993,7 +309894,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { +func (obj *bgpRouteTarget) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303011,7 +309912,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) FromJson(value string) error { +func (obj *bgpRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -303032,19 +309933,19 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) validateToAndFrom() error { +func (obj *bgpRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Validate() error { +func (obj *bgpRouteTarget) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { +func (obj *bgpRouteTarget) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -303052,12 +309953,12 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) { +func (obj *bgpRouteTarget) Clone() (BgpRouteTarget, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosMonetaryMetricTag() + newObj := NewBgpRouteTarget() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -303069,182 +309970,149 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonet return newObj, nil } -// PatternFlowIpv4TosMonetaryMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosMonetaryMetricTag interface { +// BgpRouteTarget is bGP Route Target. +type BgpRouteTarget interface { Validation - // Msg marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + // Msg marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosMonetaryMetricTag - // SetMsg unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + Msg() *otg.BgpRouteTarget + // SetMsg unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag - // ToProto marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag - ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf text + SetMsg(*otg.BgpRouteTarget) BgpRouteTarget + // ToProto marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget + ToProto() (*otg.BgpRouteTarget, error) + // ToPbText marshals BgpRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosMonetaryMetricTag to YAML text + // ToYaml marshals BgpRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosMonetaryMetricTag to JSON text + // ToJson marshals BgpRouteTarget to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag - FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf text + // FromProto unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget + FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) + // FromPbText unmarshals BgpRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosMonetaryMetricTag from YAML text + // FromYaml unmarshals BgpRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosMonetaryMetricTag from JSON text + // FromJson unmarshals BgpRouteTarget from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosMonetaryMetricTag + // Validate validates BgpRouteTarget Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) + Clone() (BgpRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosMonetaryMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetName(value string) PatternFlowIpv4TosMonetaryMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosMonetaryMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosMonetaryMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosMonetaryMetricTag) Name() string { - - return obj.obj.Name + // RtType returns BgpRouteTargetRtTypeEnum, set in BgpRouteTarget + RtType() BgpRouteTargetRtTypeEnum + // SetRtType assigns BgpRouteTargetRtTypeEnum provided by user to BgpRouteTarget + SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget + // HasRtType checks if RtType has been set in BgpRouteTarget + HasRtType() bool + // RtValue returns string, set in BgpRouteTarget. + RtValue() string + // SetRtValue assigns string provided by user to BgpRouteTarget + SetRtValue(value string) BgpRouteTarget + // HasRtValue checks if RtValue has been set in BgpRouteTarget + HasRtValue() bool } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlowIpv4TosMonetaryMetricTag { +type BgpRouteTargetRtTypeEnum string - obj.obj.Name = value - return obj +// Enum of RtType on BgpRouteTarget +var BgpRouteTargetRtType = struct { + AS_2OCTET BgpRouteTargetRtTypeEnum + IPV4_ADDRESS BgpRouteTargetRtTypeEnum + AS_4OCTET BgpRouteTargetRtTypeEnum +}{ + AS_2OCTET: BgpRouteTargetRtTypeEnum("as_2octet"), + IPV4_ADDRESS: BgpRouteTargetRtTypeEnum("ipv4_address"), + AS_4OCTET: BgpRouteTargetRtTypeEnum("as_4octet"), } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) Offset() uint32 { - - return *obj.obj.Offset - +func (obj *bgpRouteTarget) RtType() BgpRouteTargetRtTypeEnum { + return BgpRouteTargetRtTypeEnum(obj.obj.RtType.Enum().String()) } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// Extended Community Type field of 2 Byte. +// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). +// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). +// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). +// RtType returns a string +func (obj *bgpRouteTarget) HasRtType() bool { + return obj.obj.RtType != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteTarget) SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget { + intValue, ok := otg.BgpRouteTarget_RtType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpRouteTargetRtTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpRouteTarget_RtType_Enum(intValue) + obj.obj.RtType = &enumValue - obj.obj.Offset = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) Length() uint32 { +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RtValue returns a string +func (obj *bgpRouteTarget) RtValue() string { - return *obj.obj.Length + return *obj.obj.RtValue } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) HasLength() bool { - return obj.obj.Length != nil +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RtValue returns a string +func (obj *bgpRouteTarget) HasRtValue() bool { + return obj.obj.RtValue != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag { +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// SetRtValue sets the string value in the BgpRouteTarget object +func (obj *bgpRouteTarget) SetRtValue(value string) BgpRouteTarget { - obj.obj.Length = &value + obj.obj.RtValue = &value return obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosMonetaryMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { - - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosMonetaryMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) - } - - } - } -func (obj *patternFlowIpv4TosMonetaryMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) - } - if obj.obj.Length == nil { - obj.SetLength(1) - } +func (obj *bgpRouteTarget) setDefault() { } -// ***** PatternFlowIpv4TosUnusedCounter ***** -type patternFlowIpv4TosUnusedCounter struct { +// ***** BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget ***** +type bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4TosUnusedCounter + obj *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget } -func NewPatternFlowIpv4TosUnusedCounter() PatternFlowIpv4TosUnusedCounter { - obj := patternFlowIpv4TosUnusedCounter{obj: &otg.PatternFlowIpv4TosUnusedCounter{}} +func NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + obj := bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosUnusedCounter) Msg() *otg.PatternFlowIpv4TosUnusedCounter { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4TosUnusedCounter) SetMsg(msg *otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -303252,7 +310120,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4TosUn return obj.Msg(), nil } -func (obj *patternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -303261,7 +310129,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlowIpv4To return newObj, nil } -func (obj *patternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303273,7 +310141,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosUnusedCounter) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -303286,7 +310154,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303307,7 +310175,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosUnusedCounter) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -303332,7 +310200,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosUnusedCounter) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303350,7 +310218,7 @@ func (obj *patternFlowIpv4TosUnusedCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosUnusedCounter) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -303371,19 +310239,19 @@ func (obj *patternFlowIpv4TosUnusedCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosUnusedCounter) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedCounter) Validate() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedCounter) String() string { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -303391,12 +310259,12 @@ func (obj *patternFlowIpv4TosUnusedCounter) String() string { return str } -func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCounter, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosUnusedCounter() + newObj := NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -303408,199 +310276,148 @@ func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCou return newObj, nil } -// PatternFlowIpv4TosUnusedCounter is integer counter pattern -type PatternFlowIpv4TosUnusedCounter interface { +// BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. +type BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget interface { Validation - // Msg marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter + // Msg marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosUnusedCounter - // SetMsg unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter + Msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // SetMsg unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter - // ToProto marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter - ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) - // ToPbText marshals PatternFlowIpv4TosUnusedCounter to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosUnusedCounter to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosUnusedCounter to JSON text + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter - FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosUnusedCounter from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosUnusedCounter from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosUnusedCounter from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosUnusedCounter + // Validate validates BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosUnusedCounter, error) + Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetStart(value uint32) PatternFlowIpv4TosUnusedCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosUnusedCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetStep(value uint32) PatternFlowIpv4TosUnusedCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosUnusedCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetCount(value uint32) PatternFlowIpv4TosUnusedCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosUnusedCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasStart() bool { - return obj.obj.Start != nil -} - -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetStart(value uint32) PatternFlowIpv4TosUnusedCounter { - - obj.obj.Start = &value - return obj + // Global2ByteAs returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + HasGlobal2ByteAs() bool + // Local4ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget. + Local4ByteAdmin() uint32 + // SetLocal4ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // HasLocal4ByteAdmin checks if Local4ByteAdmin has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + HasLocal4ByteAdmin() bool } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Step() uint32 { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Global2ByteAs() uint32 { - return *obj.obj.Step + return *obj.obj.Global_2ByteAs } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasStep() bool { - return obj.obj.Step != nil +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetStep(value uint32) PatternFlowIpv4TosUnusedCounter { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - obj.obj.Step = &value + obj.obj.Global_2ByteAs = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Count() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Local4ByteAdmin() uint32 { - return *obj.obj.Count + return *obj.obj.Local_4ByteAdmin } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasCount() bool { - return obj.obj.Count != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) HasLocal4ByteAdmin() bool { + return obj.obj.Local_4ByteAdmin != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetCount(value uint32) PatternFlowIpv4TosUnusedCounter { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal4ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - obj.obj.Count = &value + obj.obj.Local_4ByteAdmin = &value return obj } -func (obj *patternFlowIpv4TosUnusedCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { + if obj.obj.Global_2ByteAs != nil { - if *obj.obj.Count > 1 { + if *obj.obj.Global_2ByteAs > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Count <= 1 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) } } } -func (obj *patternFlowIpv4TosUnusedCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) } - if obj.obj.Step == nil { - obj.SetStep(1) - } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.Local_4ByteAdmin == nil { + obj.SetLocal4ByteAdmin(1) } } -// ***** PatternFlowIpv4TosUnusedMetricTag ***** -type patternFlowIpv4TosUnusedMetricTag struct { +// ***** BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin ***** +type bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4TosUnusedMetricTag + obj *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin } -func NewPatternFlowIpv4TosUnusedMetricTag() PatternFlowIpv4TosUnusedMetricTag { - obj := patternFlowIpv4TosUnusedMetricTag{obj: &otg.PatternFlowIpv4TosUnusedMetricTag{}} +func NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { + obj := bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) Msg() *otg.PatternFlowIpv4TosUnusedMetricTag { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) SetMsg(msg *otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -303608,7 +310425,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIpv4Tos return obj.Msg(), nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -303617,7 +310434,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternFlowIpv4 return newObj, nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303629,7 +310446,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -303642,7 +310459,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303663,7 +310480,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -303688,7 +310505,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303706,7 +310523,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -303727,19 +310544,19 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedMetricTag) Validate() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -303747,12 +310564,12 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosUnusedMetricTag() + newObj := NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -303764,182 +310581,148 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedM return newObj, nil } -// PatternFlowIpv4TosUnusedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosUnusedMetricTag interface { +// BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . +type BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin interface { Validation - // Msg marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + // Msg marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin // and doesn't set defaults - Msg() *otg.PatternFlowIpv4TosUnusedMetricTag - // SetMsg unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + Msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // SetMsg unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag - // ToProto marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag - ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosUnusedMetricTag to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosUnusedMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosUnusedMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag - FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosUnusedMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosUnusedMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4TosUnusedMetricTag + // Validate validates BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosUnusedMetricTag, error) + Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosUnusedMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosUnusedMetricTag - SetName(value string) PatternFlowIpv4TosUnusedMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag - SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosUnusedMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag - SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosUnusedMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosUnusedMetricTag) Name() string { - - return obj.obj.Name -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowIpv4TosUnusedMetricTag { - - obj.obj.Name = value - return obj + // Global2ByteAs returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + HasGlobal2ByteAs() bool + // Local4ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin. + Local4ByteAdmin() uint32 + // SetLocal4ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // HasLocal4ByteAdmin checks if Local4ByteAdmin has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + HasLocal4ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) Offset() uint32 { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Global2ByteAs() uint32 { - return *obj.obj.Offset + return *obj.obj.Global_2ByteAs } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - obj.obj.Offset = &value + obj.obj.Global_2ByteAs = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Local4ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_4ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) HasLocal4ByteAdmin() bool { + return obj.obj.Local_4ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal4ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - obj.obj.Length = &value + obj.obj.Local_4ByteAdmin = &value return obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosUnusedMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { + if obj.obj.Global_2ByteAs != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + if *obj.obj.Global_2ByteAs > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosUnusedMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) } } } -func (obj *patternFlowIpv4TosUnusedMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) } - if obj.obj.Length == nil { - obj.SetLength(1) + if obj.obj.Local_4ByteAdmin == nil { + obj.SetLocal4ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpPhbCounter ***** -type patternFlowIpv4DscpPhbCounter struct { +// ***** BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget ***** +type bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4DscpPhbCounter + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget } -func NewPatternFlowIpv4DscpPhbCounter() PatternFlowIpv4DscpPhbCounter { - obj := patternFlowIpv4DscpPhbCounter{obj: &otg.PatternFlowIpv4DscpPhbCounter{}} +func NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + obj := bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpPhbCounter) Msg() *otg.PatternFlowIpv4DscpPhbCounter { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4DscpPhbCounter) SetMsg(msg *otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -303947,7 +310730,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4DscpPhb return obj.Msg(), nil } -func (obj *patternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -303956,7 +310739,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowIpv4Dscp return newObj, nil } -func (obj *patternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -303968,7 +310751,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4DscpPhbCounter) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -303981,7 +310764,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304002,7 +310785,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpPhbCounter) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -304027,7 +310810,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbCounter) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304045,7 +310828,7 @@ func (obj *patternFlowIpv4DscpPhbCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpPhbCounter) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -304066,19 +310849,19 @@ func (obj *patternFlowIpv4DscpPhbCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbCounter) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbCounter) Validate() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbCounter) String() string { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -304086,216 +310869,174 @@ func (obj *patternFlowIpv4DscpPhbCounter) String() string { return str } -func (obj *patternFlowIpv4DscpPhbCounter) Clone() (PatternFlowIpv4DscpPhbCounter, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpPhbCounter() + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err - } - pbErr := proto.Unmarshal(data, newObj.Msg()) - if pbErr != nil { - return nil, pbErr - } - return newObj, nil -} - -// PatternFlowIpv4DscpPhbCounter is integer counter pattern -type PatternFlowIpv4DscpPhbCounter interface { - Validation - // Msg marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter - // and doesn't set defaults - Msg() *otg.PatternFlowIpv4DscpPhbCounter - // SetMsg unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter - // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter - // ToProto marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter - ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) - // ToPbText marshals PatternFlowIpv4DscpPhbCounter to protobuf text - ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpPhbCounter to YAML text - ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpPhbCounter to JSON text - ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter - FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) - // FromPbText unmarshals PatternFlowIpv4DscpPhbCounter from protobuf text - FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpPhbCounter from YAML text - FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpPhbCounter from JSON text - FromJson(value string) error - // Validate validates PatternFlowIpv4DscpPhbCounter - Validate() error - // A stringer function - String() string - // Clones the object - Clone() (PatternFlowIpv4DscpPhbCounter, error) - validateToAndFrom() error - validateObj(vObj *validation, set_default bool) - setDefault() - // Start returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetStart(value uint32) PatternFlowIpv4DscpPhbCounter - // HasStart checks if Start has been set in PatternFlowIpv4DscpPhbCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetStep(value uint32) PatternFlowIpv4DscpPhbCounter - // HasStep checks if Step has been set in PatternFlowIpv4DscpPhbCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetCount(value uint32) PatternFlowIpv4DscpPhbCounter - // HasCount checks if Count has been set in PatternFlowIpv4DscpPhbCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasStart() bool { - return obj.obj.Start != nil + } + pbErr := proto.Unmarshal(data, newObj.Msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetStart(value uint32) PatternFlowIpv4DscpPhbCounter { - - obj.obj.Start = &value - return obj +// BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget interface { + Validation + // Msg marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // and doesn't set defaults + Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // SetMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // and doesn't set defaults + SetMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to JSON text + ToJson() (string, error) + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from JSON text + FromJson(value string) error + // Validate validates BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + Validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // GlobalIpv4Admin returns string, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget. + GlobalIpv4Admin() string + // SetGlobalIpv4Admin assigns string provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // HasGlobalIpv4Admin checks if GlobalIpv4Admin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + HasGlobalIpv4Admin() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + HasLocal2ByteAdmin() bool } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Step() uint32 { +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GlobalIpv4Admin() string { - return *obj.obj.Step + return *obj.obj.GlobalIpv4Admin } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasStep() bool { - return obj.obj.Step != nil +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) HasGlobalIpv4Admin() bool { + return obj.obj.GlobalIpv4Admin != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetStep(value uint32) PatternFlowIpv4DscpPhbCounter { +// An IPv4 unicast address assigned by one of the Internet registries. +// SetGlobalIpv4Admin sets the string value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - obj.obj.Step = &value + obj.obj.GlobalIpv4Admin = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Count() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Local2ByteAdmin() uint32 { - return *obj.obj.Count + return *obj.obj.Local_2ByteAdmin } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasCount() bool { - return obj.obj.Count != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetCount(value uint32) PatternFlowIpv4DscpPhbCounter { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - obj.obj.Count = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpPhbCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 63 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Start <= 63 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { + if obj.obj.GlobalIpv4Admin != nil { - if *obj.obj.Step > 63 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Step <= 63 but Got %d", *obj.obj.Step)) + err := obj.validateIpv4(obj.GlobalIpv4Admin()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.GlobalIpv4Admin")) } } - if obj.obj.Count != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Count > 63 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Count <= 63 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpPhbCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) setDefault() { + if obj.obj.GlobalIpv4Admin == nil { + obj.SetGlobalIpv4Admin("0.0.0.0") } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpPhbMetricTag ***** -type patternFlowIpv4DscpPhbMetricTag struct { +// ***** BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin ***** +type bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4DscpPhbMetricTag + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin } -func NewPatternFlowIpv4DscpPhbMetricTag() PatternFlowIpv4DscpPhbMetricTag { - obj := patternFlowIpv4DscpPhbMetricTag{obj: &otg.PatternFlowIpv4DscpPhbMetricTag{}} +func NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + obj := bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) Msg() *otg.PatternFlowIpv4DscpPhbMetricTag { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) SetMsg(msg *otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -304303,7 +311044,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4DscpP return obj.Msg(), nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -304312,7 +311053,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlowIpv4Ds return newObj, nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304324,7 +311065,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -304337,7 +311078,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304358,7 +311099,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -304383,7 +311124,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304401,7 +311142,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -304422,19 +311163,19 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbMetricTag) Validate() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -304442,12 +311183,12 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { return str } -func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetricTag, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpPhbMetricTag() + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -304459,182 +311200,157 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetri return newObj, nil } -// PatternFlowIpv4DscpPhbMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4DscpPhbMetricTag interface { +// BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin interface { Validation - // Msg marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + // Msg marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin // and doesn't set defaults - Msg() *otg.PatternFlowIpv4DscpPhbMetricTag - // SetMsg unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + Msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // SetMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag - // ToProto marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag - ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) - // ToPbText marshals PatternFlowIpv4DscpPhbMetricTag to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpPhbMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpPhbMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag - FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpPhbMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpPhbMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4DscpPhbMetricTag + // Validate validates BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpPhbMetricTag, error) + Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4DscpPhbMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4DscpPhbMetricTag - SetName(value string) PatternFlowIpv4DscpPhbMetricTag - // Offset returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag - SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4DscpPhbMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag - SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4DscpPhbMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4DscpPhbMetricTag) Name() string { - - return obj.obj.Name -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv4DscpPhbMetricTag { - - obj.obj.Name = value - return obj + // GlobalIpv4Admin returns string, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin. + GlobalIpv4Admin() string + // SetGlobalIpv4Admin assigns string provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // HasGlobalIpv4Admin checks if GlobalIpv4Admin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + HasGlobalIpv4Admin() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + HasLocal2ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) Offset() uint32 { +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GlobalIpv4Admin() string { - return *obj.obj.Offset + return *obj.obj.GlobalIpv4Admin } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) HasGlobalIpv4Admin() bool { + return obj.obj.GlobalIpv4Admin != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag { +// An IPv4 unicast address assigned by one of the Internet registries. +// SetGlobalIpv4Admin sets the string value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { - obj.obj.Offset = &value + obj.obj.GlobalIpv4Admin = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Local2ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_2ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { - obj.obj.Length = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpPhbMetricTag") - } - - if obj.obj.Offset != nil { + if obj.obj.GlobalIpv4Admin != nil { - if *obj.obj.Offset > 5 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbMetricTag.Offset <= 5 but Got %d", *obj.obj.Offset)) + err := obj.validateIpv4(obj.GlobalIpv4Admin()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.GlobalIpv4Admin")) } } - if obj.obj.Length != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 6 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4DscpPhbMetricTag.Length <= 6 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpPhbMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) setDefault() { + if obj.obj.GlobalIpv4Admin == nil { + obj.SetGlobalIpv4Admin("0.0.0.0") } - if obj.obj.Length == nil { - obj.SetLength(6) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpEcnCounter ***** -type patternFlowIpv4DscpEcnCounter struct { +// ***** BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget ***** +type bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4DscpEcnCounter + obj *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget } -func NewPatternFlowIpv4DscpEcnCounter() PatternFlowIpv4DscpEcnCounter { - obj := patternFlowIpv4DscpEcnCounter{obj: &otg.PatternFlowIpv4DscpEcnCounter{}} +func NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + obj := bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpEcnCounter) Msg() *otg.PatternFlowIpv4DscpEcnCounter { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4DscpEcnCounter) SetMsg(msg *otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -304642,7 +311358,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4DscpEcn return obj.Msg(), nil } -func (obj *patternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -304651,7 +311367,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowIpv4Dscp return newObj, nil } -func (obj *patternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304663,7 +311379,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4DscpEcnCounter) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -304676,7 +311392,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304697,7 +311413,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpEcnCounter) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -304722,7 +311438,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnCounter) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -304740,7 +311456,7 @@ func (obj *patternFlowIpv4DscpEcnCounter) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpEcnCounter) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -304761,19 +311477,19 @@ func (obj *patternFlowIpv4DscpEcnCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnCounter) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnCounter) Validate() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnCounter) String() string { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -304781,12 +311497,12 @@ func (obj *patternFlowIpv4DscpEcnCounter) String() string { return str } -func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpEcnCounter() + newObj := NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -304798,199 +311514,148 @@ func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter return newObj, nil } -// PatternFlowIpv4DscpEcnCounter is integer counter pattern -type PatternFlowIpv4DscpEcnCounter interface { +// BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 +type BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget interface { Validation - // Msg marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter + // Msg marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget // and doesn't set defaults - Msg() *otg.PatternFlowIpv4DscpEcnCounter - // SetMsg unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter + Msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // SetMsg unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter - // ToProto marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter - ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) - // ToPbText marshals PatternFlowIpv4DscpEcnCounter to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpEcnCounter to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpEcnCounter to JSON text + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter - FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) - // FromPbText unmarshals PatternFlowIpv4DscpEcnCounter from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpEcnCounter from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpEcnCounter from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4DscpEcnCounter + // Validate validates BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpEcnCounter, error) + Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetStart(value uint32) PatternFlowIpv4DscpEcnCounter - // HasStart checks if Start has been set in PatternFlowIpv4DscpEcnCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetStep(value uint32) PatternFlowIpv4DscpEcnCounter - // HasStep checks if Step has been set in PatternFlowIpv4DscpEcnCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetCount(value uint32) PatternFlowIpv4DscpEcnCounter - // HasCount checks if Count has been set in PatternFlowIpv4DscpEcnCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasStart() bool { - return obj.obj.Start != nil -} - -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetStart(value uint32) PatternFlowIpv4DscpEcnCounter { - - obj.obj.Start = &value - return obj + // Global4ByteAs returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget. + Global4ByteAs() uint32 + // SetGlobal4ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // HasGlobal4ByteAs checks if Global4ByteAs has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + HasGlobal4ByteAs() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + HasLocal2ByteAdmin() bool } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Step() uint32 { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Global4ByteAs() uint32 { - return *obj.obj.Step + return *obj.obj.Global_4ByteAs } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasStep() bool { - return obj.obj.Step != nil +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) HasGlobal4ByteAs() bool { + return obj.obj.Global_4ByteAs != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetStep(value uint32) PatternFlowIpv4DscpEcnCounter { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal4ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - obj.obj.Step = &value + obj.obj.Global_4ByteAs = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Count() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Local2ByteAdmin() uint32 { - return *obj.obj.Count + return *obj.obj.Local_2ByteAdmin } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasCount() bool { - return obj.obj.Count != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetCount(value uint32) PatternFlowIpv4DscpEcnCounter { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - obj.obj.Count = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpEcnCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Start <= 3 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Step <= 3 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Count > 3 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Count <= 3 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpEcnCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) setDefault() { + if obj.obj.Global_4ByteAs == nil { + obj.SetGlobal4ByteAs(100) } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpEcnMetricTag ***** -type patternFlowIpv4DscpEcnMetricTag struct { +// ***** BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin ***** +type bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4DscpEcnMetricTag + obj *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin } -func NewPatternFlowIpv4DscpEcnMetricTag() PatternFlowIpv4DscpEcnMetricTag { - obj := patternFlowIpv4DscpEcnMetricTag{obj: &otg.PatternFlowIpv4DscpEcnMetricTag{}} +func NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + obj := bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) Msg() *otg.PatternFlowIpv4DscpEcnMetricTag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) SetMsg(msg *otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { proto.Merge(obj.obj, msg) return obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -304998,7 +311663,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4DscpE return obj.Msg(), nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -305007,7 +311672,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlowIpv4Ds return newObj, nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305019,7 +311684,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -305032,7 +311697,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) FromPbText(value string) error { return retObj } -func (obj *patternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305053,7 +311718,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -305078,7 +311743,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305096,7 +311761,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { return string(data), nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -305117,19 +311782,19 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnMetricTag) Validate() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -305137,12 +311802,12 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { return str } -func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpEcnMetricTag() + newObj := NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -305154,182 +311819,148 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetri return newObj, nil } -// PatternFlowIpv4DscpEcnMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4DscpEcnMetricTag interface { +// BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin interface { Validation - // Msg marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + // Msg marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin // and doesn't set defaults - Msg() *otg.PatternFlowIpv4DscpEcnMetricTag - // SetMsg unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + Msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // SetMsg unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin // and doesn't set defaults - SetMsg(*otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag - // ToProto marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag - ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) - // ToPbText marshals PatternFlowIpv4DscpEcnMetricTag to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpEcnMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpEcnMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to JSON text ToJson() (string, error) - // FromProto unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag - FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpEcnMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpEcnMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from JSON text FromJson(value string) error - // Validate validates PatternFlowIpv4DscpEcnMetricTag + // Validate validates BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin Validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpEcnMetricTag, error) + Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4DscpEcnMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4DscpEcnMetricTag - SetName(value string) PatternFlowIpv4DscpEcnMetricTag - // Offset returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag - SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4DscpEcnMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag - SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4DscpEcnMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4DscpEcnMetricTag) Name() string { - - return obj.obj.Name -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv4DscpEcnMetricTag { - - obj.obj.Name = value - return obj + // Global4ByteAs returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin. + Global4ByteAs() uint32 + // SetGlobal4ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // HasGlobal4ByteAs checks if Global4ByteAs has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + HasGlobal4ByteAs() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + HasLocal2ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) Offset() uint32 { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Global4ByteAs() uint32 { - return *obj.obj.Offset + return *obj.obj.Global_4ByteAs } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) HasGlobal4ByteAs() bool { + return obj.obj.Global_4ByteAs != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal4ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { - obj.obj.Offset = &value + obj.obj.Global_4ByteAs = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Local2ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_2ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { - obj.obj.Length = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == "" { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpEcnMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnMetricTag.Offset <= 1 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 2 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4DscpEcnMetricTag.Length <= 2 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpEcnMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) setDefault() { + if obj.obj.Global_4ByteAs == nil { + obj.SetGlobal4ByteAs(100) } - if obj.obj.Length == nil { - obj.SetLength(2) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** IsisLspPrefixAttributes ***** -type isisLspPrefixAttributes struct { +// ***** BgpExtendedCommunityTransitiveOpaqueTypeColor ***** +type bgpExtendedCommunityTransitiveOpaqueTypeColor struct { validation - obj *otg.IsisLspPrefixAttributes + obj *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor } -func NewIsisLspPrefixAttributes() IsisLspPrefixAttributes { - obj := isisLspPrefixAttributes{obj: &otg.IsisLspPrefixAttributes{}} +func NewBgpExtendedCommunityTransitiveOpaqueTypeColor() BgpExtendedCommunityTransitiveOpaqueTypeColor { + obj := bgpExtendedCommunityTransitiveOpaqueTypeColor{obj: &otg.BgpExtendedCommunityTransitiveOpaqueTypeColor{}} obj.setDefault() return &obj } -func (obj *isisLspPrefixAttributes) Msg() *otg.IsisLspPrefixAttributes { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor { return obj.obj } -func (obj *isisLspPrefixAttributes) SetMsg(msg *otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueTypeColor { proto.Merge(obj.obj, msg) return obj } -func (obj *isisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -305337,7 +311968,7 @@ func (obj *isisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes, err return obj.Msg(), nil } -func (obj *isisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -305346,7 +311977,7 @@ func (obj *isisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttributes) return newObj, nil } -func (obj *isisLspPrefixAttributes) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305358,7 +311989,7 @@ func (obj *isisLspPrefixAttributes) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *isisLspPrefixAttributes) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -305371,7 +312002,7 @@ func (obj *isisLspPrefixAttributes) FromPbText(value string) error { return retObj } -func (obj *isisLspPrefixAttributes) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305392,7 +312023,7 @@ func (obj *isisLspPrefixAttributes) ToYaml() (string, error) { return string(data), nil } -func (obj *isisLspPrefixAttributes) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) FromYaml(value string) error { if value == "" { value = "{}" } @@ -305417,7 +312048,7 @@ func (obj *isisLspPrefixAttributes) FromYaml(value string) error { return nil } -func (obj *isisLspPrefixAttributes) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305435,7 +312066,7 @@ func (obj *isisLspPrefixAttributes) ToJson() (string, error) { return string(data), nil } -func (obj *isisLspPrefixAttributes) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -305456,19 +312087,19 @@ func (obj *isisLspPrefixAttributes) FromJson(value string) error { return nil } -func (obj *isisLspPrefixAttributes) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *isisLspPrefixAttributes) Validate() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *isisLspPrefixAttributes) String() string { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -305476,12 +312107,12 @@ func (obj *isisLspPrefixAttributes) String() string { return str } -func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Clone() (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewIsisLspPrefixAttributes() + newObj := NewBgpExtendedCommunityTransitiveOpaqueTypeColor() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -305493,161 +312124,148 @@ func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { return newObj, nil } -// IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html -type IsisLspPrefixAttributes interface { +// BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. +type BgpExtendedCommunityTransitiveOpaqueTypeColor interface { Validation - // Msg marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes + // Msg marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor // and doesn't set defaults - Msg() *otg.IsisLspPrefixAttributes - // SetMsg unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes + Msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + // SetMsg unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor // and doesn't set defaults - SetMsg(*otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes - // ToProto marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes - ToProto() (*otg.IsisLspPrefixAttributes, error) - // ToPbText marshals IsisLspPrefixAttributes to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueTypeColor + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf text ToPbText() (string, error) - // ToYaml marshals IsisLspPrefixAttributes to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to YAML text ToYaml() (string, error) - // ToJson marshals IsisLspPrefixAttributes to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to JSON text ToJson() (string, error) - // FromProto unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes - FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) - // FromPbText unmarshals IsisLspPrefixAttributes from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf text FromPbText(value string) error - // FromYaml unmarshals IsisLspPrefixAttributes from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from YAML text FromYaml(value string) error - // FromJson unmarshals IsisLspPrefixAttributes from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from JSON text FromJson(value string) error - // Validate validates IsisLspPrefixAttributes + // Validate validates BgpExtendedCommunityTransitiveOpaqueTypeColor Validate() error // A stringer function String() string // Clones the object - Clone() (IsisLspPrefixAttributes, error) + Clone() (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // XFlag returns bool, set in IsisLspPrefixAttributes. - XFlag() bool - // SetXFlag assigns bool provided by user to IsisLspPrefixAttributes - SetXFlag(value bool) IsisLspPrefixAttributes - // HasXFlag checks if XFlag has been set in IsisLspPrefixAttributes - HasXFlag() bool - // RFlag returns bool, set in IsisLspPrefixAttributes. - RFlag() bool - // SetRFlag assigns bool provided by user to IsisLspPrefixAttributes - SetRFlag(value bool) IsisLspPrefixAttributes - // HasRFlag checks if RFlag has been set in IsisLspPrefixAttributes - HasRFlag() bool - // NFlag returns bool, set in IsisLspPrefixAttributes. - NFlag() bool - // SetNFlag assigns bool provided by user to IsisLspPrefixAttributes - SetNFlag(value bool) IsisLspPrefixAttributes - // HasNFlag checks if NFlag has been set in IsisLspPrefixAttributes - HasNFlag() bool + // Flags returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeColor. + Flags() uint32 + // SetFlags assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeColor + SetFlags(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor + // HasFlags checks if Flags has been set in BgpExtendedCommunityTransitiveOpaqueTypeColor + HasFlags() bool + // Color returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeColor. + Color() uint32 + // SetColor assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeColor + SetColor(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor + // HasColor checks if Color has been set in BgpExtendedCommunityTransitiveOpaqueTypeColor + HasColor() bool } -// External Prefix Flag (Bit 0) -// XFlag returns a bool -func (obj *isisLspPrefixAttributes) XFlag() bool { +// Two octet flag values. +// Flags returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Flags() uint32 { - return *obj.obj.XFlag + return *obj.obj.Flags } -// External Prefix Flag (Bit 0) -// XFlag returns a bool -func (obj *isisLspPrefixAttributes) HasXFlag() bool { - return obj.obj.XFlag != nil +// Two octet flag values. +// Flags returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) HasFlags() bool { + return obj.obj.Flags != nil } -// External Prefix Flag (Bit 0) -// SetXFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetXFlag(value bool) IsisLspPrefixAttributes { +// Two octet flag values. +// SetFlags sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeColor object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetFlags(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor { - obj.obj.XFlag = &value + obj.obj.Flags = &value return obj } -// Re-advertisement Flag (Bit 1) -// RFlag returns a bool -func (obj *isisLspPrefixAttributes) RFlag() bool { +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// Color returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Color() uint32 { - return *obj.obj.RFlag + return *obj.obj.Color } -// Re-advertisement Flag (Bit 1) -// RFlag returns a bool -func (obj *isisLspPrefixAttributes) HasRFlag() bool { - return obj.obj.RFlag != nil +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// Color returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) HasColor() bool { + return obj.obj.Color != nil } -// Re-advertisement Flag (Bit 1) -// SetRFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetRFlag(value bool) IsisLspPrefixAttributes { +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// SetColor sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeColor object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetColor(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor { - obj.obj.RFlag = &value + obj.obj.Color = &value return obj } -// Node Flag (Bit 2) -// NFlag returns a bool -func (obj *isisLspPrefixAttributes) NFlag() bool { - - return *obj.obj.NFlag - -} - -// Node Flag (Bit 2) -// NFlag returns a bool -func (obj *isisLspPrefixAttributes) HasNFlag() bool { - return obj.obj.NFlag != nil -} +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } -// Node Flag (Bit 2) -// SetNFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetNFlag(value bool) IsisLspPrefixAttributes { + if obj.obj.Flags != nil { - obj.obj.NFlag = &value - return obj -} + if *obj.obj.Flags > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveOpaqueTypeColor.Flags <= 65535 but Got %d", *obj.obj.Flags)) + } -func (obj *isisLspPrefixAttributes) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() } } -func (obj *isisLspPrefixAttributes) setDefault() { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) setDefault() { + if obj.obj.Flags == nil { + obj.SetFlags(0) + } + if obj.obj.Color == nil { + obj.SetColor(0) + } } -// ***** BgpV4EviVxlanBroadcastDomain ***** -type bgpV4EviVxlanBroadcastDomain struct { +// ***** BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation ***** +type bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { validation - obj *otg.BgpV4EviVxlanBroadcastDomain - cmacIpRangeHolder BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + obj *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation } -func NewBgpV4EviVxlanBroadcastDomain() BgpV4EviVxlanBroadcastDomain { - obj := bgpV4EviVxlanBroadcastDomain{obj: &otg.BgpV4EviVxlanBroadcastDomain{}} +func NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + obj := bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: &otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{}} obj.setDefault() return &obj } -func (obj *bgpV4EviVxlanBroadcastDomain) Msg() *otg.BgpV4EviVxlanBroadcastDomain { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { return obj.obj } -func (obj *bgpV4EviVxlanBroadcastDomain) SetMsg(msg *otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain { - obj.setNil() +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + proto.Merge(obj.obj, msg) return obj } -func (obj *bgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -305655,7 +312273,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroadcastD return obj.Msg(), nil } -func (obj *bgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -305664,7 +312282,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlanBroadca return newObj, nil } -func (obj *bgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305676,12 +312294,12 @@ func (obj *bgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -305689,7 +312307,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { return retObj } -func (obj *bgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305710,7 +312328,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromYaml(value string) error { if value == "" { value = "{}" } @@ -305727,7 +312345,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + vErr := obj.validateToAndFrom() if vErr != nil { return vErr @@ -305735,7 +312353,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { return nil } -func (obj *bgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -305753,7 +312371,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { return string(data), nil } -func (obj *bgpV4EviVxlanBroadcastDomain) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -305766,7 +312384,7 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - obj.setNil() + err := obj.validateToAndFrom() if err != nil { return err @@ -305774,19 +312392,19 @@ func (obj *bgpV4EviVxlanBroadcastDomain) FromJson(value string) error { return nil } -func (obj *bgpV4EviVxlanBroadcastDomain) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpV4EviVxlanBroadcastDomain) Validate() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpV4EviVxlanBroadcastDomain) String() string { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -305794,12 +312412,12 @@ func (obj *bgpV4EviVxlanBroadcastDomain) String() string { return str } -func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Clone() (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpV4EviVxlanBroadcastDomain() + newObj := NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -305811,252 +312429,169 @@ func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, return newObj, nil } -func (obj *bgpV4EviVxlanBroadcastDomain) setNil() { - obj.cmacIpRangeHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpV4EviVxlanBroadcastDomain is configuration for Broadcast Domains per EVI. -type BgpV4EviVxlanBroadcastDomain interface { +// BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. +type BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation interface { Validation - // Msg marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain + // Msg marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation // and doesn't set defaults - Msg() *otg.BgpV4EviVxlanBroadcastDomain - // SetMsg unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain + Msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // SetMsg unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation // and doesn't set defaults - SetMsg(*otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain - // ToProto marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain - ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) - // ToPbText marshals BgpV4EviVxlanBroadcastDomain to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpV4EviVxlanBroadcastDomain to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to YAML text ToYaml() (string, error) - // ToJson marshals BgpV4EviVxlanBroadcastDomain to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to JSON text ToJson() (string, error) - // FromProto unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain - FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) - // FromPbText unmarshals BgpV4EviVxlanBroadcastDomain from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpV4EviVxlanBroadcastDomain from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from YAML text FromYaml(value string) error - // FromJson unmarshals BgpV4EviVxlanBroadcastDomain from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from JSON text FromJson(value string) error - // Validate validates BgpV4EviVxlanBroadcastDomain + // Validate validates BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation Validate() error // A stringer function String() string // Clones the object - Clone() (BgpV4EviVxlanBroadcastDomain, error) + Clone() (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // CmacIpRange returns BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIterIter, set in BgpV4EviVxlanBroadcastDomain - CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - // EthernetTagId returns uint32, set in BgpV4EviVxlanBroadcastDomain. - EthernetTagId() uint32 - // SetEthernetTagId assigns uint32 provided by user to BgpV4EviVxlanBroadcastDomain - SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain - // HasEthernetTagId checks if EthernetTagId has been set in BgpV4EviVxlanBroadcastDomain - HasEthernetTagId() bool - // VlanAwareService returns bool, set in BgpV4EviVxlanBroadcastDomain. - VlanAwareService() bool - // SetVlanAwareService assigns bool provided by user to BgpV4EviVxlanBroadcastDomain - SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain - // HasVlanAwareService checks if VlanAwareService has been set in BgpV4EviVxlanBroadcastDomain - HasVlanAwareService() bool - setNil() -} - -// This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. -// -// Advertises following route - -// Type 2 - MAC/IP Advertisement Route. -// CmacIpRange returns a []BgpCMacIpRange -func (obj *bgpV4EviVxlanBroadcastDomain) CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(obj.obj.CmacIpRange) == 0 { - obj.obj.CmacIpRange = []*otg.BgpCMacIpRange{} - } - if obj.cmacIpRangeHolder == nil { - obj.cmacIpRangeHolder = newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(&obj.obj.CmacIpRange).setMsg(obj) - } - return obj.cmacIpRangeHolder -} - -type bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter struct { - obj *bgpV4EviVxlanBroadcastDomain - bgpCMacIpRangeSlice []BgpCMacIpRange - fieldPtr *[]*otg.BgpCMacIpRange -} - -func newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(ptr *[]*otg.BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - return &bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter{fieldPtr: ptr} -} - -type BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter interface { - setMsg(*bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Items() []BgpCMacIpRange - Add() BgpCMacIpRange - Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) setMsg(msg *bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCMacIpRange{obj: val}) - } - obj.obj = msg - return obj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Items() []BgpCMacIpRange { - return obj.bgpCMacIpRangeSlice -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Add() BgpCMacIpRange { - newObj := &otg.BgpCMacIpRange{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCMacIpRange{obj: newObj} - newLibObj.setDefault() - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, newLibObj) - return newLibObj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - for _, item := range items { - newObj := item.Msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) - } - return obj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - (*obj.fieldPtr)[index] = newObj.Msg() - obj.bgpCMacIpRangeSlice[index] = newObj - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCMacIpRange{} - obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} - } - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(obj.bgpCMacIpRangeSlice) > 0 { - obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} - } - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) - return obj + // Reserved returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation. + Reserved() uint32 + // SetReserved assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + SetReserved(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // HasReserved checks if Reserved has been set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + HasReserved() bool + // TunnelType returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation. + TunnelType() uint32 + // SetTunnelType assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + SetTunnelType(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // HasTunnelType checks if TunnelType has been set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + HasTunnelType() bool } -// The Ethernet Tag ID of the Broadcast Domain. -// EthernetTagId returns a uint32 -func (obj *bgpV4EviVxlanBroadcastDomain) EthernetTagId() uint32 { +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// Reserved returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reserved() uint32 { - return *obj.obj.EthernetTagId + return *obj.obj.Reserved } -// The Ethernet Tag ID of the Broadcast Domain. -// EthernetTagId returns a uint32 -func (obj *bgpV4EviVxlanBroadcastDomain) HasEthernetTagId() bool { - return obj.obj.EthernetTagId != nil +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// Reserved returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) HasReserved() bool { + return obj.obj.Reserved != nil } -// The Ethernet Tag ID of the Broadcast Domain. -// SetEthernetTagId sets the uint32 value in the BgpV4EviVxlanBroadcastDomain object -func (obj *bgpV4EviVxlanBroadcastDomain) SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain { +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// SetReserved sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetReserved(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { - obj.obj.EthernetTagId = &value + obj.obj.Reserved = &value return obj } -// VLAN-Aware service to be enabled or disabled. -// VlanAwareService returns a bool -func (obj *bgpV4EviVxlanBroadcastDomain) VlanAwareService() bool { +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// TunnelType returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) TunnelType() uint32 { - return *obj.obj.VlanAwareService + return *obj.obj.TunnelType } -// VLAN-Aware service to be enabled or disabled. -// VlanAwareService returns a bool -func (obj *bgpV4EviVxlanBroadcastDomain) HasVlanAwareService() bool { - return obj.obj.VlanAwareService != nil +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// TunnelType returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) HasTunnelType() bool { + return obj.obj.TunnelType != nil } -// VLAN-Aware service to be enabled or disabled. -// SetVlanAwareService sets the bool value in the BgpV4EviVxlanBroadcastDomain object -func (obj *bgpV4EviVxlanBroadcastDomain) SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain { +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// SetTunnelType sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetTunnelType(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { - obj.obj.VlanAwareService = &value + obj.obj.TunnelType = &value return obj } -func (obj *bgpV4EviVxlanBroadcastDomain) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.CmacIpRange) != 0 { + if obj.obj.TunnelType != nil { - if set_default { - obj.CmacIpRange().clearHolderSlice() - for _, item := range obj.obj.CmacIpRange { - obj.CmacIpRange().appendHolderSlice(&bgpCMacIpRange{obj: item}) - } - } - for _, item := range obj.CmacIpRange().Items() { - item.validateObj(vObj, set_default) + if *obj.obj.TunnelType > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation.TunnelType <= 65535 but Got %d", *obj.obj.TunnelType)) } } } -func (obj *bgpV4EviVxlanBroadcastDomain) setDefault() { - if obj.obj.EthernetTagId == nil { - obj.SetEthernetTagId(0) +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) setDefault() { + if obj.obj.Reserved == nil { + obj.SetReserved(0) } - if obj.obj.VlanAwareService == nil { - obj.SetVlanAwareService(false) + if obj.obj.TunnelType == nil { + obj.SetTunnelType(1) } } -// ***** BgpRouteDistinguisher ***** -type bgpRouteDistinguisher struct { +// ***** BgpExtendedCommunityTransitiveEvpnTypeRouterMac ***** +type bgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { validation - obj *otg.BgpRouteDistinguisher + obj *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac } -func NewBgpRouteDistinguisher() BgpRouteDistinguisher { - obj := bgpRouteDistinguisher{obj: &otg.BgpRouteDistinguisher{}} +func NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac() BgpExtendedCommunityTransitiveEvpnTypeRouterMac { + obj := bgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: &otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac{}} obj.setDefault() return &obj } -func (obj *bgpRouteDistinguisher) Msg() *otg.BgpRouteDistinguisher { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Msg() *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac { return obj.obj } -func (obj *bgpRouteDistinguisher) SetMsg(msg *otg.BgpRouteDistinguisher) BgpRouteDistinguisher { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) SetMsg(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnTypeRouterMac { proto.Merge(obj.obj, msg) return obj } -func (obj *bgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -306064,7 +312599,7 @@ func (obj *bgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, error) return obj.Msg(), nil } -func (obj *bgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -306073,7 +312608,7 @@ func (obj *bgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguisher) (Bgp return newObj, nil } -func (obj *bgpRouteDistinguisher) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306085,7 +312620,7 @@ func (obj *bgpRouteDistinguisher) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpRouteDistinguisher) FromPbText(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -306098,7 +312633,7 @@ func (obj *bgpRouteDistinguisher) FromPbText(value string) error { return retObj } -func (obj *bgpRouteDistinguisher) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306119,7 +312654,7 @@ func (obj *bgpRouteDistinguisher) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpRouteDistinguisher) FromYaml(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromYaml(value string) error { if value == "" { value = "{}" } @@ -306144,7 +312679,7 @@ func (obj *bgpRouteDistinguisher) FromYaml(value string) error { return nil } -func (obj *bgpRouteDistinguisher) ToJson() (string, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306162,7 +312697,7 @@ func (obj *bgpRouteDistinguisher) ToJson() (string, error) { return string(data), nil } -func (obj *bgpRouteDistinguisher) FromJson(value string) error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -306183,19 +312718,19 @@ func (obj *bgpRouteDistinguisher) FromJson(value string) error { return nil } -func (obj *bgpRouteDistinguisher) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpRouteDistinguisher) Validate() error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpRouteDistinguisher) String() string { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -306203,12 +312738,12 @@ func (obj *bgpRouteDistinguisher) String() string { return str } -func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Clone() (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpRouteDistinguisher() + newObj := NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -306220,184 +312755,116 @@ func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { return newObj, nil } -// BgpRouteDistinguisher is bGP Route Distinguisher. -type BgpRouteDistinguisher interface { +// BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. +type BgpExtendedCommunityTransitiveEvpnTypeRouterMac interface { Validation - // Msg marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher + // Msg marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac // and doesn't set defaults - Msg() *otg.BgpRouteDistinguisher - // SetMsg unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher + Msg() *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // SetMsg unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac // and doesn't set defaults - SetMsg(*otg.BgpRouteDistinguisher) BgpRouteDistinguisher - // ToProto marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher - ToProto() (*otg.BgpRouteDistinguisher, error) - // ToPbText marshals BgpRouteDistinguisher to protobuf text + SetMsg(*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // ToProto marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) + // ToPbText marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpRouteDistinguisher to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to YAML text ToYaml() (string, error) - // ToJson marshals BgpRouteDistinguisher to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to JSON text ToJson() (string, error) - // FromProto unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher - FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) - // FromPbText unmarshals BgpRouteDistinguisher from protobuf text + // FromProto unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpRouteDistinguisher from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from YAML text FromYaml(value string) error - // FromJson unmarshals BgpRouteDistinguisher from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from JSON text FromJson(value string) error - // Validate validates BgpRouteDistinguisher + // Validate validates BgpExtendedCommunityTransitiveEvpnTypeRouterMac Validate() error // A stringer function String() string // Clones the object - Clone() (BgpRouteDistinguisher, error) + Clone() (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RdType returns BgpRouteDistinguisherRdTypeEnum, set in BgpRouteDistinguisher - RdType() BgpRouteDistinguisherRdTypeEnum - // SetRdType assigns BgpRouteDistinguisherRdTypeEnum provided by user to BgpRouteDistinguisher - SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher - // HasRdType checks if RdType has been set in BgpRouteDistinguisher - HasRdType() bool - // AutoConfigRdIpAddr returns bool, set in BgpRouteDistinguisher. - AutoConfigRdIpAddr() bool - // SetAutoConfigRdIpAddr assigns bool provided by user to BgpRouteDistinguisher - SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher - // HasAutoConfigRdIpAddr checks if AutoConfigRdIpAddr has been set in BgpRouteDistinguisher - HasAutoConfigRdIpAddr() bool - // RdValue returns string, set in BgpRouteDistinguisher. - RdValue() string - // SetRdValue assigns string provided by user to BgpRouteDistinguisher - SetRdValue(value string) BgpRouteDistinguisher - // HasRdValue checks if RdValue has been set in BgpRouteDistinguisher - HasRdValue() bool -} - -type BgpRouteDistinguisherRdTypeEnum string - -// Enum of RdType on BgpRouteDistinguisher -var BgpRouteDistinguisherRdType = struct { - AS_2OCTET BgpRouteDistinguisherRdTypeEnum - IPV4_ADDRESS BgpRouteDistinguisherRdTypeEnum - AS_4OCTET BgpRouteDistinguisherRdTypeEnum -}{ - AS_2OCTET: BgpRouteDistinguisherRdTypeEnum("as_2octet"), - IPV4_ADDRESS: BgpRouteDistinguisherRdTypeEnum("ipv4_address"), - AS_4OCTET: BgpRouteDistinguisherRdTypeEnum("as_4octet"), -} - -func (obj *bgpRouteDistinguisher) RdType() BgpRouteDistinguisherRdTypeEnum { - return BgpRouteDistinguisherRdTypeEnum(obj.obj.RdType.Enum().String()) -} - -// Route Distinguisher Type field of 2 Byte. -// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). -// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). -// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). -// RdType returns a string -func (obj *bgpRouteDistinguisher) HasRdType() bool { - return obj.obj.RdType != nil -} - -func (obj *bgpRouteDistinguisher) SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher { - intValue, ok := otg.BgpRouteDistinguisher_RdType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpRouteDistinguisherRdTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpRouteDistinguisher_RdType_Enum(intValue) - obj.obj.RdType = &enumValue - - return obj -} - -// Allow to automatically configure RD IP address from local ip. -// AutoConfigRdIpAddr returns a bool -func (obj *bgpRouteDistinguisher) AutoConfigRdIpAddr() bool { - - return *obj.obj.AutoConfigRdIpAddr - -} - -// Allow to automatically configure RD IP address from local ip. -// AutoConfigRdIpAddr returns a bool -func (obj *bgpRouteDistinguisher) HasAutoConfigRdIpAddr() bool { - return obj.obj.AutoConfigRdIpAddr != nil -} - -// Allow to automatically configure RD IP address from local ip. -// SetAutoConfigRdIpAddr sets the bool value in the BgpRouteDistinguisher object -func (obj *bgpRouteDistinguisher) SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher { - - obj.obj.AutoConfigRdIpAddr = &value - return obj + // RouterMac returns string, set in BgpExtendedCommunityTransitiveEvpnTypeRouterMac. + RouterMac() string + // SetRouterMac assigns string provided by user to BgpExtendedCommunityTransitiveEvpnTypeRouterMac + SetRouterMac(value string) BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // HasRouterMac checks if RouterMac has been set in BgpExtendedCommunityTransitiveEvpnTypeRouterMac + HasRouterMac() bool } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RdValue returns a string -func (obj *bgpRouteDistinguisher) RdValue() string { +// MAC Address of the PE Router. +// RouterMac returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) RouterMac() string { - return *obj.obj.RdValue + return *obj.obj.RouterMac } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RdValue returns a string -func (obj *bgpRouteDistinguisher) HasRdValue() bool { - return obj.obj.RdValue != nil +// MAC Address of the PE Router. +// RouterMac returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) HasRouterMac() bool { + return obj.obj.RouterMac != nil } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// SetRdValue sets the string value in the BgpRouteDistinguisher object -func (obj *bgpRouteDistinguisher) SetRdValue(value string) BgpRouteDistinguisher { +// MAC Address of the PE Router. +// SetRouterMac sets the string value in the BgpExtendedCommunityTransitiveEvpnTypeRouterMac object +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) SetRouterMac(value string) BgpExtendedCommunityTransitiveEvpnTypeRouterMac { - obj.obj.RdValue = &value + obj.obj.RouterMac = &value return obj } -func (obj *bgpRouteDistinguisher) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } -} + if obj.obj.RouterMac != nil { -func (obj *bgpRouteDistinguisher) setDefault() { - if obj.obj.RdType == nil { - obj.SetRdType(BgpRouteDistinguisherRdType.AS_2OCTET) + err := obj.validateMac(obj.RouterMac()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveEvpnTypeRouterMac.RouterMac")) + } } - if obj.obj.AutoConfigRdIpAddr == nil { - obj.SetAutoConfigRdIpAddr(false) + +} + +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) setDefault() { + if obj.obj.RouterMac == nil { + obj.SetRouterMac("0:0:0:0:0:0") } } -// ***** BgpRouteTarget ***** -type bgpRouteTarget struct { +// ***** BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth ***** +type bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { validation - obj *otg.BgpRouteTarget + obj *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth } -func NewBgpRouteTarget() BgpRouteTarget { - obj := bgpRouteTarget{obj: &otg.BgpRouteTarget{}} +func NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + obj := bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: &otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{}} obj.setDefault() return &obj } -func (obj *bgpRouteTarget) Msg() *otg.BgpRouteTarget { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { return obj.obj } -func (obj *bgpRouteTarget) SetMsg(msg *otg.BgpRouteTarget) BgpRouteTarget { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetMsg(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { proto.Merge(obj.obj, msg) return obj } -func (obj *bgpRouteTarget) ToProto() (*otg.BgpRouteTarget, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { err := obj.validateToAndFrom() if err != nil { return nil, err @@ -306405,7 +312872,7 @@ func (obj *bgpRouteTarget) ToProto() (*otg.BgpRouteTarget, error) { return obj.Msg(), nil } -func (obj *bgpRouteTarget) FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { newObj := obj.SetMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -306414,7 +312881,7 @@ func (obj *bgpRouteTarget) FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, e return newObj, nil } -func (obj *bgpRouteTarget) ToPbText() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToPbText() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306426,7 +312893,7 @@ func (obj *bgpRouteTarget) ToPbText() (string, error) { return string(protoMarshal), nil } -func (obj *bgpRouteTarget) FromPbText(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), obj.Msg()) if retObj != nil { return retObj @@ -306439,7 +312906,7 @@ func (obj *bgpRouteTarget) FromPbText(value string) error { return retObj } -func (obj *bgpRouteTarget) ToYaml() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToYaml() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306460,7 +312927,7 @@ func (obj *bgpRouteTarget) ToYaml() (string, error) { return string(data), nil } -func (obj *bgpRouteTarget) FromYaml(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromYaml(value string) error { if value == "" { value = "{}" } @@ -306485,7 +312952,7 @@ func (obj *bgpRouteTarget) FromYaml(value string) error { return nil } -func (obj *bgpRouteTarget) ToJson() (string, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToJson() (string, error) { vErr := obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -306503,7 +312970,7 @@ func (obj *bgpRouteTarget) ToJson() (string, error) { return string(data), nil } -func (obj *bgpRouteTarget) FromJson(value string) error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -306524,19 +312991,19 @@ func (obj *bgpRouteTarget) FromJson(value string) error { return nil } -func (obj *bgpRouteTarget) validateToAndFrom() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpRouteTarget) Validate() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpRouteTarget) String() string { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { str, err := obj.ToYaml() if err != nil { return err.Error() @@ -306544,12 +313011,12 @@ func (obj *bgpRouteTarget) String() string { return str } -func (obj *bgpRouteTarget) Clone() (BgpRouteTarget, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Clone() (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { vErr := obj.Validate() if vErr != nil { return nil, vErr } - newObj := NewBgpRouteTarget() + newObj := NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth() data, err := proto.Marshal(obj.Msg()) if err != nil { return nil, err @@ -306561,123 +313028,122 @@ func (obj *bgpRouteTarget) Clone() (BgpRouteTarget, error) { return newObj, nil } -// BgpRouteTarget is bGP Route Target. -type BgpRouteTarget interface { +// BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. +type BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth interface { Validation - // Msg marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget + // Msg marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth // and doesn't set defaults - Msg() *otg.BgpRouteTarget - // SetMsg unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget + Msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // SetMsg unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth // and doesn't set defaults - SetMsg(*otg.BgpRouteTarget) BgpRouteTarget - // ToProto marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget - ToProto() (*otg.BgpRouteTarget, error) - // ToPbText marshals BgpRouteTarget to protobuf text + SetMsg(*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // ToProto marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) + // ToPbText marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpRouteTarget to YAML text + // ToYaml marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to YAML text ToYaml() (string, error) - // ToJson marshals BgpRouteTarget to JSON text + // ToJson marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to JSON text ToJson() (string, error) - // FromProto unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget - FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) - // FromPbText unmarshals BgpRouteTarget from protobuf text + // FromProto unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) + // FromPbText unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpRouteTarget from YAML text + // FromYaml unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from YAML text FromYaml(value string) error - // FromJson unmarshals BgpRouteTarget from JSON text + // FromJson unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from JSON text FromJson(value string) error - // Validate validates BgpRouteTarget + // Validate validates BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth Validate() error // A stringer function String() string // Clones the object - Clone() (BgpRouteTarget, error) + Clone() (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RtType returns BgpRouteTargetRtTypeEnum, set in BgpRouteTarget - RtType() BgpRouteTargetRtTypeEnum - // SetRtType assigns BgpRouteTargetRtTypeEnum provided by user to BgpRouteTarget - SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget - // HasRtType checks if RtType has been set in BgpRouteTarget - HasRtType() bool - // RtValue returns string, set in BgpRouteTarget. - RtValue() string - // SetRtValue assigns string provided by user to BgpRouteTarget - SetRtValue(value string) BgpRouteTarget - // HasRtValue checks if RtValue has been set in BgpRouteTarget - HasRtValue() bool + // Global2ByteAs returns uint32, set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + HasGlobal2ByteAs() bool + // Bandwidth returns float32, set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth. + Bandwidth() float32 + // SetBandwidth assigns float32 provided by user to BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + SetBandwidth(value float32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // HasBandwidth checks if Bandwidth has been set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + HasBandwidth() bool } -type BgpRouteTargetRtTypeEnum string +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Global2ByteAs() uint32 { -// Enum of RtType on BgpRouteTarget -var BgpRouteTargetRtType = struct { - AS_2OCTET BgpRouteTargetRtTypeEnum - IPV4_ADDRESS BgpRouteTargetRtTypeEnum - AS_4OCTET BgpRouteTargetRtTypeEnum -}{ - AS_2OCTET: BgpRouteTargetRtTypeEnum("as_2octet"), - IPV4_ADDRESS: BgpRouteTargetRtTypeEnum("ipv4_address"), - AS_4OCTET: BgpRouteTargetRtTypeEnum("as_4octet"), -} + return *obj.obj.Global_2ByteAs -func (obj *bgpRouteTarget) RtType() BgpRouteTargetRtTypeEnum { - return BgpRouteTargetRtTypeEnum(obj.obj.RtType.Enum().String()) } -// Extended Community Type field of 2 Byte. -// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). -// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). -// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). -// RtType returns a string -func (obj *bgpRouteTarget) HasRtType() bool { - return obj.obj.RtType != nil +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -func (obj *bgpRouteTarget) SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget { - intValue, ok := otg.BgpRouteTarget_RtType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpRouteTargetRtTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpRouteTarget_RtType_Enum(intValue) - obj.obj.RtType = &enumValue +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + obj.obj.Global_2ByteAs = &value return obj } -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RtValue returns a string -func (obj *bgpRouteTarget) RtValue() string { +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// Bandwidth returns a float32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Bandwidth() float32 { - return *obj.obj.RtValue + return *obj.obj.Bandwidth } -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RtValue returns a string -func (obj *bgpRouteTarget) HasRtValue() bool { - return obj.obj.RtValue != nil +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// Bandwidth returns a float32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) HasBandwidth() bool { + return obj.obj.Bandwidth != nil } -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// SetRtValue sets the string value in the BgpRouteTarget object -func (obj *bgpRouteTarget) SetRtValue(value string) BgpRouteTarget { +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// SetBandwidth sets the float32 value in the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetBandwidth(value float32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - obj.obj.RtValue = &value + obj.obj.Bandwidth = &value return obj } -func (obj *bgpRouteTarget) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } + if obj.obj.Global_2ByteAs != nil { + + if *obj.obj.Global_2ByteAs > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) + } + + } + } -func (obj *bgpRouteTarget) setDefault() { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) + } + if obj.obj.Bandwidth == nil { + obj.SetBandwidth(0) + } } diff --git a/gosnappi/otg/otg.pb.go b/gosnappi/otg/otg.pb.go index 4d38b205..e0febd96 100644 --- a/gosnappi/otg/otg.pb.go +++ b/gosnappi/otg/otg.pb.go @@ -1,4 +1,4 @@ -// Open Traffic Generator API 0.12.2 +// Open Traffic Generator API 0.12.3 // Open Traffic Generator API defines a model-driven, vendor-neutral and standard // interface for emulating layer 2-7 network devices and generating test traffic. // @@ -2076,6 +2076,358 @@ func (BgpV4RouteRange_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) return file_otg_proto_rawDescGZIP(), []int{80, 1, 0} } +type BgpExtendedCommunity_Choice_Enum int32 + +const ( + BgpExtendedCommunity_Choice_unspecified BgpExtendedCommunity_Choice_Enum = 0 + BgpExtendedCommunity_Choice_transitive_2octet_as_type BgpExtendedCommunity_Choice_Enum = 1 + BgpExtendedCommunity_Choice_transitive_ipv4_address_type BgpExtendedCommunity_Choice_Enum = 2 + BgpExtendedCommunity_Choice_transitive_4octet_as_type BgpExtendedCommunity_Choice_Enum = 3 + BgpExtendedCommunity_Choice_transitive_opaque_type BgpExtendedCommunity_Choice_Enum = 4 + BgpExtendedCommunity_Choice_transitive_evpn_type BgpExtendedCommunity_Choice_Enum = 5 + BgpExtendedCommunity_Choice_non_transitive_2octet_as_type BgpExtendedCommunity_Choice_Enum = 6 + BgpExtendedCommunity_Choice_custom BgpExtendedCommunity_Choice_Enum = 7 +) + +// Enum value maps for BgpExtendedCommunity_Choice_Enum. +var ( + BgpExtendedCommunity_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "transitive_2octet_as_type", + 2: "transitive_ipv4_address_type", + 3: "transitive_4octet_as_type", + 4: "transitive_opaque_type", + 5: "transitive_evpn_type", + 6: "non_transitive_2octet_as_type", + 7: "custom", + } + BgpExtendedCommunity_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "transitive_2octet_as_type": 1, + "transitive_ipv4_address_type": 2, + "transitive_4octet_as_type": 3, + "transitive_opaque_type": 4, + "transitive_evpn_type": 5, + "non_transitive_2octet_as_type": 6, + "custom": 7, + } +) + +func (x BgpExtendedCommunity_Choice_Enum) Enum() *BgpExtendedCommunity_Choice_Enum { + p := new(BgpExtendedCommunity_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunity_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunity_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[38].Descriptor() +} + +func (BgpExtendedCommunity_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[38] +} + +func (x BgpExtendedCommunity_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunity_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunity_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{82, 0, 0} +} + +type BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitive2OctetAsType_Choice_unspecified BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum = 0 + BgpExtendedCommunityTransitive2OctetAsType_Choice_route_target_subtype BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum = 1 + BgpExtendedCommunityTransitive2OctetAsType_Choice_route_origin_subtype BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum = 2 +) + +// Enum value maps for BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum. +var ( + BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "route_target_subtype", + 2: "route_origin_subtype", + } + BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "route_target_subtype": 1, + "route_origin_subtype": 2, + } +) + +func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Enum() *BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum { + p := new(BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[39].Descriptor() +} + +func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[39] +} + +func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85, 0, 0} +} + +type BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_unspecified BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum = 0 + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_route_target_subtype BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum = 1 + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_route_origin_subtype BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum = 2 +) + +// Enum value maps for BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum. +var ( + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "route_target_subtype", + 2: "route_origin_subtype", + } + BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "route_target_subtype": 1, + "route_origin_subtype": 2, + } +) + +func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Enum() *BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum { + p := new(BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[40].Descriptor() +} + +func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[40] +} + +func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88, 0, 0} +} + +type BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitive4OctetAsType_Choice_unspecified BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum = 0 + BgpExtendedCommunityTransitive4OctetAsType_Choice_route_target_subtype BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum = 1 + BgpExtendedCommunityTransitive4OctetAsType_Choice_route_origin_subtype BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum = 2 +) + +// Enum value maps for BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum. +var ( + BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "route_target_subtype", + 2: "route_origin_subtype", + } + BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "route_target_subtype": 1, + "route_origin_subtype": 2, + } +) + +func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Enum() *BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum { + p := new(BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[41].Descriptor() +} + +func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[41] +} + +func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{91, 0, 0} +} + +type BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitiveOpaqueType_Choice_unspecified BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum = 0 + BgpExtendedCommunityTransitiveOpaqueType_Choice_color_subtype BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum = 1 + BgpExtendedCommunityTransitiveOpaqueType_Choice_encapsulation_subtype BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum = 2 +) + +// Enum value maps for BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum. +var ( + BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "color_subtype", + 2: "encapsulation_subtype", + } + BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "color_subtype": 1, + "encapsulation_subtype": 2, + } +) + +func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Enum() *BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum { + p := new(BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[42].Descriptor() +} + +func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[42] +} + +func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94, 0, 0} +} + +type BgpExtendedCommunityTransitiveEvpnType_Choice_Enum int32 + +const ( + BgpExtendedCommunityTransitiveEvpnType_Choice_unspecified BgpExtendedCommunityTransitiveEvpnType_Choice_Enum = 0 + BgpExtendedCommunityTransitiveEvpnType_Choice_router_mac_subtype BgpExtendedCommunityTransitiveEvpnType_Choice_Enum = 1 +) + +// Enum value maps for BgpExtendedCommunityTransitiveEvpnType_Choice_Enum. +var ( + BgpExtendedCommunityTransitiveEvpnType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "router_mac_subtype", + } + BgpExtendedCommunityTransitiveEvpnType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "router_mac_subtype": 1, + } +) + +func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Enum() *BgpExtendedCommunityTransitiveEvpnType_Choice_Enum { + p := new(BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[43].Descriptor() +} + +func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[43] +} + +func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96, 0, 0} +} + +type BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum int32 + +const ( + BgpExtendedCommunityNonTransitive2OctetAsType_Choice_unspecified BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum = 0 + BgpExtendedCommunityNonTransitive2OctetAsType_Choice_link_bandwidth_subtype BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum = 1 +) + +// Enum value maps for BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum. +var ( + BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "link_bandwidth_subtype", + } + BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "link_bandwidth_subtype": 1, + } +) + +func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Enum() *BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum { + p := new(BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) + *p = x + return p +} + +func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[44].Descriptor() +} + +func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[44] +} + +func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum.Descriptor instead. +func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{98, 0, 0} +} + type BgpV6RouteRange_NextHopMode_Enum int32 const ( @@ -2109,11 +2461,11 @@ func (x BgpV6RouteRange_NextHopMode_Enum) String() string { } func (BgpV6RouteRange_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[38].Descriptor() + return file_otg_proto_enumTypes[45].Descriptor() } func (BgpV6RouteRange_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[38] + return &file_otg_proto_enumTypes[45] } func (x BgpV6RouteRange_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2122,7 +2474,7 @@ func (x BgpV6RouteRange_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6RouteRange_NextHopMode_Enum.Descriptor instead. func (BgpV6RouteRange_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{100, 0, 0} } type BgpV6RouteRange_NextHopAddressType_Enum int32 @@ -2158,11 +2510,11 @@ func (x BgpV6RouteRange_NextHopAddressType_Enum) String() string { } func (BgpV6RouteRange_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[39].Descriptor() + return file_otg_proto_enumTypes[46].Descriptor() } func (BgpV6RouteRange_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[39] + return &file_otg_proto_enumTypes[46] } func (x BgpV6RouteRange_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2171,7 +2523,7 @@ func (x BgpV6RouteRange_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpV6RouteRange_NextHopAddressType_Enum.Descriptor instead. func (BgpV6RouteRange_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{100, 1, 0} } type BgpSrteV4Policy_NextHopMode_Enum int32 @@ -2207,11 +2559,11 @@ func (x BgpSrteV4Policy_NextHopMode_Enum) String() string { } func (BgpSrteV4Policy_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[40].Descriptor() + return file_otg_proto_enumTypes[47].Descriptor() } func (BgpSrteV4Policy_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[40] + return &file_otg_proto_enumTypes[47] } func (x BgpSrteV4Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2220,7 +2572,7 @@ func (x BgpSrteV4Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteV4Policy_NextHopMode_Enum.Descriptor instead. func (BgpSrteV4Policy_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{101, 0, 0} } type BgpSrteV4Policy_NextHopAddressType_Enum int32 @@ -2256,11 +2608,11 @@ func (x BgpSrteV4Policy_NextHopAddressType_Enum) String() string { } func (BgpSrteV4Policy_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[41].Descriptor() + return file_otg_proto_enumTypes[48].Descriptor() } func (BgpSrteV4Policy_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[41] + return &file_otg_proto_enumTypes[48] } func (x BgpSrteV4Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2269,7 +2621,7 @@ func (x BgpSrteV4Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpSrteV4Policy_NextHopAddressType_Enum.Descriptor instead. func (BgpSrteV4Policy_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{101, 1, 0} } type BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum int32 @@ -2305,11 +2657,11 @@ func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) String() string { } func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[42].Descriptor() + return file_otg_proto_enumTypes[49].Descriptor() } func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[42] + return &file_otg_proto_enumTypes[49] } func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Number() protoreflect.EnumNumber { @@ -2318,7 +2670,7 @@ func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Number() protoreflect.En // Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum.Descriptor instead. func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{85, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{103, 0, 0} } type BgpSrteBindingSubTlv_BindingSidType_Enum int32 @@ -2357,11 +2709,11 @@ func (x BgpSrteBindingSubTlv_BindingSidType_Enum) String() string { } func (BgpSrteBindingSubTlv_BindingSidType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[43].Descriptor() + return file_otg_proto_enumTypes[50].Descriptor() } func (BgpSrteBindingSubTlv_BindingSidType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[43] + return &file_otg_proto_enumTypes[50] } func (x BgpSrteBindingSubTlv_BindingSidType_Enum) Number() protoreflect.EnumNumber { @@ -2370,7 +2722,7 @@ func (x BgpSrteBindingSubTlv_BindingSidType_Enum) Number() protoreflect.EnumNumb // Deprecated: Use BgpSrteBindingSubTlv_BindingSidType_Enum.Descriptor instead. func (BgpSrteBindingSubTlv_BindingSidType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{87, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{105, 0, 0} } type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum int32 @@ -2415,11 +2767,11 @@ func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Strin } func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[44].Descriptor() + return file_otg_proto_enumTypes[51].Descriptor() } func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[44] + return &file_otg_proto_enumTypes[51] } func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Number() protoreflect.EnumNumber { @@ -2428,7 +2780,7 @@ func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Numbe // Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum.Descriptor instead. func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{91, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{109, 0, 0} } type BgpSrteSegment_SegmentType_Enum int32 @@ -2491,11 +2843,11 @@ func (x BgpSrteSegment_SegmentType_Enum) String() string { } func (BgpSrteSegment_SegmentType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[45].Descriptor() + return file_otg_proto_enumTypes[52].Descriptor() } func (BgpSrteSegment_SegmentType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[45] + return &file_otg_proto_enumTypes[52] } func (x BgpSrteSegment_SegmentType_Enum) Number() protoreflect.EnumNumber { @@ -2504,7 +2856,7 @@ func (x BgpSrteSegment_SegmentType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteSegment_SegmentType_Enum.Descriptor instead. func (BgpSrteSegment_SegmentType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{93, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{111, 0, 0} } type BgpSrteV6Policy_NextHopMode_Enum int32 @@ -2540,11 +2892,11 @@ func (x BgpSrteV6Policy_NextHopMode_Enum) String() string { } func (BgpSrteV6Policy_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[46].Descriptor() + return file_otg_proto_enumTypes[53].Descriptor() } func (BgpSrteV6Policy_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[46] + return &file_otg_proto_enumTypes[53] } func (x BgpSrteV6Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2553,7 +2905,7 @@ func (x BgpSrteV6Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteV6Policy_NextHopMode_Enum.Descriptor instead. func (BgpSrteV6Policy_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{125, 0, 0} } type BgpSrteV6Policy_NextHopAddressType_Enum int32 @@ -2589,11 +2941,11 @@ func (x BgpSrteV6Policy_NextHopAddressType_Enum) String() string { } func (BgpSrteV6Policy_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[47].Descriptor() + return file_otg_proto_enumTypes[54].Descriptor() } func (BgpSrteV6Policy_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[47] + return &file_otg_proto_enumTypes[54] } func (x BgpSrteV6Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2602,7 +2954,7 @@ func (x BgpSrteV6Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpSrteV6Policy_NextHopAddressType_Enum.Descriptor instead. func (BgpSrteV6Policy_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{125, 1, 0} } type BgpV6Peer_AsType_Enum int32 @@ -2638,11 +2990,11 @@ func (x BgpV6Peer_AsType_Enum) String() string { } func (BgpV6Peer_AsType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[48].Descriptor() + return file_otg_proto_enumTypes[55].Descriptor() } func (BgpV6Peer_AsType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[48] + return &file_otg_proto_enumTypes[55] } func (x BgpV6Peer_AsType_Enum) Number() protoreflect.EnumNumber { @@ -2651,7 +3003,7 @@ func (x BgpV6Peer_AsType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6Peer_AsType_Enum.Descriptor instead. func (BgpV6Peer_AsType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{128, 0, 0} } type BgpV6Peer_AsNumberWidth_Enum int32 @@ -2687,11 +3039,11 @@ func (x BgpV6Peer_AsNumberWidth_Enum) String() string { } func (BgpV6Peer_AsNumberWidth_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[49].Descriptor() + return file_otg_proto_enumTypes[56].Descriptor() } func (BgpV6Peer_AsNumberWidth_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[49] + return &file_otg_proto_enumTypes[56] } func (x BgpV6Peer_AsNumberWidth_Enum) Number() protoreflect.EnumNumber { @@ -2700,7 +3052,7 @@ func (x BgpV6Peer_AsNumberWidth_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6Peer_AsNumberWidth_Enum.Descriptor instead. func (BgpV6Peer_AsNumberWidth_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{128, 1, 0} } type BgpV6EthernetSegment_ActiveMode_Enum int32 @@ -2736,11 +3088,11 @@ func (x BgpV6EthernetSegment_ActiveMode_Enum) String() string { } func (BgpV6EthernetSegment_ActiveMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[50].Descriptor() + return file_otg_proto_enumTypes[57].Descriptor() } func (BgpV6EthernetSegment_ActiveMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[50] + return &file_otg_proto_enumTypes[57] } func (x BgpV6EthernetSegment_ActiveMode_Enum) Number() protoreflect.EnumNumber { @@ -2749,7 +3101,7 @@ func (x BgpV6EthernetSegment_ActiveMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EthernetSegment_ActiveMode_Enum.Descriptor instead. func (BgpV6EthernetSegment_ActiveMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{131, 0, 0} } type BgpV6EvpnEvis_Choice_Enum int32 @@ -2782,11 +3134,11 @@ func (x BgpV6EvpnEvis_Choice_Enum) String() string { } func (BgpV6EvpnEvis_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[51].Descriptor() + return file_otg_proto_enumTypes[58].Descriptor() } func (BgpV6EvpnEvis_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[51] + return &file_otg_proto_enumTypes[58] } func (x BgpV6EvpnEvis_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2795,7 +3147,7 @@ func (x BgpV6EvpnEvis_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EvpnEvis_Choice_Enum.Descriptor instead. func (BgpV6EvpnEvis_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{114, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{132, 0, 0} } type BgpV6EviVxlan_ReplicationType_Enum int32 @@ -2828,11 +3180,11 @@ func (x BgpV6EviVxlan_ReplicationType_Enum) String() string { } func (BgpV6EviVxlan_ReplicationType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[52].Descriptor() + return file_otg_proto_enumTypes[59].Descriptor() } func (BgpV6EviVxlan_ReplicationType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[52] + return &file_otg_proto_enumTypes[59] } func (x BgpV6EviVxlan_ReplicationType_Enum) Number() protoreflect.EnumNumber { @@ -2841,7 +3193,7 @@ func (x BgpV6EviVxlan_ReplicationType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EviVxlan_ReplicationType_Enum.Descriptor instead. func (BgpV6EviVxlan_ReplicationType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{115, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{133, 0, 0} } type VxlanV4TunnelDestinationIPMode_Choice_Enum int32 @@ -2877,11 +3229,11 @@ func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) String() string { } func (VxlanV4TunnelDestinationIPMode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[53].Descriptor() + return file_otg_proto_enumTypes[60].Descriptor() } func (VxlanV4TunnelDestinationIPMode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[53] + return &file_otg_proto_enumTypes[60] } func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2890,7 +3242,7 @@ func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice_Enum.Descriptor instead. func (VxlanV4TunnelDestinationIPMode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{120, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{138, 0, 0} } type VxlanV6TunnelDestinationIPMode_Choice_Enum int32 @@ -2926,11 +3278,11 @@ func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) String() string { } func (VxlanV6TunnelDestinationIPMode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[54].Descriptor() + return file_otg_proto_enumTypes[61].Descriptor() } func (VxlanV6TunnelDestinationIPMode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[54] + return &file_otg_proto_enumTypes[61] } func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2939,7 +3291,7 @@ func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice_Enum.Descriptor instead. func (VxlanV6TunnelDestinationIPMode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{121, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{139, 0, 0} } type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum int32 @@ -2978,11 +3330,11 @@ func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) String() str } func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[55].Descriptor() + return file_otg_proto_enumTypes[62].Descriptor() } func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[55] + return &file_otg_proto_enumTypes[62] } func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Number() protoreflect.EnumNumber { @@ -2991,7 +3343,7 @@ func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Number() pro // Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum.Descriptor instead. func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{132, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{150, 0, 0} } type RsvpEro_PrependNeighborIp_Enum int32 @@ -3030,11 +3382,11 @@ func (x RsvpEro_PrependNeighborIp_Enum) String() string { } func (RsvpEro_PrependNeighborIp_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[56].Descriptor() + return file_otg_proto_enumTypes[63].Descriptor() } func (RsvpEro_PrependNeighborIp_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[56] + return &file_otg_proto_enumTypes[63] } func (x RsvpEro_PrependNeighborIp_Enum) Number() protoreflect.EnumNumber { @@ -3043,7 +3395,7 @@ func (x RsvpEro_PrependNeighborIp_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEro_PrependNeighborIp_Enum.Descriptor instead. func (RsvpEro_PrependNeighborIp_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{138, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{156, 0, 0} } type RsvpEroSubobject_Type_Enum int32 @@ -3079,11 +3431,11 @@ func (x RsvpEroSubobject_Type_Enum) String() string { } func (RsvpEroSubobject_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[57].Descriptor() + return file_otg_proto_enumTypes[64].Descriptor() } func (RsvpEroSubobject_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[57] + return &file_otg_proto_enumTypes[64] } func (x RsvpEroSubobject_Type_Enum) Number() protoreflect.EnumNumber { @@ -3092,7 +3444,7 @@ func (x RsvpEroSubobject_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEroSubobject_Type_Enum.Descriptor instead. func (RsvpEroSubobject_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{157, 0, 0} } type RsvpEroSubobject_HopType_Enum int32 @@ -3128,11 +3480,11 @@ func (x RsvpEroSubobject_HopType_Enum) String() string { } func (RsvpEroSubobject_HopType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[58].Descriptor() + return file_otg_proto_enumTypes[65].Descriptor() } func (RsvpEroSubobject_HopType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[58] + return &file_otg_proto_enumTypes[65] } func (x RsvpEroSubobject_HopType_Enum) Number() protoreflect.EnumNumber { @@ -3141,7 +3493,7 @@ func (x RsvpEroSubobject_HopType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEroSubobject_HopType_Enum.Descriptor instead. func (RsvpEroSubobject_HopType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{157, 1, 0} } type FlowTxRx_Choice_Enum int32 @@ -3177,11 +3529,11 @@ func (x FlowTxRx_Choice_Enum) String() string { } func (FlowTxRx_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[59].Descriptor() + return file_otg_proto_enumTypes[66].Descriptor() } func (FlowTxRx_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[59] + return &file_otg_proto_enumTypes[66] } func (x FlowTxRx_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3190,7 +3542,7 @@ func (x FlowTxRx_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowTxRx_Choice_Enum.Descriptor instead. func (FlowTxRx_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{159, 0, 0} } type FlowRouter_Mode_Enum int32 @@ -3226,11 +3578,11 @@ func (x FlowRouter_Mode_Enum) String() string { } func (FlowRouter_Mode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[60].Descriptor() + return file_otg_proto_enumTypes[67].Descriptor() } func (FlowRouter_Mode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[60] + return &file_otg_proto_enumTypes[67] } func (x FlowRouter_Mode_Enum) Number() protoreflect.EnumNumber { @@ -3239,7 +3591,7 @@ func (x FlowRouter_Mode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRouter_Mode_Enum.Descriptor instead. func (FlowRouter_Mode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{161, 0, 0} } type FlowHeader_Choice_Enum int32 @@ -3326,11 +3678,11 @@ func (x FlowHeader_Choice_Enum) String() string { } func (FlowHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[61].Descriptor() + return file_otg_proto_enumTypes[68].Descriptor() } func (FlowHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[61] + return &file_otg_proto_enumTypes[68] } func (x FlowHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3339,7 +3691,7 @@ func (x FlowHeader_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowHeader_Choice_Enum.Descriptor instead. func (FlowHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{144, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{162, 0, 0} } type FlowIpv4Priority_Choice_Enum int32 @@ -3378,11 +3730,11 @@ func (x FlowIpv4Priority_Choice_Enum) String() string { } func (FlowIpv4Priority_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[62].Descriptor() + return file_otg_proto_enumTypes[69].Descriptor() } func (FlowIpv4Priority_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[62] + return &file_otg_proto_enumTypes[69] } func (x FlowIpv4Priority_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3391,7 +3743,7 @@ func (x FlowIpv4Priority_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIpv4Priority_Choice_Enum.Descriptor instead. func (FlowIpv4Priority_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{151, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{169, 0, 0} } type FlowIcmp_Choice_Enum int32 @@ -3424,11 +3776,11 @@ func (x FlowIcmp_Choice_Enum) String() string { } func (FlowIcmp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[63].Descriptor() + return file_otg_proto_enumTypes[70].Descriptor() } func (FlowIcmp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[63] + return &file_otg_proto_enumTypes[70] } func (x FlowIcmp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3437,7 +3789,7 @@ func (x FlowIcmp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIcmp_Choice_Enum.Descriptor instead. func (FlowIcmp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{164, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{182, 0, 0} } type FlowIcmpv6_Choice_Enum int32 @@ -3470,11 +3822,11 @@ func (x FlowIcmpv6_Choice_Enum) String() string { } func (FlowIcmpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[64].Descriptor() + return file_otg_proto_enumTypes[71].Descriptor() } func (FlowIcmpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[64] + return &file_otg_proto_enumTypes[71] } func (x FlowIcmpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3483,7 +3835,7 @@ func (x FlowIcmpv6_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIcmpv6_Choice_Enum.Descriptor instead. func (FlowIcmpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{166, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{184, 0, 0} } type FlowSize_Choice_Enum int32 @@ -3525,11 +3877,11 @@ func (x FlowSize_Choice_Enum) String() string { } func (FlowSize_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[65].Descriptor() + return file_otg_proto_enumTypes[72].Descriptor() } func (FlowSize_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[65] + return &file_otg_proto_enumTypes[72] } func (x FlowSize_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3538,7 +3890,7 @@ func (x FlowSize_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSize_Choice_Enum.Descriptor instead. func (FlowSize_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{171, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{189, 0, 0} } type FlowSizeWeightPairs_Choice_Enum int32 @@ -3574,11 +3926,11 @@ func (x FlowSizeWeightPairs_Choice_Enum) String() string { } func (FlowSizeWeightPairs_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[66].Descriptor() + return file_otg_proto_enumTypes[73].Descriptor() } func (FlowSizeWeightPairs_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[66] + return &file_otg_proto_enumTypes[73] } func (x FlowSizeWeightPairs_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3587,7 +3939,7 @@ func (x FlowSizeWeightPairs_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSizeWeightPairs_Choice_Enum.Descriptor instead. func (FlowSizeWeightPairs_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{192, 0, 0} } type FlowSizeWeightPairs_Predefined_Enum int32 @@ -3632,11 +3984,11 @@ func (x FlowSizeWeightPairs_Predefined_Enum) String() string { } func (FlowSizeWeightPairs_Predefined_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[67].Descriptor() + return file_otg_proto_enumTypes[74].Descriptor() } func (FlowSizeWeightPairs_Predefined_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[67] + return &file_otg_proto_enumTypes[74] } func (x FlowSizeWeightPairs_Predefined_Enum) Number() protoreflect.EnumNumber { @@ -3645,7 +3997,7 @@ func (x FlowSizeWeightPairs_Predefined_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSizeWeightPairs_Predefined_Enum.Descriptor instead. func (FlowSizeWeightPairs_Predefined_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{192, 1, 0} } type FlowRate_Choice_Enum int32 @@ -3693,11 +4045,11 @@ func (x FlowRate_Choice_Enum) String() string { } func (FlowRate_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[68].Descriptor() + return file_otg_proto_enumTypes[75].Descriptor() } func (FlowRate_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[68] + return &file_otg_proto_enumTypes[75] } func (x FlowRate_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3706,7 +4058,7 @@ func (x FlowRate_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRate_Choice_Enum.Descriptor instead. func (FlowRate_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{176, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{194, 0, 0} } type FlowDuration_Choice_Enum int32 @@ -3748,11 +4100,11 @@ func (x FlowDuration_Choice_Enum) String() string { } func (FlowDuration_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[69].Descriptor() + return file_otg_proto_enumTypes[76].Descriptor() } func (FlowDuration_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[69] + return &file_otg_proto_enumTypes[76] } func (x FlowDuration_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3761,7 +4113,7 @@ func (x FlowDuration_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowDuration_Choice_Enum.Descriptor instead. func (FlowDuration_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{177, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{195, 0, 0} } type FlowDelay_Choice_Enum int32 @@ -3800,11 +4152,11 @@ func (x FlowDelay_Choice_Enum) String() string { } func (FlowDelay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[70].Descriptor() + return file_otg_proto_enumTypes[77].Descriptor() } func (FlowDelay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[70] + return &file_otg_proto_enumTypes[77] } func (x FlowDelay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3813,7 +4165,7 @@ func (x FlowDelay_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowDelay_Choice_Enum.Descriptor instead. func (FlowDelay_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{179, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{197, 0, 0} } type FlowDurationInterBurstGap_Choice_Enum int32 @@ -3852,11 +4204,11 @@ func (x FlowDurationInterBurstGap_Choice_Enum) String() string { } func (FlowDurationInterBurstGap_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[71].Descriptor() + return file_otg_proto_enumTypes[78].Descriptor() } func (FlowDurationInterBurstGap_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[71] + return &file_otg_proto_enumTypes[78] } func (x FlowDurationInterBurstGap_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3865,7 +4217,7 @@ func (x FlowDurationInterBurstGap_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use FlowDurationInterBurstGap_Choice_Enum.Descriptor instead. func (FlowDurationInterBurstGap_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{183, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{201, 0, 0} } type FlowLatencyMetrics_Mode_Enum int32 @@ -3901,11 +4253,11 @@ func (x FlowLatencyMetrics_Mode_Enum) String() string { } func (FlowLatencyMetrics_Mode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[72].Descriptor() + return file_otg_proto_enumTypes[79].Descriptor() } func (FlowLatencyMetrics_Mode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[72] + return &file_otg_proto_enumTypes[79] } func (x FlowLatencyMetrics_Mode_Enum) Number() protoreflect.EnumNumber { @@ -3914,7 +4266,7 @@ func (x FlowLatencyMetrics_Mode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowLatencyMetrics_Mode_Enum.Descriptor instead. func (FlowLatencyMetrics_Mode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{185, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{203, 0, 0} } type FlowRxTxRatio_Choice_Enum int32 @@ -3950,11 +4302,11 @@ func (x FlowRxTxRatio_Choice_Enum) String() string { } func (FlowRxTxRatio_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[73].Descriptor() + return file_otg_proto_enumTypes[80].Descriptor() } func (FlowRxTxRatio_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[73] + return &file_otg_proto_enumTypes[80] } func (x FlowRxTxRatio_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3963,7 +4315,7 @@ func (x FlowRxTxRatio_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRxTxRatio_Choice_Enum.Descriptor instead. func (FlowRxTxRatio_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{187, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{205, 0, 0} } type EventRequest_Type_Enum int32 @@ -4011,11 +4363,11 @@ func (x EventRequest_Type_Enum) String() string { } func (EventRequest_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[74].Descriptor() + return file_otg_proto_enumTypes[81].Descriptor() } func (EventRequest_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[74] + return &file_otg_proto_enumTypes[81] } func (x EventRequest_Type_Enum) Number() protoreflect.EnumNumber { @@ -4024,7 +4376,7 @@ func (x EventRequest_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use EventRequest_Type_Enum.Descriptor instead. func (EventRequest_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{211, 0, 0} } type LldpConnection_Choice_Enum int32 @@ -4057,11 +4409,11 @@ func (x LldpConnection_Choice_Enum) String() string { } func (LldpConnection_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[75].Descriptor() + return file_otg_proto_enumTypes[82].Descriptor() } func (LldpConnection_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[75] + return &file_otg_proto_enumTypes[82] } func (x LldpConnection_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4070,7 +4422,7 @@ func (x LldpConnection_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpConnection_Choice_Enum.Descriptor instead. func (LldpConnection_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{214, 0, 0} } type LldpChassisId_Choice_Enum int32 @@ -4109,11 +4461,11 @@ func (x LldpChassisId_Choice_Enum) String() string { } func (LldpChassisId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[76].Descriptor() + return file_otg_proto_enumTypes[83].Descriptor() } func (LldpChassisId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[76] + return &file_otg_proto_enumTypes[83] } func (x LldpChassisId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4122,7 +4474,7 @@ func (x LldpChassisId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpChassisId_Choice_Enum.Descriptor instead. func (LldpChassisId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{197, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{215, 0, 0} } type LldpPortId_Choice_Enum int32 @@ -4161,11 +4513,11 @@ func (x LldpPortId_Choice_Enum) String() string { } func (LldpPortId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[77].Descriptor() + return file_otg_proto_enumTypes[84].Descriptor() } func (LldpPortId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[77] + return &file_otg_proto_enumTypes[84] } func (x LldpPortId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4174,7 +4526,7 @@ func (x LldpPortId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpPortId_Choice_Enum.Descriptor instead. func (LldpPortId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{216, 0, 0} } type LldpChassisMacSubType_Choice_Enum int32 @@ -4210,11 +4562,11 @@ func (x LldpChassisMacSubType_Choice_Enum) String() string { } func (LldpChassisMacSubType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[78].Descriptor() + return file_otg_proto_enumTypes[85].Descriptor() } func (LldpChassisMacSubType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[78] + return &file_otg_proto_enumTypes[85] } func (x LldpChassisMacSubType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4223,7 +4575,7 @@ func (x LldpChassisMacSubType_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpChassisMacSubType_Choice_Enum.Descriptor instead. func (LldpChassisMacSubType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{217, 0, 0} } type LldpPortInterfaceNameSubType_Choice_Enum int32 @@ -4259,11 +4611,11 @@ func (x LldpPortInterfaceNameSubType_Choice_Enum) String() string { } func (LldpPortInterfaceNameSubType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[79].Descriptor() + return file_otg_proto_enumTypes[86].Descriptor() } func (LldpPortInterfaceNameSubType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[79] + return &file_otg_proto_enumTypes[86] } func (x LldpPortInterfaceNameSubType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4272,7 +4624,7 @@ func (x LldpPortInterfaceNameSubType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use LldpPortInterfaceNameSubType_Choice_Enum.Descriptor instead. func (LldpPortInterfaceNameSubType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{218, 0, 0} } type LldpSystemName_Choice_Enum int32 @@ -4308,11 +4660,11 @@ func (x LldpSystemName_Choice_Enum) String() string { } func (LldpSystemName_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[80].Descriptor() + return file_otg_proto_enumTypes[87].Descriptor() } func (LldpSystemName_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[80] + return &file_otg_proto_enumTypes[87] } func (x LldpSystemName_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4321,7 +4673,7 @@ func (x LldpSystemName_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpSystemName_Choice_Enum.Descriptor instead. func (LldpSystemName_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{219, 0, 0} } type Error_Kind_Enum int32 @@ -4357,11 +4709,11 @@ func (x Error_Kind_Enum) String() string { } func (Error_Kind_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[81].Descriptor() + return file_otg_proto_enumTypes[88].Descriptor() } func (Error_Kind_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[81] + return &file_otg_proto_enumTypes[88] } func (x Error_Kind_Enum) Number() protoreflect.EnumNumber { @@ -4370,7 +4722,7 @@ func (x Error_Kind_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Error_Kind_Enum.Descriptor instead. func (Error_Kind_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{202, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{220, 0, 0} } type ConfigUpdate_Choice_Enum int32 @@ -4403,11 +4755,11 @@ func (x ConfigUpdate_Choice_Enum) String() string { } func (ConfigUpdate_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[82].Descriptor() + return file_otg_proto_enumTypes[89].Descriptor() } func (ConfigUpdate_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[82] + return &file_otg_proto_enumTypes[89] } func (x ConfigUpdate_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4416,7 +4768,7 @@ func (x ConfigUpdate_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ConfigUpdate_Choice_Enum.Descriptor instead. func (ConfigUpdate_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{204, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{222, 0, 0} } type FlowsUpdate_PropertyNames_Enum int32 @@ -4452,11 +4804,11 @@ func (x FlowsUpdate_PropertyNames_Enum) String() string { } func (FlowsUpdate_PropertyNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[83].Descriptor() + return file_otg_proto_enumTypes[90].Descriptor() } func (FlowsUpdate_PropertyNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[83] + return &file_otg_proto_enumTypes[90] } func (x FlowsUpdate_PropertyNames_Enum) Number() protoreflect.EnumNumber { @@ -4465,7 +4817,7 @@ func (x FlowsUpdate_PropertyNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowsUpdate_PropertyNames_Enum.Descriptor instead. func (FlowsUpdate_PropertyNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{205, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{223, 0, 0} } type ControlState_Choice_Enum int32 @@ -4504,11 +4856,11 @@ func (x ControlState_Choice_Enum) String() string { } func (ControlState_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[84].Descriptor() + return file_otg_proto_enumTypes[91].Descriptor() } func (ControlState_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[84] + return &file_otg_proto_enumTypes[91] } func (x ControlState_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4517,7 +4869,7 @@ func (x ControlState_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ControlState_Choice_Enum.Descriptor instead. func (ControlState_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{206, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{224, 0, 0} } type StatePort_Choice_Enum int32 @@ -4553,11 +4905,11 @@ func (x StatePort_Choice_Enum) String() string { } func (StatePort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[85].Descriptor() + return file_otg_proto_enumTypes[92].Descriptor() } func (StatePort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[85] + return &file_otg_proto_enumTypes[92] } func (x StatePort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4566,7 +4918,7 @@ func (x StatePort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePort_Choice_Enum.Descriptor instead. func (StatePort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{207, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{225, 0, 0} } type StateTraffic_Choice_Enum int32 @@ -4599,11 +4951,11 @@ func (x StateTraffic_Choice_Enum) String() string { } func (StateTraffic_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[86].Descriptor() + return file_otg_proto_enumTypes[93].Descriptor() } func (StateTraffic_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[86] + return &file_otg_proto_enumTypes[93] } func (x StateTraffic_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4612,7 +4964,7 @@ func (x StateTraffic_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateTraffic_Choice_Enum.Descriptor instead. func (StateTraffic_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{208, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{226, 0, 0} } type StateProtocol_Choice_Enum int32 @@ -4651,11 +5003,11 @@ func (x StateProtocol_Choice_Enum) String() string { } func (StateProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[87].Descriptor() + return file_otg_proto_enumTypes[94].Descriptor() } func (StateProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[87] + return &file_otg_proto_enumTypes[94] } func (x StateProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4664,7 +5016,7 @@ func (x StateProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocol_Choice_Enum.Descriptor instead. func (StateProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{209, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{227, 0, 0} } type StatePortLink_State_Enum int32 @@ -4700,11 +5052,11 @@ func (x StatePortLink_State_Enum) String() string { } func (StatePortLink_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[88].Descriptor() + return file_otg_proto_enumTypes[95].Descriptor() } func (StatePortLink_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[88] + return &file_otg_proto_enumTypes[95] } func (x StatePortLink_State_Enum) Number() protoreflect.EnumNumber { @@ -4713,7 +5065,7 @@ func (x StatePortLink_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePortLink_State_Enum.Descriptor instead. func (StatePortLink_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{210, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{228, 0, 0} } type StatePortCapture_State_Enum int32 @@ -4749,11 +5101,11 @@ func (x StatePortCapture_State_Enum) String() string { } func (StatePortCapture_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[89].Descriptor() + return file_otg_proto_enumTypes[96].Descriptor() } func (StatePortCapture_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[89] + return &file_otg_proto_enumTypes[96] } func (x StatePortCapture_State_Enum) Number() protoreflect.EnumNumber { @@ -4762,7 +5114,7 @@ func (x StatePortCapture_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePortCapture_State_Enum.Descriptor instead. func (StatePortCapture_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{211, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{229, 0, 0} } type StateTrafficFlowTransmit_State_Enum int32 @@ -4804,11 +5156,11 @@ func (x StateTrafficFlowTransmit_State_Enum) String() string { } func (StateTrafficFlowTransmit_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[90].Descriptor() + return file_otg_proto_enumTypes[97].Descriptor() } func (StateTrafficFlowTransmit_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[90] + return &file_otg_proto_enumTypes[97] } func (x StateTrafficFlowTransmit_State_Enum) Number() protoreflect.EnumNumber { @@ -4817,7 +5169,7 @@ func (x StateTrafficFlowTransmit_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateTrafficFlowTransmit_State_Enum.Descriptor instead. func (StateTrafficFlowTransmit_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{212, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{230, 0, 0} } type StateProtocolAll_State_Enum int32 @@ -4853,11 +5205,11 @@ func (x StateProtocolAll_State_Enum) String() string { } func (StateProtocolAll_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[91].Descriptor() + return file_otg_proto_enumTypes[98].Descriptor() } func (StateProtocolAll_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[91] + return &file_otg_proto_enumTypes[98] } func (x StateProtocolAll_State_Enum) Number() protoreflect.EnumNumber { @@ -4866,7 +5218,7 @@ func (x StateProtocolAll_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolAll_State_Enum.Descriptor instead. func (StateProtocolAll_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{213, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{231, 0, 0} } type StateProtocolRoute_State_Enum int32 @@ -4902,11 +5254,11 @@ func (x StateProtocolRoute_State_Enum) String() string { } func (StateProtocolRoute_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[92].Descriptor() + return file_otg_proto_enumTypes[99].Descriptor() } func (StateProtocolRoute_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[92] + return &file_otg_proto_enumTypes[99] } func (x StateProtocolRoute_State_Enum) Number() protoreflect.EnumNumber { @@ -4915,7 +5267,7 @@ func (x StateProtocolRoute_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolRoute_State_Enum.Descriptor instead. func (StateProtocolRoute_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{214, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{232, 0, 0} } type StateProtocolLacp_Choice_Enum int32 @@ -4948,11 +5300,11 @@ func (x StateProtocolLacp_Choice_Enum) String() string { } func (StateProtocolLacp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[93].Descriptor() + return file_otg_proto_enumTypes[100].Descriptor() } func (StateProtocolLacp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[93] + return &file_otg_proto_enumTypes[100] } func (x StateProtocolLacp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4961,7 +5313,7 @@ func (x StateProtocolLacp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolLacp_Choice_Enum.Descriptor instead. func (StateProtocolLacp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{215, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{233, 0, 0} } type StateProtocolLacpAdmin_State_Enum int32 @@ -4997,11 +5349,11 @@ func (x StateProtocolLacpAdmin_State_Enum) String() string { } func (StateProtocolLacpAdmin_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[94].Descriptor() + return file_otg_proto_enumTypes[101].Descriptor() } func (StateProtocolLacpAdmin_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[94] + return &file_otg_proto_enumTypes[101] } func (x StateProtocolLacpAdmin_State_Enum) Number() protoreflect.EnumNumber { @@ -5010,7 +5362,7 @@ func (x StateProtocolLacpAdmin_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolLacpAdmin_State_Enum.Descriptor instead. func (StateProtocolLacpAdmin_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{216, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{234, 0, 0} } type ControlAction_Choice_Enum int32 @@ -5043,11 +5395,11 @@ func (x ControlAction_Choice_Enum) String() string { } func (ControlAction_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[95].Descriptor() + return file_otg_proto_enumTypes[102].Descriptor() } func (ControlAction_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[95] + return &file_otg_proto_enumTypes[102] } func (x ControlAction_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5056,7 +5408,7 @@ func (x ControlAction_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ControlAction_Choice_Enum.Descriptor instead. func (ControlAction_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{217, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{235, 0, 0} } type ActionResponse_Choice_Enum int32 @@ -5089,11 +5441,11 @@ func (x ActionResponse_Choice_Enum) String() string { } func (ActionResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[96].Descriptor() + return file_otg_proto_enumTypes[103].Descriptor() } func (ActionResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[96] + return &file_otg_proto_enumTypes[103] } func (x ActionResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5102,7 +5454,7 @@ func (x ActionResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionResponse_Choice_Enum.Descriptor instead. func (ActionResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{237, 0, 0} } type ActionProtocol_Choice_Enum int32 @@ -5141,11 +5493,11 @@ func (x ActionProtocol_Choice_Enum) String() string { } func (ActionProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[97].Descriptor() + return file_otg_proto_enumTypes[104].Descriptor() } func (ActionProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[97] + return &file_otg_proto_enumTypes[104] } func (x ActionProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5154,7 +5506,7 @@ func (x ActionProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocol_Choice_Enum.Descriptor instead. func (ActionProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{220, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{238, 0, 0} } type ActionResponseProtocol_Choice_Enum int32 @@ -5190,11 +5542,11 @@ func (x ActionResponseProtocol_Choice_Enum) String() string { } func (ActionResponseProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[98].Descriptor() + return file_otg_proto_enumTypes[105].Descriptor() } func (ActionResponseProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[98] + return &file_otg_proto_enumTypes[105] } func (x ActionResponseProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5203,7 +5555,7 @@ func (x ActionResponseProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionResponseProtocol_Choice_Enum.Descriptor instead. func (ActionResponseProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{221, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{239, 0, 0} } type ActionProtocolIpv4_Choice_Enum int32 @@ -5236,11 +5588,11 @@ func (x ActionProtocolIpv4_Choice_Enum) String() string { } func (ActionProtocolIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[99].Descriptor() + return file_otg_proto_enumTypes[106].Descriptor() } func (ActionProtocolIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[99] + return &file_otg_proto_enumTypes[106] } func (x ActionProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5249,7 +5601,7 @@ func (x ActionProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolIpv4_Choice_Enum.Descriptor instead. func (ActionProtocolIpv4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{222, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{240, 0, 0} } type ActionResponseProtocolIpv4_Choice_Enum int32 @@ -5282,11 +5634,11 @@ func (x ActionResponseProtocolIpv4_Choice_Enum) String() string { } func (ActionResponseProtocolIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[100].Descriptor() + return file_otg_proto_enumTypes[107].Descriptor() } func (ActionResponseProtocolIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[100] + return &file_otg_proto_enumTypes[107] } func (x ActionResponseProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5295,7 +5647,7 @@ func (x ActionResponseProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use ActionResponseProtocolIpv4_Choice_Enum.Descriptor instead. func (ActionResponseProtocolIpv4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{223, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{241, 0, 0} } type ActionResponseProtocolIpv4PingResponse_Result_Enum int32 @@ -5331,11 +5683,11 @@ func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) String() string { } func (ActionResponseProtocolIpv4PingResponse_Result_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[101].Descriptor() + return file_otg_proto_enumTypes[108].Descriptor() } func (ActionResponseProtocolIpv4PingResponse_Result_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[101] + return &file_otg_proto_enumTypes[108] } func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) Number() protoreflect.EnumNumber { @@ -5344,7 +5696,7 @@ func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) Number() protoreflec // Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result_Enum.Descriptor instead. func (ActionResponseProtocolIpv4PingResponse_Result_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{245, 0, 0} } type ActionProtocolIpv6_Choice_Enum int32 @@ -5377,11 +5729,11 @@ func (x ActionProtocolIpv6_Choice_Enum) String() string { } func (ActionProtocolIpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[102].Descriptor() + return file_otg_proto_enumTypes[109].Descriptor() } func (ActionProtocolIpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[102] + return &file_otg_proto_enumTypes[109] } func (x ActionProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5390,7 +5742,7 @@ func (x ActionProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolIpv6_Choice_Enum.Descriptor instead. func (ActionProtocolIpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{246, 0, 0} } type ActionResponseProtocolIpv6_Choice_Enum int32 @@ -5423,11 +5775,11 @@ func (x ActionResponseProtocolIpv6_Choice_Enum) String() string { } func (ActionResponseProtocolIpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[103].Descriptor() + return file_otg_proto_enumTypes[110].Descriptor() } func (ActionResponseProtocolIpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[103] + return &file_otg_proto_enumTypes[110] } func (x ActionResponseProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5436,7 +5788,7 @@ func (x ActionResponseProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use ActionResponseProtocolIpv6_Choice_Enum.Descriptor instead. func (ActionResponseProtocolIpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{229, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{247, 0, 0} } type ActionResponseProtocolIpv6PingResponse_Result_Enum int32 @@ -5472,11 +5824,11 @@ func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) String() string { } func (ActionResponseProtocolIpv6PingResponse_Result_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[104].Descriptor() + return file_otg_proto_enumTypes[111].Descriptor() } func (ActionResponseProtocolIpv6PingResponse_Result_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[104] + return &file_otg_proto_enumTypes[111] } func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) Number() protoreflect.EnumNumber { @@ -5485,7 +5837,7 @@ func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) Number() protoreflec // Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result_Enum.Descriptor instead. func (ActionResponseProtocolIpv6PingResponse_Result_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{233, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{251, 0, 0} } type ActionProtocolBgp_Choice_Enum int32 @@ -5521,11 +5873,11 @@ func (x ActionProtocolBgp_Choice_Enum) String() string { } func (ActionProtocolBgp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[105].Descriptor() + return file_otg_proto_enumTypes[112].Descriptor() } func (ActionProtocolBgp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[105] + return &file_otg_proto_enumTypes[112] } func (x ActionProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5534,7 +5886,7 @@ func (x ActionProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolBgp_Choice_Enum.Descriptor instead. func (ActionProtocolBgp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{234, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{252, 0, 0} } type ActionProtocolBgpNotification_Choice_Enum int32 @@ -5585,11 +5937,11 @@ func (x ActionProtocolBgpNotification_Choice_Enum) String() string { } func (ActionProtocolBgpNotification_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[106].Descriptor() + return file_otg_proto_enumTypes[113].Descriptor() } func (ActionProtocolBgpNotification_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[106] + return &file_otg_proto_enumTypes[113] } func (x ActionProtocolBgpNotification_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5598,7 +5950,7 @@ func (x ActionProtocolBgpNotification_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use ActionProtocolBgpNotification_Choice_Enum.Descriptor instead. func (ActionProtocolBgpNotification_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{235, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{253, 0, 0} } type MetricsRequest_Choice_Enum int32 @@ -5655,11 +6007,11 @@ func (x MetricsRequest_Choice_Enum) String() string { } func (MetricsRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[107].Descriptor() + return file_otg_proto_enumTypes[114].Descriptor() } func (MetricsRequest_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[107] + return &file_otg_proto_enumTypes[114] } func (x MetricsRequest_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5668,7 +6020,7 @@ func (x MetricsRequest_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use MetricsRequest_Choice_Enum.Descriptor instead. func (MetricsRequest_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{255, 0, 0} } type MetricsResponse_Choice_Enum int32 @@ -5725,11 +6077,11 @@ func (x MetricsResponse_Choice_Enum) String() string { } func (MetricsResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[108].Descriptor() + return file_otg_proto_enumTypes[115].Descriptor() } func (MetricsResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[108] + return &file_otg_proto_enumTypes[115] } func (x MetricsResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5738,7 +6090,7 @@ func (x MetricsResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use MetricsResponse_Choice_Enum.Descriptor instead. func (MetricsResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{256, 0, 0} } type PortMetricsRequest_ColumnNames_Enum int32 @@ -5804,11 +6156,11 @@ func (x PortMetricsRequest_ColumnNames_Enum) String() string { } func (PortMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[109].Descriptor() + return file_otg_proto_enumTypes[116].Descriptor() } func (PortMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[109] + return &file_otg_proto_enumTypes[116] } func (x PortMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -5817,7 +6169,7 @@ func (x PortMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetricsRequest_ColumnNames_Enum.Descriptor instead. func (PortMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{257, 0, 0} } type PortMetric_Link_Enum int32 @@ -5853,11 +6205,11 @@ func (x PortMetric_Link_Enum) String() string { } func (PortMetric_Link_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[110].Descriptor() + return file_otg_proto_enumTypes[117].Descriptor() } func (PortMetric_Link_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[110] + return &file_otg_proto_enumTypes[117] } func (x PortMetric_Link_Enum) Number() protoreflect.EnumNumber { @@ -5866,7 +6218,7 @@ func (x PortMetric_Link_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Link_Enum.Descriptor instead. func (PortMetric_Link_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{258, 0, 0} } type PortMetric_Capture_Enum int32 @@ -5902,11 +6254,11 @@ func (x PortMetric_Capture_Enum) String() string { } func (PortMetric_Capture_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[111].Descriptor() + return file_otg_proto_enumTypes[118].Descriptor() } func (PortMetric_Capture_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[111] + return &file_otg_proto_enumTypes[118] } func (x PortMetric_Capture_Enum) Number() protoreflect.EnumNumber { @@ -5915,7 +6267,7 @@ func (x PortMetric_Capture_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Capture_Enum.Descriptor instead. func (PortMetric_Capture_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{258, 1, 0} } type PortMetric_Transmit_Enum int32 @@ -5951,11 +6303,11 @@ func (x PortMetric_Transmit_Enum) String() string { } func (PortMetric_Transmit_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[112].Descriptor() + return file_otg_proto_enumTypes[119].Descriptor() } func (PortMetric_Transmit_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[112] + return &file_otg_proto_enumTypes[119] } func (x PortMetric_Transmit_Enum) Number() protoreflect.EnumNumber { @@ -5964,7 +6316,7 @@ func (x PortMetric_Transmit_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Transmit_Enum.Descriptor instead. func (PortMetric_Transmit_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 2, 0} + return file_otg_proto_rawDescGZIP(), []int{258, 2, 0} } type FlowMetricsRequest_MetricNames_Enum int32 @@ -6015,11 +6367,11 @@ func (x FlowMetricsRequest_MetricNames_Enum) String() string { } func (FlowMetricsRequest_MetricNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[113].Descriptor() + return file_otg_proto_enumTypes[120].Descriptor() } func (FlowMetricsRequest_MetricNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[113] + return &file_otg_proto_enumTypes[120] } func (x FlowMetricsRequest_MetricNames_Enum) Number() protoreflect.EnumNumber { @@ -6028,7 +6380,7 @@ func (x FlowMetricsRequest_MetricNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetricsRequest_MetricNames_Enum.Descriptor instead. func (FlowMetricsRequest_MetricNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{259, 0, 0} } type FlowTaggedMetricsFilter_MetricNames_Enum int32 @@ -6076,11 +6428,11 @@ func (x FlowTaggedMetricsFilter_MetricNames_Enum) String() string { } func (FlowTaggedMetricsFilter_MetricNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[114].Descriptor() + return file_otg_proto_enumTypes[121].Descriptor() } func (FlowTaggedMetricsFilter_MetricNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[114] + return &file_otg_proto_enumTypes[121] } func (x FlowTaggedMetricsFilter_MetricNames_Enum) Number() protoreflect.EnumNumber { @@ -6089,7 +6441,7 @@ func (x FlowTaggedMetricsFilter_MetricNames_Enum) Number() protoreflect.EnumNumb // Deprecated: Use FlowTaggedMetricsFilter_MetricNames_Enum.Descriptor instead. func (FlowTaggedMetricsFilter_MetricNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{260, 0, 0} } type FlowMetric_Transmit_Enum int32 @@ -6128,11 +6480,11 @@ func (x FlowMetric_Transmit_Enum) String() string { } func (FlowMetric_Transmit_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[115].Descriptor() + return file_otg_proto_enumTypes[122].Descriptor() } func (FlowMetric_Transmit_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[115] + return &file_otg_proto_enumTypes[122] } func (x FlowMetric_Transmit_Enum) Number() protoreflect.EnumNumber { @@ -6141,7 +6493,7 @@ func (x FlowMetric_Transmit_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetric_Transmit_Enum.Descriptor instead. func (FlowMetric_Transmit_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{262, 0, 0} } type FlowMetricTagValue_Choice_Enum int32 @@ -6177,11 +6529,11 @@ func (x FlowMetricTagValue_Choice_Enum) String() string { } func (FlowMetricTagValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[116].Descriptor() + return file_otg_proto_enumTypes[123].Descriptor() } func (FlowMetricTagValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[116] + return &file_otg_proto_enumTypes[123] } func (x FlowMetricTagValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6190,7 +6542,7 @@ func (x FlowMetricTagValue_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetricTagValue_Choice_Enum.Descriptor instead. func (FlowMetricTagValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{265, 0, 0} } type Bgpv4MetricsRequest_ColumnNames_Enum int32 @@ -6268,11 +6620,11 @@ func (x Bgpv4MetricsRequest_ColumnNames_Enum) String() string { } func (Bgpv4MetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[117].Descriptor() + return file_otg_proto_enumTypes[124].Descriptor() } func (Bgpv4MetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[117] + return &file_otg_proto_enumTypes[124] } func (x Bgpv4MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6281,7 +6633,7 @@ func (x Bgpv4MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4MetricsRequest_ColumnNames_Enum.Descriptor instead. func (Bgpv4MetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{268, 0, 0} } type Bgpv4Metric_SessionState_Enum int32 @@ -6317,11 +6669,11 @@ func (x Bgpv4Metric_SessionState_Enum) String() string { } func (Bgpv4Metric_SessionState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[118].Descriptor() + return file_otg_proto_enumTypes[125].Descriptor() } func (Bgpv4Metric_SessionState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[118] + return &file_otg_proto_enumTypes[125] } func (x Bgpv4Metric_SessionState_Enum) Number() protoreflect.EnumNumber { @@ -6330,7 +6682,7 @@ func (x Bgpv4Metric_SessionState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4Metric_SessionState_Enum.Descriptor instead. func (Bgpv4Metric_SessionState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{269, 0, 0} } type Bgpv4Metric_FsmState_Enum int32 @@ -6378,11 +6730,11 @@ func (x Bgpv4Metric_FsmState_Enum) String() string { } func (Bgpv4Metric_FsmState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[119].Descriptor() + return file_otg_proto_enumTypes[126].Descriptor() } func (Bgpv4Metric_FsmState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[119] + return &file_otg_proto_enumTypes[126] } func (x Bgpv4Metric_FsmState_Enum) Number() protoreflect.EnumNumber { @@ -6391,7 +6743,7 @@ func (x Bgpv4Metric_FsmState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4Metric_FsmState_Enum.Descriptor instead. func (Bgpv4Metric_FsmState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{269, 1, 0} } type Bgpv6MetricsRequest_ColumnNames_Enum int32 @@ -6469,11 +6821,11 @@ func (x Bgpv6MetricsRequest_ColumnNames_Enum) String() string { } func (Bgpv6MetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[120].Descriptor() + return file_otg_proto_enumTypes[127].Descriptor() } func (Bgpv6MetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[120] + return &file_otg_proto_enumTypes[127] } func (x Bgpv6MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6482,7 +6834,7 @@ func (x Bgpv6MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6MetricsRequest_ColumnNames_Enum.Descriptor instead. func (Bgpv6MetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{252, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{270, 0, 0} } type Bgpv6Metric_SessionState_Enum int32 @@ -6518,11 +6870,11 @@ func (x Bgpv6Metric_SessionState_Enum) String() string { } func (Bgpv6Metric_SessionState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[121].Descriptor() + return file_otg_proto_enumTypes[128].Descriptor() } func (Bgpv6Metric_SessionState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[121] + return &file_otg_proto_enumTypes[128] } func (x Bgpv6Metric_SessionState_Enum) Number() protoreflect.EnumNumber { @@ -6531,7 +6883,7 @@ func (x Bgpv6Metric_SessionState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6Metric_SessionState_Enum.Descriptor instead. func (Bgpv6Metric_SessionState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{271, 0, 0} } type Bgpv6Metric_FsmState_Enum int32 @@ -6579,11 +6931,11 @@ func (x Bgpv6Metric_FsmState_Enum) String() string { } func (Bgpv6Metric_FsmState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[122].Descriptor() + return file_otg_proto_enumTypes[129].Descriptor() } func (Bgpv6Metric_FsmState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[122] + return &file_otg_proto_enumTypes[129] } func (x Bgpv6Metric_FsmState_Enum) Number() protoreflect.EnumNumber { @@ -6592,7 +6944,7 @@ func (x Bgpv6Metric_FsmState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6Metric_FsmState_Enum.Descriptor instead. func (Bgpv6Metric_FsmState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{271, 1, 0} } type IsisMetricsRequest_ColumnNames_Enum int32 @@ -6700,11 +7052,11 @@ func (x IsisMetricsRequest_ColumnNames_Enum) String() string { } func (IsisMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[123].Descriptor() + return file_otg_proto_enumTypes[130].Descriptor() } func (IsisMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[123] + return &file_otg_proto_enumTypes[130] } func (x IsisMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6713,7 +7065,7 @@ func (x IsisMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisMetricsRequest_ColumnNames_Enum.Descriptor instead. func (IsisMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{272, 0, 0} } type LagMetricsRequest_ColumnNames_Enum int32 @@ -6773,11 +7125,11 @@ func (x LagMetricsRequest_ColumnNames_Enum) String() string { } func (LagMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[124].Descriptor() + return file_otg_proto_enumTypes[131].Descriptor() } func (LagMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[124] + return &file_otg_proto_enumTypes[131] } func (x LagMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6786,7 +7138,7 @@ func (x LagMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LagMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LagMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{274, 0, 0} } type LagMetric_OperStatus_Enum int32 @@ -6822,11 +7174,11 @@ func (x LagMetric_OperStatus_Enum) String() string { } func (LagMetric_OperStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[125].Descriptor() + return file_otg_proto_enumTypes[132].Descriptor() } func (LagMetric_OperStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[125] + return &file_otg_proto_enumTypes[132] } func (x LagMetric_OperStatus_Enum) Number() protoreflect.EnumNumber { @@ -6835,7 +7187,7 @@ func (x LagMetric_OperStatus_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LagMetric_OperStatus_Enum.Descriptor instead. func (LagMetric_OperStatus_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{257, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{275, 0, 0} } type LacpMetricsRequest_ColumnNames_Enum int32 @@ -6910,11 +7262,11 @@ func (x LacpMetricsRequest_ColumnNames_Enum) String() string { } func (LacpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[126].Descriptor() + return file_otg_proto_enumTypes[133].Descriptor() } func (LacpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[126] + return &file_otg_proto_enumTypes[133] } func (x LacpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6923,7 +7275,7 @@ func (x LacpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LacpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{258, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{276, 0, 0} } type LacpMetric_Activity_Enum int32 @@ -6959,11 +7311,11 @@ func (x LacpMetric_Activity_Enum) String() string { } func (LacpMetric_Activity_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[127].Descriptor() + return file_otg_proto_enumTypes[134].Descriptor() } func (LacpMetric_Activity_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[127] + return &file_otg_proto_enumTypes[134] } func (x LacpMetric_Activity_Enum) Number() protoreflect.EnumNumber { @@ -6972,7 +7324,7 @@ func (x LacpMetric_Activity_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Activity_Enum.Descriptor instead. func (LacpMetric_Activity_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{277, 0, 0} } type LacpMetric_Timeout_Enum int32 @@ -7008,11 +7360,11 @@ func (x LacpMetric_Timeout_Enum) String() string { } func (LacpMetric_Timeout_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[128].Descriptor() + return file_otg_proto_enumTypes[135].Descriptor() } func (LacpMetric_Timeout_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[128] + return &file_otg_proto_enumTypes[135] } func (x LacpMetric_Timeout_Enum) Number() protoreflect.EnumNumber { @@ -7021,7 +7373,7 @@ func (x LacpMetric_Timeout_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Timeout_Enum.Descriptor instead. func (LacpMetric_Timeout_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{277, 1, 0} } type LacpMetric_Synchronization_Enum int32 @@ -7057,11 +7409,11 @@ func (x LacpMetric_Synchronization_Enum) String() string { } func (LacpMetric_Synchronization_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[129].Descriptor() + return file_otg_proto_enumTypes[136].Descriptor() } func (LacpMetric_Synchronization_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[129] + return &file_otg_proto_enumTypes[136] } func (x LacpMetric_Synchronization_Enum) Number() protoreflect.EnumNumber { @@ -7070,7 +7422,7 @@ func (x LacpMetric_Synchronization_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Synchronization_Enum.Descriptor instead. func (LacpMetric_Synchronization_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 2, 0} + return file_otg_proto_rawDescGZIP(), []int{277, 2, 0} } type LldpMetricsRequest_ColumnNames_Enum int32 @@ -7118,11 +7470,11 @@ func (x LldpMetricsRequest_ColumnNames_Enum) String() string { } func (LldpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[130].Descriptor() + return file_otg_proto_enumTypes[137].Descriptor() } func (LldpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[130] + return &file_otg_proto_enumTypes[137] } func (x LldpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7131,7 +7483,7 @@ func (x LldpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LldpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{278, 0, 0} } type RsvpMetricsRequest_ColumnNames_Enum int32 @@ -7251,11 +7603,11 @@ func (x RsvpMetricsRequest_ColumnNames_Enum) String() string { } func (RsvpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[131].Descriptor() + return file_otg_proto_enumTypes[138].Descriptor() } func (RsvpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[131] + return &file_otg_proto_enumTypes[138] } func (x RsvpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7264,7 +7616,7 @@ func (x RsvpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (RsvpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{280, 0, 0} } type StatesRequest_Choice_Enum int32 @@ -7312,11 +7664,11 @@ func (x StatesRequest_Choice_Enum) String() string { } func (StatesRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[132].Descriptor() + return file_otg_proto_enumTypes[139].Descriptor() } func (StatesRequest_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[132] + return &file_otg_proto_enumTypes[139] } func (x StatesRequest_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7325,7 +7677,7 @@ func (x StatesRequest_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatesRequest_Choice_Enum.Descriptor instead. func (StatesRequest_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{282, 0, 0} } type StatesResponse_Choice_Enum int32 @@ -7373,11 +7725,11 @@ func (x StatesResponse_Choice_Enum) String() string { } func (StatesResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[133].Descriptor() + return file_otg_proto_enumTypes[140].Descriptor() } func (StatesResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[133] + return &file_otg_proto_enumTypes[140] } func (x StatesResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7386,7 +7738,7 @@ func (x StatesResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatesResponse_Choice_Enum.Descriptor instead. func (StatesResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{283, 0, 0} } type BgpPrefixStateRequest_PrefixFilters_Enum int32 @@ -7422,11 +7774,11 @@ func (x BgpPrefixStateRequest_PrefixFilters_Enum) String() string { } func (BgpPrefixStateRequest_PrefixFilters_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[134].Descriptor() + return file_otg_proto_enumTypes[141].Descriptor() } func (BgpPrefixStateRequest_PrefixFilters_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[134] + return &file_otg_proto_enumTypes[141] } func (x BgpPrefixStateRequest_PrefixFilters_Enum) Number() protoreflect.EnumNumber { @@ -7435,7 +7787,7 @@ func (x BgpPrefixStateRequest_PrefixFilters_Enum) Number() protoreflect.EnumNumb // Deprecated: Use BgpPrefixStateRequest_PrefixFilters_Enum.Descriptor instead. func (BgpPrefixStateRequest_PrefixFilters_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{270, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{288, 0, 0} } type BgpPrefixIpv4UnicastFilter_Origin_Enum int32 @@ -7474,11 +7826,11 @@ func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) String() string { } func (BgpPrefixIpv4UnicastFilter_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[135].Descriptor() + return file_otg_proto_enumTypes[142].Descriptor() } func (BgpPrefixIpv4UnicastFilter_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[135] + return &file_otg_proto_enumTypes[142] } func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber { @@ -7487,7 +7839,7 @@ func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin_Enum.Descriptor instead. func (BgpPrefixIpv4UnicastFilter_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{289, 0, 0} } type BgpPrefixIpv6UnicastFilter_Origin_Enum int32 @@ -7526,11 +7878,11 @@ func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) String() string { } func (BgpPrefixIpv6UnicastFilter_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[136].Descriptor() + return file_otg_proto_enumTypes[143].Descriptor() } func (BgpPrefixIpv6UnicastFilter_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[136] + return &file_otg_proto_enumTypes[143] } func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber { @@ -7539,7 +7891,7 @@ func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin_Enum.Descriptor instead. func (BgpPrefixIpv6UnicastFilter_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{290, 0, 0} } type BgpPrefixIpv4UnicastState_Origin_Enum int32 @@ -7578,11 +7930,11 @@ func (x BgpPrefixIpv4UnicastState_Origin_Enum) String() string { } func (BgpPrefixIpv4UnicastState_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[137].Descriptor() + return file_otg_proto_enumTypes[144].Descriptor() } func (BgpPrefixIpv4UnicastState_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[137] + return &file_otg_proto_enumTypes[144] } func (x BgpPrefixIpv4UnicastState_Origin_Enum) Number() protoreflect.EnumNumber { @@ -7591,7 +7943,7 @@ func (x BgpPrefixIpv4UnicastState_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv4UnicastState_Origin_Enum.Descriptor instead. func (BgpPrefixIpv4UnicastState_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{292, 0, 0} } type BgpPrefixIpv6UnicastState_Origin_Enum int32 @@ -7630,11 +7982,11 @@ func (x BgpPrefixIpv6UnicastState_Origin_Enum) String() string { } func (BgpPrefixIpv6UnicastState_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[138].Descriptor() + return file_otg_proto_enumTypes[145].Descriptor() } func (BgpPrefixIpv6UnicastState_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[138] + return &file_otg_proto_enumTypes[145] } func (x BgpPrefixIpv6UnicastState_Origin_Enum) Number() protoreflect.EnumNumber { @@ -7643,7 +7995,7 @@ func (x BgpPrefixIpv6UnicastState_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv6UnicastState_Origin_Enum.Descriptor instead. func (BgpPrefixIpv6UnicastState_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{293, 0, 0} } type ResultBgpCommunity_Type_Enum int32 @@ -7691,11 +8043,11 @@ func (x ResultBgpCommunity_Type_Enum) String() string { } func (ResultBgpCommunity_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[139].Descriptor() + return file_otg_proto_enumTypes[146].Descriptor() } func (ResultBgpCommunity_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[139] + return &file_otg_proto_enumTypes[146] } func (x ResultBgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { @@ -7704,7 +8056,7 @@ func (x ResultBgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ResultBgpCommunity_Type_Enum.Descriptor instead. func (ResultBgpCommunity_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{276, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{294, 0, 0} } type ResultBgpAsPathSegment_Type_Enum int32 @@ -7746,11 +8098,11 @@ func (x ResultBgpAsPathSegment_Type_Enum) String() string { } func (ResultBgpAsPathSegment_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[140].Descriptor() + return file_otg_proto_enumTypes[147].Descriptor() } func (ResultBgpAsPathSegment_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[140] + return &file_otg_proto_enumTypes[147] } func (x ResultBgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { @@ -7759,7 +8111,7 @@ func (x ResultBgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ResultBgpAsPathSegment_Type_Enum.Descriptor instead. func (ResultBgpAsPathSegment_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{296, 0, 0} } type IsisLspState_PduType_Enum int32 @@ -7795,11 +8147,11 @@ func (x IsisLspState_PduType_Enum) String() string { } func (IsisLspState_PduType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[141].Descriptor() + return file_otg_proto_enumTypes[148].Descriptor() } func (IsisLspState_PduType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[141] + return &file_otg_proto_enumTypes[148] } func (x IsisLspState_PduType_Enum) Number() protoreflect.EnumNumber { @@ -7808,7 +8160,7 @@ func (x IsisLspState_PduType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspState_PduType_Enum.Descriptor instead. func (IsisLspState_PduType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{299, 0, 0} } type IsisLspV4Prefix_RedistributionType_Enum int32 @@ -7844,11 +8196,11 @@ func (x IsisLspV4Prefix_RedistributionType_Enum) String() string { } func (IsisLspV4Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[142].Descriptor() + return file_otg_proto_enumTypes[149].Descriptor() } func (IsisLspV4Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[142] + return &file_otg_proto_enumTypes[149] } func (x IsisLspV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -7857,7 +8209,7 @@ func (x IsisLspV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use IsisLspV4Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspV4Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{308, 0, 0} } type IsisLspV4Prefix_OriginType_Enum int32 @@ -7893,11 +8245,11 @@ func (x IsisLspV4Prefix_OriginType_Enum) String() string { } func (IsisLspV4Prefix_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[143].Descriptor() + return file_otg_proto_enumTypes[150].Descriptor() } func (IsisLspV4Prefix_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[143] + return &file_otg_proto_enumTypes[150] } func (x IsisLspV4Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -7906,7 +8258,7 @@ func (x IsisLspV4Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspV4Prefix_OriginType_Enum.Descriptor instead. func (IsisLspV4Prefix_OriginType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{308, 1, 0} } type IsisLspExtendedV4Prefix_RedistributionType_Enum int32 @@ -7942,11 +8294,11 @@ func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) String() string { } func (IsisLspExtendedV4Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[144].Descriptor() + return file_otg_proto_enumTypes[151].Descriptor() } func (IsisLspExtendedV4Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[144] + return &file_otg_proto_enumTypes[151] } func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -7955,7 +8307,7 @@ func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) Number() protoreflect.E // Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspExtendedV4Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{310, 0, 0} } type IsisLspV6Prefix_RedistributionType_Enum int32 @@ -7991,11 +8343,11 @@ func (x IsisLspV6Prefix_RedistributionType_Enum) String() string { } func (IsisLspV6Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[145].Descriptor() + return file_otg_proto_enumTypes[152].Descriptor() } func (IsisLspV6Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[145] + return &file_otg_proto_enumTypes[152] } func (x IsisLspV6Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -8004,7 +8356,7 @@ func (x IsisLspV6Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use IsisLspV6Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspV6Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{312, 0, 0} } type IsisLspV6Prefix_OriginType_Enum int32 @@ -8040,11 +8392,11 @@ func (x IsisLspV6Prefix_OriginType_Enum) String() string { } func (IsisLspV6Prefix_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[146].Descriptor() + return file_otg_proto_enumTypes[153].Descriptor() } func (IsisLspV6Prefix_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[146] + return &file_otg_proto_enumTypes[153] } func (x IsisLspV6Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -8053,7 +8405,7 @@ func (x IsisLspV6Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspV6Prefix_OriginType_Enum.Descriptor instead. func (IsisLspV6Prefix_OriginType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{312, 1, 0} } type LldpNeighborsState_ChassisIdType_Enum int32 @@ -8104,11 +8456,11 @@ func (x LldpNeighborsState_ChassisIdType_Enum) String() string { } func (LldpNeighborsState_ChassisIdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[147].Descriptor() + return file_otg_proto_enumTypes[154].Descriptor() } func (LldpNeighborsState_ChassisIdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[147] + return &file_otg_proto_enumTypes[154] } func (x LldpNeighborsState_ChassisIdType_Enum) Number() protoreflect.EnumNumber { @@ -8117,7 +8469,7 @@ func (x LldpNeighborsState_ChassisIdType_Enum) Number() protoreflect.EnumNumber // Deprecated: Use LldpNeighborsState_ChassisIdType_Enum.Descriptor instead. func (LldpNeighborsState_ChassisIdType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{315, 0, 0} } type LldpNeighborsState_PortIdType_Enum int32 @@ -8168,11 +8520,11 @@ func (x LldpNeighborsState_PortIdType_Enum) String() string { } func (LldpNeighborsState_PortIdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[148].Descriptor() + return file_otg_proto_enumTypes[155].Descriptor() } func (LldpNeighborsState_PortIdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[148] + return &file_otg_proto_enumTypes[155] } func (x LldpNeighborsState_PortIdType_Enum) Number() protoreflect.EnumNumber { @@ -8181,7 +8533,7 @@ func (x LldpNeighborsState_PortIdType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpNeighborsState_PortIdType_Enum.Descriptor instead. func (LldpNeighborsState_PortIdType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{315, 1, 0} } type LldpCapabilityState_CapabilityName_Enum int32 @@ -8244,11 +8596,11 @@ func (x LldpCapabilityState_CapabilityName_Enum) String() string { } func (LldpCapabilityState_CapabilityName_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[149].Descriptor() + return file_otg_proto_enumTypes[156].Descriptor() } func (LldpCapabilityState_CapabilityName_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[149] + return &file_otg_proto_enumTypes[156] } func (x LldpCapabilityState_CapabilityName_Enum) Number() protoreflect.EnumNumber { @@ -8257,7 +8609,7 @@ func (x LldpCapabilityState_CapabilityName_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use LldpCapabilityState_CapabilityName_Enum.Descriptor instead. func (LldpCapabilityState_CapabilityName_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{299, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{317, 0, 0} } type RsvpLspState_SessionStatus_Enum int32 @@ -8293,11 +8645,11 @@ func (x RsvpLspState_SessionStatus_Enum) String() string { } func (RsvpLspState_SessionStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[150].Descriptor() + return file_otg_proto_enumTypes[157].Descriptor() } func (RsvpLspState_SessionStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[150] + return &file_otg_proto_enumTypes[157] } func (x RsvpLspState_SessionStatus_Enum) Number() protoreflect.EnumNumber { @@ -8306,7 +8658,7 @@ func (x RsvpLspState_SessionStatus_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspState_SessionStatus_Enum.Descriptor instead. func (RsvpLspState_SessionStatus_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{321, 0, 0} } type RsvpLspState_LastFlapReason_Enum int32 @@ -8345,11 +8697,11 @@ func (x RsvpLspState_LastFlapReason_Enum) String() string { } func (RsvpLspState_LastFlapReason_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[151].Descriptor() + return file_otg_proto_enumTypes[158].Descriptor() } func (RsvpLspState_LastFlapReason_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[151] + return &file_otg_proto_enumTypes[158] } func (x RsvpLspState_LastFlapReason_Enum) Number() protoreflect.EnumNumber { @@ -8358,7 +8710,7 @@ func (x RsvpLspState_LastFlapReason_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspState_LastFlapReason_Enum.Descriptor instead. func (RsvpLspState_LastFlapReason_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{321, 1, 0} } type RsvpLspIpv4Ero_Type_Enum int32 @@ -8406,11 +8758,11 @@ func (x RsvpLspIpv4Ero_Type_Enum) String() string { } func (RsvpLspIpv4Ero_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[152].Descriptor() + return file_otg_proto_enumTypes[159].Descriptor() } func (RsvpLspIpv4Ero_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[152] + return &file_otg_proto_enumTypes[159] } func (x RsvpLspIpv4Ero_Type_Enum) Number() protoreflect.EnumNumber { @@ -8419,7 +8771,7 @@ func (x RsvpLspIpv4Ero_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspIpv4Ero_Type_Enum.Descriptor instead. func (RsvpLspIpv4Ero_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{305, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{323, 0, 0} } type PatternFlowEthernetDst_Choice_Enum int32 @@ -8464,11 +8816,11 @@ func (x PatternFlowEthernetDst_Choice_Enum) String() string { } func (PatternFlowEthernetDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[153].Descriptor() + return file_otg_proto_enumTypes[160].Descriptor() } func (PatternFlowEthernetDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[153] + return &file_otg_proto_enumTypes[160] } func (x PatternFlowEthernetDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8477,7 +8829,7 @@ func (x PatternFlowEthernetDst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowEthernetDst_Choice_Enum.Descriptor instead. func (PatternFlowEthernetDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{309, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{327, 0, 0} } type PatternFlowEthernetSrc_Choice_Enum int32 @@ -8519,11 +8871,11 @@ func (x PatternFlowEthernetSrc_Choice_Enum) String() string { } func (PatternFlowEthernetSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[154].Descriptor() + return file_otg_proto_enumTypes[161].Descriptor() } func (PatternFlowEthernetSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[154] + return &file_otg_proto_enumTypes[161] } func (x PatternFlowEthernetSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8532,7 +8884,7 @@ func (x PatternFlowEthernetSrc_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowEthernetSrc_Choice_Enum.Descriptor instead. func (PatternFlowEthernetSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{312, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{330, 0, 0} } type PatternFlowEthernetEtherType_Choice_Enum int32 @@ -8577,11 +8929,11 @@ func (x PatternFlowEthernetEtherType_Choice_Enum) String() string { } func (PatternFlowEthernetEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[155].Descriptor() + return file_otg_proto_enumTypes[162].Descriptor() } func (PatternFlowEthernetEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[155] + return &file_otg_proto_enumTypes[162] } func (x PatternFlowEthernetEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8590,7 +8942,7 @@ func (x PatternFlowEthernetEtherType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowEthernetEtherType_Choice_Enum.Descriptor instead. func (PatternFlowEthernetEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{315, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{333, 0, 0} } type PatternFlowEthernetPfcQueue_Choice_Enum int32 @@ -8632,11 +8984,11 @@ func (x PatternFlowEthernetPfcQueue_Choice_Enum) String() string { } func (PatternFlowEthernetPfcQueue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[156].Descriptor() + return file_otg_proto_enumTypes[163].Descriptor() } func (PatternFlowEthernetPfcQueue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[156] + return &file_otg_proto_enumTypes[163] } func (x PatternFlowEthernetPfcQueue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8645,7 +8997,7 @@ func (x PatternFlowEthernetPfcQueue_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPfcQueue_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPfcQueue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{318, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{336, 0, 0} } type PatternFlowVlanPriority_Choice_Enum int32 @@ -8687,11 +9039,11 @@ func (x PatternFlowVlanPriority_Choice_Enum) String() string { } func (PatternFlowVlanPriority_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[157].Descriptor() + return file_otg_proto_enumTypes[164].Descriptor() } func (PatternFlowVlanPriority_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[157] + return &file_otg_proto_enumTypes[164] } func (x PatternFlowVlanPriority_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8700,7 +9052,7 @@ func (x PatternFlowVlanPriority_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanPriority_Choice_Enum.Descriptor instead. func (PatternFlowVlanPriority_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{339, 0, 0} } type PatternFlowVlanCfi_Choice_Enum int32 @@ -8742,11 +9094,11 @@ func (x PatternFlowVlanCfi_Choice_Enum) String() string { } func (PatternFlowVlanCfi_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[158].Descriptor() + return file_otg_proto_enumTypes[165].Descriptor() } func (PatternFlowVlanCfi_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[158] + return &file_otg_proto_enumTypes[165] } func (x PatternFlowVlanCfi_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8755,7 +9107,7 @@ func (x PatternFlowVlanCfi_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanCfi_Choice_Enum.Descriptor instead. func (PatternFlowVlanCfi_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{342, 0, 0} } type PatternFlowVlanId_Choice_Enum int32 @@ -8797,11 +9149,11 @@ func (x PatternFlowVlanId_Choice_Enum) String() string { } func (PatternFlowVlanId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[159].Descriptor() + return file_otg_proto_enumTypes[166].Descriptor() } func (PatternFlowVlanId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[159] + return &file_otg_proto_enumTypes[166] } func (x PatternFlowVlanId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8810,7 +9162,7 @@ func (x PatternFlowVlanId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanId_Choice_Enum.Descriptor instead. func (PatternFlowVlanId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{327, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{345, 0, 0} } type PatternFlowVlanTpid_Choice_Enum int32 @@ -8852,11 +9204,11 @@ func (x PatternFlowVlanTpid_Choice_Enum) String() string { } func (PatternFlowVlanTpid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[160].Descriptor() + return file_otg_proto_enumTypes[167].Descriptor() } func (PatternFlowVlanTpid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[160] + return &file_otg_proto_enumTypes[167] } func (x PatternFlowVlanTpid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8865,7 +9217,7 @@ func (x PatternFlowVlanTpid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanTpid_Choice_Enum.Descriptor instead. func (PatternFlowVlanTpid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{348, 0, 0} } type PatternFlowVxlanFlags_Choice_Enum int32 @@ -8907,11 +9259,11 @@ func (x PatternFlowVxlanFlags_Choice_Enum) String() string { } func (PatternFlowVxlanFlags_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[161].Descriptor() + return file_otg_proto_enumTypes[168].Descriptor() } func (PatternFlowVxlanFlags_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[161] + return &file_otg_proto_enumTypes[168] } func (x PatternFlowVxlanFlags_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8920,7 +9272,7 @@ func (x PatternFlowVxlanFlags_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVxlanFlags_Choice_Enum.Descriptor instead. func (PatternFlowVxlanFlags_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{333, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{351, 0, 0} } type PatternFlowVxlanReserved0_Choice_Enum int32 @@ -8962,11 +9314,11 @@ func (x PatternFlowVxlanReserved0_Choice_Enum) String() string { } func (PatternFlowVxlanReserved0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[162].Descriptor() + return file_otg_proto_enumTypes[169].Descriptor() } func (PatternFlowVxlanReserved0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[162] + return &file_otg_proto_enumTypes[169] } func (x PatternFlowVxlanReserved0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8975,7 +9327,7 @@ func (x PatternFlowVxlanReserved0_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowVxlanReserved0_Choice_Enum.Descriptor instead. func (PatternFlowVxlanReserved0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{336, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{354, 0, 0} } type PatternFlowVxlanVni_Choice_Enum int32 @@ -9020,11 +9372,11 @@ func (x PatternFlowVxlanVni_Choice_Enum) String() string { } func (PatternFlowVxlanVni_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[163].Descriptor() + return file_otg_proto_enumTypes[170].Descriptor() } func (PatternFlowVxlanVni_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[163] + return &file_otg_proto_enumTypes[170] } func (x PatternFlowVxlanVni_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9033,7 +9385,7 @@ func (x PatternFlowVxlanVni_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVxlanVni_Choice_Enum.Descriptor instead. func (PatternFlowVxlanVni_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{339, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{357, 0, 0} } type PatternFlowVxlanReserved1_Choice_Enum int32 @@ -9075,11 +9427,11 @@ func (x PatternFlowVxlanReserved1_Choice_Enum) String() string { } func (PatternFlowVxlanReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[164].Descriptor() + return file_otg_proto_enumTypes[171].Descriptor() } func (PatternFlowVxlanReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[164] + return &file_otg_proto_enumTypes[171] } func (x PatternFlowVxlanReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9088,7 +9440,7 @@ func (x PatternFlowVxlanReserved1_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowVxlanReserved1_Choice_Enum.Descriptor instead. func (PatternFlowVxlanReserved1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{342, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{360, 0, 0} } type PatternFlowIpv4Version_Choice_Enum int32 @@ -9130,11 +9482,11 @@ func (x PatternFlowIpv4Version_Choice_Enum) String() string { } func (PatternFlowIpv4Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[165].Descriptor() + return file_otg_proto_enumTypes[172].Descriptor() } func (PatternFlowIpv4Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[165] + return &file_otg_proto_enumTypes[172] } func (x PatternFlowIpv4Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9143,7 +9495,7 @@ func (x PatternFlowIpv4Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Version_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{345, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{363, 0, 0} } type PatternFlowIpv4HeaderLength_Choice_Enum int32 @@ -9188,11 +9540,11 @@ func (x PatternFlowIpv4HeaderLength_Choice_Enum) String() string { } func (PatternFlowIpv4HeaderLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[166].Descriptor() + return file_otg_proto_enumTypes[173].Descriptor() } func (PatternFlowIpv4HeaderLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[166] + return &file_otg_proto_enumTypes[173] } func (x PatternFlowIpv4HeaderLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9201,7 +9553,7 @@ func (x PatternFlowIpv4HeaderLength_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv4HeaderLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv4HeaderLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{348, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{366, 0, 0} } type PatternFlowIpv4TotalLength_Choice_Enum int32 @@ -9246,11 +9598,11 @@ func (x PatternFlowIpv4TotalLength_Choice_Enum) String() string { } func (PatternFlowIpv4TotalLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[167].Descriptor() + return file_otg_proto_enumTypes[174].Descriptor() } func (PatternFlowIpv4TotalLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[167] + return &file_otg_proto_enumTypes[174] } func (x PatternFlowIpv4TotalLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9259,7 +9611,7 @@ func (x PatternFlowIpv4TotalLength_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TotalLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TotalLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{351, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{369, 0, 0} } type PatternFlowIpv4Identification_Choice_Enum int32 @@ -9301,11 +9653,11 @@ func (x PatternFlowIpv4Identification_Choice_Enum) String() string { } func (PatternFlowIpv4Identification_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[168].Descriptor() + return file_otg_proto_enumTypes[175].Descriptor() } func (PatternFlowIpv4Identification_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[168] + return &file_otg_proto_enumTypes[175] } func (x PatternFlowIpv4Identification_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9314,7 +9666,7 @@ func (x PatternFlowIpv4Identification_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4Identification_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Identification_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{354, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{372, 0, 0} } type PatternFlowIpv4Reserved_Choice_Enum int32 @@ -9356,11 +9708,11 @@ func (x PatternFlowIpv4Reserved_Choice_Enum) String() string { } func (PatternFlowIpv4Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[169].Descriptor() + return file_otg_proto_enumTypes[176].Descriptor() } func (PatternFlowIpv4Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[169] + return &file_otg_proto_enumTypes[176] } func (x PatternFlowIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9369,7 +9721,7 @@ func (x PatternFlowIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Reserved_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Reserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{357, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{375, 0, 0} } type PatternFlowIpv4DontFragment_Choice_Enum int32 @@ -9411,11 +9763,11 @@ func (x PatternFlowIpv4DontFragment_Choice_Enum) String() string { } func (PatternFlowIpv4DontFragment_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[170].Descriptor() + return file_otg_proto_enumTypes[177].Descriptor() } func (PatternFlowIpv4DontFragment_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[170] + return &file_otg_proto_enumTypes[177] } func (x PatternFlowIpv4DontFragment_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9424,7 +9776,7 @@ func (x PatternFlowIpv4DontFragment_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv4DontFragment_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DontFragment_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{360, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{378, 0, 0} } type PatternFlowIpv4MoreFragments_Choice_Enum int32 @@ -9466,11 +9818,11 @@ func (x PatternFlowIpv4MoreFragments_Choice_Enum) String() string { } func (PatternFlowIpv4MoreFragments_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[171].Descriptor() + return file_otg_proto_enumTypes[178].Descriptor() } func (PatternFlowIpv4MoreFragments_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[171] + return &file_otg_proto_enumTypes[178] } func (x PatternFlowIpv4MoreFragments_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9479,7 +9831,7 @@ func (x PatternFlowIpv4MoreFragments_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4MoreFragments_Choice_Enum.Descriptor instead. func (PatternFlowIpv4MoreFragments_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{363, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{381, 0, 0} } type PatternFlowIpv4FragmentOffset_Choice_Enum int32 @@ -9521,11 +9873,11 @@ func (x PatternFlowIpv4FragmentOffset_Choice_Enum) String() string { } func (PatternFlowIpv4FragmentOffset_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[172].Descriptor() + return file_otg_proto_enumTypes[179].Descriptor() } func (PatternFlowIpv4FragmentOffset_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[172] + return &file_otg_proto_enumTypes[179] } func (x PatternFlowIpv4FragmentOffset_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9534,7 +9886,7 @@ func (x PatternFlowIpv4FragmentOffset_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4FragmentOffset_Choice_Enum.Descriptor instead. func (PatternFlowIpv4FragmentOffset_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{366, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{384, 0, 0} } type PatternFlowIpv4TimeToLive_Choice_Enum int32 @@ -9576,11 +9928,11 @@ func (x PatternFlowIpv4TimeToLive_Choice_Enum) String() string { } func (PatternFlowIpv4TimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[173].Descriptor() + return file_otg_proto_enumTypes[180].Descriptor() } func (PatternFlowIpv4TimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[173] + return &file_otg_proto_enumTypes[180] } func (x PatternFlowIpv4TimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9589,7 +9941,7 @@ func (x PatternFlowIpv4TimeToLive_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TimeToLive_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TimeToLive_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{369, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{387, 0, 0} } type PatternFlowIpv4Protocol_Choice_Enum int32 @@ -9634,11 +9986,11 @@ func (x PatternFlowIpv4Protocol_Choice_Enum) String() string { } func (PatternFlowIpv4Protocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[174].Descriptor() + return file_otg_proto_enumTypes[181].Descriptor() } func (PatternFlowIpv4Protocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[174] + return &file_otg_proto_enumTypes[181] } func (x PatternFlowIpv4Protocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9647,7 +9999,7 @@ func (x PatternFlowIpv4Protocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Protocol_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Protocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{372, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{390, 0, 0} } type PatternFlowIpv4HeaderChecksum_Choice_Enum int32 @@ -9683,11 +10035,11 @@ func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) String() string { } func (PatternFlowIpv4HeaderChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[175].Descriptor() + return file_otg_proto_enumTypes[182].Descriptor() } func (PatternFlowIpv4HeaderChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[175] + return &file_otg_proto_enumTypes[182] } func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9696,7 +10048,7 @@ func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIpv4HeaderChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{391, 0, 0} } type PatternFlowIpv4HeaderChecksum_Generated_Enum int32 @@ -9732,11 +10084,11 @@ func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) String() string { } func (PatternFlowIpv4HeaderChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[176].Descriptor() + return file_otg_proto_enumTypes[183].Descriptor() } func (PatternFlowIpv4HeaderChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[176] + return &file_otg_proto_enumTypes[183] } func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -9745,7 +10097,7 @@ func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIpv4HeaderChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{391, 1, 0} } type PatternFlowIpv4Src_Choice_Enum int32 @@ -9787,11 +10139,11 @@ func (x PatternFlowIpv4Src_Choice_Enum) String() string { } func (PatternFlowIpv4Src_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[177].Descriptor() + return file_otg_proto_enumTypes[184].Descriptor() } func (PatternFlowIpv4Src_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[177] + return &file_otg_proto_enumTypes[184] } func (x PatternFlowIpv4Src_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9800,7 +10152,7 @@ func (x PatternFlowIpv4Src_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Src_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Src_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{376, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{394, 0, 0} } type PatternFlowIpv4Dst_Choice_Enum int32 @@ -9842,11 +10194,11 @@ func (x PatternFlowIpv4Dst_Choice_Enum) String() string { } func (PatternFlowIpv4Dst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[178].Descriptor() + return file_otg_proto_enumTypes[185].Descriptor() } func (PatternFlowIpv4Dst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[178] + return &file_otg_proto_enumTypes[185] } func (x PatternFlowIpv4Dst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9855,7 +10207,7 @@ func (x PatternFlowIpv4Dst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Dst_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Dst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{379, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{397, 0, 0} } type PatternFlowIpv4PriorityRaw_Choice_Enum int32 @@ -9897,11 +10249,11 @@ func (x PatternFlowIpv4PriorityRaw_Choice_Enum) String() string { } func (PatternFlowIpv4PriorityRaw_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[179].Descriptor() + return file_otg_proto_enumTypes[186].Descriptor() } func (PatternFlowIpv4PriorityRaw_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[179] + return &file_otg_proto_enumTypes[186] } func (x PatternFlowIpv4PriorityRaw_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9910,7 +10262,7 @@ func (x PatternFlowIpv4PriorityRaw_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4PriorityRaw_Choice_Enum.Descriptor instead. func (PatternFlowIpv4PriorityRaw_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{382, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{400, 0, 0} } type PatternFlowIpv4DscpPhb_Choice_Enum int32 @@ -9952,11 +10304,11 @@ func (x PatternFlowIpv4DscpPhb_Choice_Enum) String() string { } func (PatternFlowIpv4DscpPhb_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[180].Descriptor() + return file_otg_proto_enumTypes[187].Descriptor() } func (PatternFlowIpv4DscpPhb_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[180] + return &file_otg_proto_enumTypes[187] } func (x PatternFlowIpv4DscpPhb_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9965,7 +10317,7 @@ func (x PatternFlowIpv4DscpPhb_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4DscpPhb_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DscpPhb_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{385, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{403, 0, 0} } type PatternFlowIpv4DscpEcn_Choice_Enum int32 @@ -10007,11 +10359,11 @@ func (x PatternFlowIpv4DscpEcn_Choice_Enum) String() string { } func (PatternFlowIpv4DscpEcn_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[181].Descriptor() + return file_otg_proto_enumTypes[188].Descriptor() } func (PatternFlowIpv4DscpEcn_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[181] + return &file_otg_proto_enumTypes[188] } func (x PatternFlowIpv4DscpEcn_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10020,7 +10372,7 @@ func (x PatternFlowIpv4DscpEcn_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4DscpEcn_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DscpEcn_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{388, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{406, 0, 0} } type PatternFlowIpv4TosPrecedence_Choice_Enum int32 @@ -10062,11 +10414,11 @@ func (x PatternFlowIpv4TosPrecedence_Choice_Enum) String() string { } func (PatternFlowIpv4TosPrecedence_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[182].Descriptor() + return file_otg_proto_enumTypes[189].Descriptor() } func (PatternFlowIpv4TosPrecedence_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[182] + return &file_otg_proto_enumTypes[189] } func (x PatternFlowIpv4TosPrecedence_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10075,7 +10427,7 @@ func (x PatternFlowIpv4TosPrecedence_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4TosPrecedence_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosPrecedence_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{391, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{409, 0, 0} } type PatternFlowIpv4TosDelay_Choice_Enum int32 @@ -10117,11 +10469,11 @@ func (x PatternFlowIpv4TosDelay_Choice_Enum) String() string { } func (PatternFlowIpv4TosDelay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[183].Descriptor() + return file_otg_proto_enumTypes[190].Descriptor() } func (PatternFlowIpv4TosDelay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[183] + return &file_otg_proto_enumTypes[190] } func (x PatternFlowIpv4TosDelay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10130,7 +10482,7 @@ func (x PatternFlowIpv4TosDelay_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4TosDelay_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosDelay_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{394, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{412, 0, 0} } type PatternFlowIpv4TosThroughput_Choice_Enum int32 @@ -10172,11 +10524,11 @@ func (x PatternFlowIpv4TosThroughput_Choice_Enum) String() string { } func (PatternFlowIpv4TosThroughput_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[184].Descriptor() + return file_otg_proto_enumTypes[191].Descriptor() } func (PatternFlowIpv4TosThroughput_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[184] + return &file_otg_proto_enumTypes[191] } func (x PatternFlowIpv4TosThroughput_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10185,7 +10537,7 @@ func (x PatternFlowIpv4TosThroughput_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4TosThroughput_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosThroughput_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{397, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{415, 0, 0} } type PatternFlowIpv4TosReliability_Choice_Enum int32 @@ -10227,11 +10579,11 @@ func (x PatternFlowIpv4TosReliability_Choice_Enum) String() string { } func (PatternFlowIpv4TosReliability_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[185].Descriptor() + return file_otg_proto_enumTypes[192].Descriptor() } func (PatternFlowIpv4TosReliability_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[185] + return &file_otg_proto_enumTypes[192] } func (x PatternFlowIpv4TosReliability_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10240,7 +10592,7 @@ func (x PatternFlowIpv4TosReliability_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4TosReliability_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosReliability_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{418, 0, 0} } type PatternFlowIpv4TosMonetary_Choice_Enum int32 @@ -10282,11 +10634,11 @@ func (x PatternFlowIpv4TosMonetary_Choice_Enum) String() string { } func (PatternFlowIpv4TosMonetary_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[186].Descriptor() + return file_otg_proto_enumTypes[193].Descriptor() } func (PatternFlowIpv4TosMonetary_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[186] + return &file_otg_proto_enumTypes[193] } func (x PatternFlowIpv4TosMonetary_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10295,7 +10647,7 @@ func (x PatternFlowIpv4TosMonetary_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TosMonetary_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosMonetary_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{403, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{421, 0, 0} } type PatternFlowIpv4TosUnused_Choice_Enum int32 @@ -10337,11 +10689,11 @@ func (x PatternFlowIpv4TosUnused_Choice_Enum) String() string { } func (PatternFlowIpv4TosUnused_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[187].Descriptor() + return file_otg_proto_enumTypes[194].Descriptor() } func (PatternFlowIpv4TosUnused_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[187] + return &file_otg_proto_enumTypes[194] } func (x PatternFlowIpv4TosUnused_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10350,7 +10702,7 @@ func (x PatternFlowIpv4TosUnused_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4TosUnused_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosUnused_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{406, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{424, 0, 0} } type PatternFlowIpv6Version_Choice_Enum int32 @@ -10392,11 +10744,11 @@ func (x PatternFlowIpv6Version_Choice_Enum) String() string { } func (PatternFlowIpv6Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[188].Descriptor() + return file_otg_proto_enumTypes[195].Descriptor() } func (PatternFlowIpv6Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[188] + return &file_otg_proto_enumTypes[195] } func (x PatternFlowIpv6Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10405,7 +10757,7 @@ func (x PatternFlowIpv6Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Version_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{409, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{427, 0, 0} } type PatternFlowIpv6TrafficClass_Choice_Enum int32 @@ -10447,11 +10799,11 @@ func (x PatternFlowIpv6TrafficClass_Choice_Enum) String() string { } func (PatternFlowIpv6TrafficClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[189].Descriptor() + return file_otg_proto_enumTypes[196].Descriptor() } func (PatternFlowIpv6TrafficClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[189] + return &file_otg_proto_enumTypes[196] } func (x PatternFlowIpv6TrafficClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10460,7 +10812,7 @@ func (x PatternFlowIpv6TrafficClass_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv6TrafficClass_Choice_Enum.Descriptor instead. func (PatternFlowIpv6TrafficClass_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{412, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{430, 0, 0} } type PatternFlowIpv6FlowLabel_Choice_Enum int32 @@ -10502,11 +10854,11 @@ func (x PatternFlowIpv6FlowLabel_Choice_Enum) String() string { } func (PatternFlowIpv6FlowLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[190].Descriptor() + return file_otg_proto_enumTypes[197].Descriptor() } func (PatternFlowIpv6FlowLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[190] + return &file_otg_proto_enumTypes[197] } func (x PatternFlowIpv6FlowLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10515,7 +10867,7 @@ func (x PatternFlowIpv6FlowLabel_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6FlowLabel_Choice_Enum.Descriptor instead. func (PatternFlowIpv6FlowLabel_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{415, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{433, 0, 0} } type PatternFlowIpv6PayloadLength_Choice_Enum int32 @@ -10560,11 +10912,11 @@ func (x PatternFlowIpv6PayloadLength_Choice_Enum) String() string { } func (PatternFlowIpv6PayloadLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[191].Descriptor() + return file_otg_proto_enumTypes[198].Descriptor() } func (PatternFlowIpv6PayloadLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[191] + return &file_otg_proto_enumTypes[198] } func (x PatternFlowIpv6PayloadLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10573,7 +10925,7 @@ func (x PatternFlowIpv6PayloadLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv6PayloadLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv6PayloadLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{418, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{436, 0, 0} } type PatternFlowIpv6NextHeader_Choice_Enum int32 @@ -10618,11 +10970,11 @@ func (x PatternFlowIpv6NextHeader_Choice_Enum) String() string { } func (PatternFlowIpv6NextHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[192].Descriptor() + return file_otg_proto_enumTypes[199].Descriptor() } func (PatternFlowIpv6NextHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[192] + return &file_otg_proto_enumTypes[199] } func (x PatternFlowIpv6NextHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10631,7 +10983,7 @@ func (x PatternFlowIpv6NextHeader_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv6NextHeader_Choice_Enum.Descriptor instead. func (PatternFlowIpv6NextHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{421, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{439, 0, 0} } type PatternFlowIpv6HopLimit_Choice_Enum int32 @@ -10673,11 +11025,11 @@ func (x PatternFlowIpv6HopLimit_Choice_Enum) String() string { } func (PatternFlowIpv6HopLimit_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[193].Descriptor() + return file_otg_proto_enumTypes[200].Descriptor() } func (PatternFlowIpv6HopLimit_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[193] + return &file_otg_proto_enumTypes[200] } func (x PatternFlowIpv6HopLimit_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10686,7 +11038,7 @@ func (x PatternFlowIpv6HopLimit_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6HopLimit_Choice_Enum.Descriptor instead. func (PatternFlowIpv6HopLimit_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{424, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{442, 0, 0} } type PatternFlowIpv6Src_Choice_Enum int32 @@ -10728,11 +11080,11 @@ func (x PatternFlowIpv6Src_Choice_Enum) String() string { } func (PatternFlowIpv6Src_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[194].Descriptor() + return file_otg_proto_enumTypes[201].Descriptor() } func (PatternFlowIpv6Src_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[194] + return &file_otg_proto_enumTypes[201] } func (x PatternFlowIpv6Src_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10741,7 +11093,7 @@ func (x PatternFlowIpv6Src_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Src_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Src_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{427, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{445, 0, 0} } type PatternFlowIpv6Dst_Choice_Enum int32 @@ -10783,11 +11135,11 @@ func (x PatternFlowIpv6Dst_Choice_Enum) String() string { } func (PatternFlowIpv6Dst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[195].Descriptor() + return file_otg_proto_enumTypes[202].Descriptor() } func (PatternFlowIpv6Dst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[195] + return &file_otg_proto_enumTypes[202] } func (x PatternFlowIpv6Dst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10796,7 +11148,7 @@ func (x PatternFlowIpv6Dst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Dst_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Dst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{430, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{448, 0, 0} } type PatternFlowPfcPauseDst_Choice_Enum int32 @@ -10838,11 +11190,11 @@ func (x PatternFlowPfcPauseDst_Choice_Enum) String() string { } func (PatternFlowPfcPauseDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[196].Descriptor() + return file_otg_proto_enumTypes[203].Descriptor() } func (PatternFlowPfcPauseDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[196] + return &file_otg_proto_enumTypes[203] } func (x PatternFlowPfcPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10851,7 +11203,7 @@ func (x PatternFlowPfcPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPfcPauseDst_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{433, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{451, 0, 0} } type PatternFlowPfcPauseSrc_Choice_Enum int32 @@ -10893,11 +11245,11 @@ func (x PatternFlowPfcPauseSrc_Choice_Enum) String() string { } func (PatternFlowPfcPauseSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[197].Descriptor() + return file_otg_proto_enumTypes[204].Descriptor() } func (PatternFlowPfcPauseSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[197] + return &file_otg_proto_enumTypes[204] } func (x PatternFlowPfcPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10906,7 +11258,7 @@ func (x PatternFlowPfcPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPfcPauseSrc_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{436, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{454, 0, 0} } type PatternFlowPfcPauseEtherType_Choice_Enum int32 @@ -10948,11 +11300,11 @@ func (x PatternFlowPfcPauseEtherType_Choice_Enum) String() string { } func (PatternFlowPfcPauseEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[198].Descriptor() + return file_otg_proto_enumTypes[205].Descriptor() } func (PatternFlowPfcPauseEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[198] + return &file_otg_proto_enumTypes[205] } func (x PatternFlowPfcPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10961,7 +11313,7 @@ func (x PatternFlowPfcPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowPfcPauseEtherType_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{439, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{457, 0, 0} } type PatternFlowPfcPauseControlOpCode_Choice_Enum int32 @@ -11003,11 +11355,11 @@ func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) String() string { } func (PatternFlowPfcPauseControlOpCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[199].Descriptor() + return file_otg_proto_enumTypes[206].Descriptor() } func (PatternFlowPfcPauseControlOpCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[199] + return &file_otg_proto_enumTypes[206] } func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11016,7 +11368,7 @@ func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseControlOpCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{442, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{460, 0, 0} } type PatternFlowPfcPauseClassEnableVector_Choice_Enum int32 @@ -11058,11 +11410,11 @@ func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) String() string { } func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[200].Descriptor() + return file_otg_proto_enumTypes[207].Descriptor() } func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[200] + return &file_otg_proto_enumTypes[207] } func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11071,7 +11423,7 @@ func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) Number() protoreflect. // Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{445, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{463, 0, 0} } type PatternFlowPfcPausePauseClass0_Choice_Enum int32 @@ -11113,11 +11465,11 @@ func (x PatternFlowPfcPausePauseClass0_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[201].Descriptor() + return file_otg_proto_enumTypes[208].Descriptor() } func (PatternFlowPfcPausePauseClass0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[201] + return &file_otg_proto_enumTypes[208] } func (x PatternFlowPfcPausePauseClass0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11126,7 +11478,7 @@ func (x PatternFlowPfcPausePauseClass0_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass0_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{466, 0, 0} } type PatternFlowPfcPausePauseClass1_Choice_Enum int32 @@ -11168,11 +11520,11 @@ func (x PatternFlowPfcPausePauseClass1_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[202].Descriptor() + return file_otg_proto_enumTypes[209].Descriptor() } func (PatternFlowPfcPausePauseClass1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[202] + return &file_otg_proto_enumTypes[209] } func (x PatternFlowPfcPausePauseClass1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11181,7 +11533,7 @@ func (x PatternFlowPfcPausePauseClass1_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass1_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{451, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{469, 0, 0} } type PatternFlowPfcPausePauseClass2_Choice_Enum int32 @@ -11223,11 +11575,11 @@ func (x PatternFlowPfcPausePauseClass2_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[203].Descriptor() + return file_otg_proto_enumTypes[210].Descriptor() } func (PatternFlowPfcPausePauseClass2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[203] + return &file_otg_proto_enumTypes[210] } func (x PatternFlowPfcPausePauseClass2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11236,7 +11588,7 @@ func (x PatternFlowPfcPausePauseClass2_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass2_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass2_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{454, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{472, 0, 0} } type PatternFlowPfcPausePauseClass3_Choice_Enum int32 @@ -11278,11 +11630,11 @@ func (x PatternFlowPfcPausePauseClass3_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass3_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[204].Descriptor() + return file_otg_proto_enumTypes[211].Descriptor() } func (PatternFlowPfcPausePauseClass3_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[204] + return &file_otg_proto_enumTypes[211] } func (x PatternFlowPfcPausePauseClass3_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11291,7 +11643,7 @@ func (x PatternFlowPfcPausePauseClass3_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass3_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass3_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{457, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{475, 0, 0} } type PatternFlowPfcPausePauseClass4_Choice_Enum int32 @@ -11333,11 +11685,11 @@ func (x PatternFlowPfcPausePauseClass4_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[205].Descriptor() + return file_otg_proto_enumTypes[212].Descriptor() } func (PatternFlowPfcPausePauseClass4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[205] + return &file_otg_proto_enumTypes[212] } func (x PatternFlowPfcPausePauseClass4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11346,7 +11698,7 @@ func (x PatternFlowPfcPausePauseClass4_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass4_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{460, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{478, 0, 0} } type PatternFlowPfcPausePauseClass5_Choice_Enum int32 @@ -11388,11 +11740,11 @@ func (x PatternFlowPfcPausePauseClass5_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass5_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[206].Descriptor() + return file_otg_proto_enumTypes[213].Descriptor() } func (PatternFlowPfcPausePauseClass5_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[206] + return &file_otg_proto_enumTypes[213] } func (x PatternFlowPfcPausePauseClass5_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11401,7 +11753,7 @@ func (x PatternFlowPfcPausePauseClass5_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass5_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass5_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{463, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{481, 0, 0} } type PatternFlowPfcPausePauseClass6_Choice_Enum int32 @@ -11443,11 +11795,11 @@ func (x PatternFlowPfcPausePauseClass6_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[207].Descriptor() + return file_otg_proto_enumTypes[214].Descriptor() } func (PatternFlowPfcPausePauseClass6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[207] + return &file_otg_proto_enumTypes[214] } func (x PatternFlowPfcPausePauseClass6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11456,7 +11808,7 @@ func (x PatternFlowPfcPausePauseClass6_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass6_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{466, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{484, 0, 0} } type PatternFlowPfcPausePauseClass7_Choice_Enum int32 @@ -11498,11 +11850,11 @@ func (x PatternFlowPfcPausePauseClass7_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass7_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[208].Descriptor() + return file_otg_proto_enumTypes[215].Descriptor() } func (PatternFlowPfcPausePauseClass7_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[208] + return &file_otg_proto_enumTypes[215] } func (x PatternFlowPfcPausePauseClass7_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11511,7 +11863,7 @@ func (x PatternFlowPfcPausePauseClass7_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass7_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass7_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{469, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{487, 0, 0} } type PatternFlowEthernetPauseDst_Choice_Enum int32 @@ -11553,11 +11905,11 @@ func (x PatternFlowEthernetPauseDst_Choice_Enum) String() string { } func (PatternFlowEthernetPauseDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[209].Descriptor() + return file_otg_proto_enumTypes[216].Descriptor() } func (PatternFlowEthernetPauseDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[209] + return &file_otg_proto_enumTypes[216] } func (x PatternFlowEthernetPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11566,7 +11918,7 @@ func (x PatternFlowEthernetPauseDst_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPauseDst_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{472, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{490, 0, 0} } type PatternFlowEthernetPauseSrc_Choice_Enum int32 @@ -11608,11 +11960,11 @@ func (x PatternFlowEthernetPauseSrc_Choice_Enum) String() string { } func (PatternFlowEthernetPauseSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[210].Descriptor() + return file_otg_proto_enumTypes[217].Descriptor() } func (PatternFlowEthernetPauseSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[210] + return &file_otg_proto_enumTypes[217] } func (x PatternFlowEthernetPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11621,7 +11973,7 @@ func (x PatternFlowEthernetPauseSrc_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPauseSrc_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{475, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{493, 0, 0} } type PatternFlowEthernetPauseEtherType_Choice_Enum int32 @@ -11663,11 +12015,11 @@ func (x PatternFlowEthernetPauseEtherType_Choice_Enum) String() string { } func (PatternFlowEthernetPauseEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[211].Descriptor() + return file_otg_proto_enumTypes[218].Descriptor() } func (PatternFlowEthernetPauseEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[211] + return &file_otg_proto_enumTypes[218] } func (x PatternFlowEthernetPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11676,7 +12028,7 @@ func (x PatternFlowEthernetPauseEtherType_Choice_Enum) Number() protoreflect.Enu // Deprecated: Use PatternFlowEthernetPauseEtherType_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{478, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{496, 0, 0} } type PatternFlowEthernetPauseControlOpCode_Choice_Enum int32 @@ -11718,11 +12070,11 @@ func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) String() string { } func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[212].Descriptor() + return file_otg_proto_enumTypes[219].Descriptor() } func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[212] + return &file_otg_proto_enumTypes[219] } func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11731,7 +12083,7 @@ func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) Number() protoreflect // Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{481, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{499, 0, 0} } type PatternFlowEthernetPauseTime_Choice_Enum int32 @@ -11773,11 +12125,11 @@ func (x PatternFlowEthernetPauseTime_Choice_Enum) String() string { } func (PatternFlowEthernetPauseTime_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[213].Descriptor() + return file_otg_proto_enumTypes[220].Descriptor() } func (PatternFlowEthernetPauseTime_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[213] + return &file_otg_proto_enumTypes[220] } func (x PatternFlowEthernetPauseTime_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11786,7 +12138,7 @@ func (x PatternFlowEthernetPauseTime_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowEthernetPauseTime_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseTime_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{484, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{502, 0, 0} } type PatternFlowTcpSrcPort_Choice_Enum int32 @@ -11828,11 +12180,11 @@ func (x PatternFlowTcpSrcPort_Choice_Enum) String() string { } func (PatternFlowTcpSrcPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[214].Descriptor() + return file_otg_proto_enumTypes[221].Descriptor() } func (PatternFlowTcpSrcPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[214] + return &file_otg_proto_enumTypes[221] } func (x PatternFlowTcpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11841,7 +12193,7 @@ func (x PatternFlowTcpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpSrcPort_Choice_Enum.Descriptor instead. func (PatternFlowTcpSrcPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{487, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{505, 0, 0} } type PatternFlowTcpDstPort_Choice_Enum int32 @@ -11883,11 +12235,11 @@ func (x PatternFlowTcpDstPort_Choice_Enum) String() string { } func (PatternFlowTcpDstPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[215].Descriptor() + return file_otg_proto_enumTypes[222].Descriptor() } func (PatternFlowTcpDstPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[215] + return &file_otg_proto_enumTypes[222] } func (x PatternFlowTcpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11896,7 +12248,7 @@ func (x PatternFlowTcpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpDstPort_Choice_Enum.Descriptor instead. func (PatternFlowTcpDstPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{490, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{508, 0, 0} } type PatternFlowTcpSeqNum_Choice_Enum int32 @@ -11938,11 +12290,11 @@ func (x PatternFlowTcpSeqNum_Choice_Enum) String() string { } func (PatternFlowTcpSeqNum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[216].Descriptor() + return file_otg_proto_enumTypes[223].Descriptor() } func (PatternFlowTcpSeqNum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[216] + return &file_otg_proto_enumTypes[223] } func (x PatternFlowTcpSeqNum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11951,7 +12303,7 @@ func (x PatternFlowTcpSeqNum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpSeqNum_Choice_Enum.Descriptor instead. func (PatternFlowTcpSeqNum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{493, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{511, 0, 0} } type PatternFlowTcpAckNum_Choice_Enum int32 @@ -11993,11 +12345,11 @@ func (x PatternFlowTcpAckNum_Choice_Enum) String() string { } func (PatternFlowTcpAckNum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[217].Descriptor() + return file_otg_proto_enumTypes[224].Descriptor() } func (PatternFlowTcpAckNum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[217] + return &file_otg_proto_enumTypes[224] } func (x PatternFlowTcpAckNum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12006,7 +12358,7 @@ func (x PatternFlowTcpAckNum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpAckNum_Choice_Enum.Descriptor instead. func (PatternFlowTcpAckNum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{496, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{514, 0, 0} } type PatternFlowTcpDataOffset_Choice_Enum int32 @@ -12048,11 +12400,11 @@ func (x PatternFlowTcpDataOffset_Choice_Enum) String() string { } func (PatternFlowTcpDataOffset_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[218].Descriptor() + return file_otg_proto_enumTypes[225].Descriptor() } func (PatternFlowTcpDataOffset_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[218] + return &file_otg_proto_enumTypes[225] } func (x PatternFlowTcpDataOffset_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12061,7 +12413,7 @@ func (x PatternFlowTcpDataOffset_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpDataOffset_Choice_Enum.Descriptor instead. func (PatternFlowTcpDataOffset_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{499, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{517, 0, 0} } type PatternFlowTcpEcnNs_Choice_Enum int32 @@ -12103,11 +12455,11 @@ func (x PatternFlowTcpEcnNs_Choice_Enum) String() string { } func (PatternFlowTcpEcnNs_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[219].Descriptor() + return file_otg_proto_enumTypes[226].Descriptor() } func (PatternFlowTcpEcnNs_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[219] + return &file_otg_proto_enumTypes[226] } func (x PatternFlowTcpEcnNs_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12116,7 +12468,7 @@ func (x PatternFlowTcpEcnNs_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnNs_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnNs_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{502, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{520, 0, 0} } type PatternFlowTcpEcnCwr_Choice_Enum int32 @@ -12158,11 +12510,11 @@ func (x PatternFlowTcpEcnCwr_Choice_Enum) String() string { } func (PatternFlowTcpEcnCwr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[220].Descriptor() + return file_otg_proto_enumTypes[227].Descriptor() } func (PatternFlowTcpEcnCwr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[220] + return &file_otg_proto_enumTypes[227] } func (x PatternFlowTcpEcnCwr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12171,7 +12523,7 @@ func (x PatternFlowTcpEcnCwr_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnCwr_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnCwr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{505, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{523, 0, 0} } type PatternFlowTcpEcnEcho_Choice_Enum int32 @@ -12213,11 +12565,11 @@ func (x PatternFlowTcpEcnEcho_Choice_Enum) String() string { } func (PatternFlowTcpEcnEcho_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[221].Descriptor() + return file_otg_proto_enumTypes[228].Descriptor() } func (PatternFlowTcpEcnEcho_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[221] + return &file_otg_proto_enumTypes[228] } func (x PatternFlowTcpEcnEcho_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12226,7 +12578,7 @@ func (x PatternFlowTcpEcnEcho_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnEcho_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnEcho_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{508, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{526, 0, 0} } type PatternFlowTcpCtlUrg_Choice_Enum int32 @@ -12268,11 +12620,11 @@ func (x PatternFlowTcpCtlUrg_Choice_Enum) String() string { } func (PatternFlowTcpCtlUrg_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[222].Descriptor() + return file_otg_proto_enumTypes[229].Descriptor() } func (PatternFlowTcpCtlUrg_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[222] + return &file_otg_proto_enumTypes[229] } func (x PatternFlowTcpCtlUrg_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12281,7 +12633,7 @@ func (x PatternFlowTcpCtlUrg_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlUrg_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlUrg_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{511, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{529, 0, 0} } type PatternFlowTcpCtlAck_Choice_Enum int32 @@ -12323,11 +12675,11 @@ func (x PatternFlowTcpCtlAck_Choice_Enum) String() string { } func (PatternFlowTcpCtlAck_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[223].Descriptor() + return file_otg_proto_enumTypes[230].Descriptor() } func (PatternFlowTcpCtlAck_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[223] + return &file_otg_proto_enumTypes[230] } func (x PatternFlowTcpCtlAck_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12336,7 +12688,7 @@ func (x PatternFlowTcpCtlAck_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlAck_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlAck_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{514, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{532, 0, 0} } type PatternFlowTcpCtlPsh_Choice_Enum int32 @@ -12378,11 +12730,11 @@ func (x PatternFlowTcpCtlPsh_Choice_Enum) String() string { } func (PatternFlowTcpCtlPsh_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[224].Descriptor() + return file_otg_proto_enumTypes[231].Descriptor() } func (PatternFlowTcpCtlPsh_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[224] + return &file_otg_proto_enumTypes[231] } func (x PatternFlowTcpCtlPsh_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12391,7 +12743,7 @@ func (x PatternFlowTcpCtlPsh_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlPsh_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlPsh_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{517, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{535, 0, 0} } type PatternFlowTcpCtlRst_Choice_Enum int32 @@ -12433,11 +12785,11 @@ func (x PatternFlowTcpCtlRst_Choice_Enum) String() string { } func (PatternFlowTcpCtlRst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[225].Descriptor() + return file_otg_proto_enumTypes[232].Descriptor() } func (PatternFlowTcpCtlRst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[225] + return &file_otg_proto_enumTypes[232] } func (x PatternFlowTcpCtlRst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12446,7 +12798,7 @@ func (x PatternFlowTcpCtlRst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlRst_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlRst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{520, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{538, 0, 0} } type PatternFlowTcpCtlSyn_Choice_Enum int32 @@ -12488,11 +12840,11 @@ func (x PatternFlowTcpCtlSyn_Choice_Enum) String() string { } func (PatternFlowTcpCtlSyn_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[226].Descriptor() + return file_otg_proto_enumTypes[233].Descriptor() } func (PatternFlowTcpCtlSyn_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[226] + return &file_otg_proto_enumTypes[233] } func (x PatternFlowTcpCtlSyn_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12501,7 +12853,7 @@ func (x PatternFlowTcpCtlSyn_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlSyn_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlSyn_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{523, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{541, 0, 0} } type PatternFlowTcpCtlFin_Choice_Enum int32 @@ -12543,11 +12895,11 @@ func (x PatternFlowTcpCtlFin_Choice_Enum) String() string { } func (PatternFlowTcpCtlFin_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[227].Descriptor() + return file_otg_proto_enumTypes[234].Descriptor() } func (PatternFlowTcpCtlFin_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[227] + return &file_otg_proto_enumTypes[234] } func (x PatternFlowTcpCtlFin_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12556,7 +12908,7 @@ func (x PatternFlowTcpCtlFin_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlFin_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlFin_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{526, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{544, 0, 0} } type PatternFlowTcpWindow_Choice_Enum int32 @@ -12598,11 +12950,11 @@ func (x PatternFlowTcpWindow_Choice_Enum) String() string { } func (PatternFlowTcpWindow_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[228].Descriptor() + return file_otg_proto_enumTypes[235].Descriptor() } func (PatternFlowTcpWindow_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[228] + return &file_otg_proto_enumTypes[235] } func (x PatternFlowTcpWindow_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12611,7 +12963,7 @@ func (x PatternFlowTcpWindow_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpWindow_Choice_Enum.Descriptor instead. func (PatternFlowTcpWindow_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{529, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{547, 0, 0} } type PatternFlowUdpSrcPort_Choice_Enum int32 @@ -12653,11 +13005,11 @@ func (x PatternFlowUdpSrcPort_Choice_Enum) String() string { } func (PatternFlowUdpSrcPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[229].Descriptor() + return file_otg_proto_enumTypes[236].Descriptor() } func (PatternFlowUdpSrcPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[229] + return &file_otg_proto_enumTypes[236] } func (x PatternFlowUdpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12666,7 +13018,7 @@ func (x PatternFlowUdpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpSrcPort_Choice_Enum.Descriptor instead. func (PatternFlowUdpSrcPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{532, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{550, 0, 0} } type PatternFlowUdpDstPort_Choice_Enum int32 @@ -12708,11 +13060,11 @@ func (x PatternFlowUdpDstPort_Choice_Enum) String() string { } func (PatternFlowUdpDstPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[230].Descriptor() + return file_otg_proto_enumTypes[237].Descriptor() } func (PatternFlowUdpDstPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[230] + return &file_otg_proto_enumTypes[237] } func (x PatternFlowUdpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12721,7 +13073,7 @@ func (x PatternFlowUdpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpDstPort_Choice_Enum.Descriptor instead. func (PatternFlowUdpDstPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{535, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{553, 0, 0} } type PatternFlowUdpLength_Choice_Enum int32 @@ -12763,11 +13115,11 @@ func (x PatternFlowUdpLength_Choice_Enum) String() string { } func (PatternFlowUdpLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[231].Descriptor() + return file_otg_proto_enumTypes[238].Descriptor() } func (PatternFlowUdpLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[231] + return &file_otg_proto_enumTypes[238] } func (x PatternFlowUdpLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12776,7 +13128,7 @@ func (x PatternFlowUdpLength_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpLength_Choice_Enum.Descriptor instead. func (PatternFlowUdpLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{538, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{556, 0, 0} } type PatternFlowUdpChecksum_Choice_Enum int32 @@ -12812,11 +13164,11 @@ func (x PatternFlowUdpChecksum_Choice_Enum) String() string { } func (PatternFlowUdpChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[232].Descriptor() + return file_otg_proto_enumTypes[239].Descriptor() } func (PatternFlowUdpChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[232] + return &file_otg_proto_enumTypes[239] } func (x PatternFlowUdpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12825,7 +13177,7 @@ func (x PatternFlowUdpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpChecksum_Choice_Enum.Descriptor instead. func (PatternFlowUdpChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{557, 0, 0} } type PatternFlowUdpChecksum_Generated_Enum int32 @@ -12861,11 +13213,11 @@ func (x PatternFlowUdpChecksum_Generated_Enum) String() string { } func (PatternFlowUdpChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[233].Descriptor() + return file_otg_proto_enumTypes[240].Descriptor() } func (PatternFlowUdpChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[233] + return &file_otg_proto_enumTypes[240] } func (x PatternFlowUdpChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -12874,7 +13226,7 @@ func (x PatternFlowUdpChecksum_Generated_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowUdpChecksum_Generated_Enum.Descriptor instead. func (PatternFlowUdpChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{557, 1, 0} } type PatternFlowGreChecksumPresent_Choice_Enum int32 @@ -12916,11 +13268,11 @@ func (x PatternFlowGreChecksumPresent_Choice_Enum) String() string { } func (PatternFlowGreChecksumPresent_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[234].Descriptor() + return file_otg_proto_enumTypes[241].Descriptor() } func (PatternFlowGreChecksumPresent_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[234] + return &file_otg_proto_enumTypes[241] } func (x PatternFlowGreChecksumPresent_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12929,7 +13281,7 @@ func (x PatternFlowGreChecksumPresent_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGreChecksumPresent_Choice_Enum.Descriptor instead. func (PatternFlowGreChecksumPresent_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{542, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{560, 0, 0} } type PatternFlowGreReserved0_Choice_Enum int32 @@ -12971,11 +13323,11 @@ func (x PatternFlowGreReserved0_Choice_Enum) String() string { } func (PatternFlowGreReserved0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[235].Descriptor() + return file_otg_proto_enumTypes[242].Descriptor() } func (PatternFlowGreReserved0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[235] + return &file_otg_proto_enumTypes[242] } func (x PatternFlowGreReserved0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12984,7 +13336,7 @@ func (x PatternFlowGreReserved0_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreReserved0_Choice_Enum.Descriptor instead. func (PatternFlowGreReserved0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{545, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{563, 0, 0} } type PatternFlowGreVersion_Choice_Enum int32 @@ -13026,11 +13378,11 @@ func (x PatternFlowGreVersion_Choice_Enum) String() string { } func (PatternFlowGreVersion_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[236].Descriptor() + return file_otg_proto_enumTypes[243].Descriptor() } func (PatternFlowGreVersion_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[236] + return &file_otg_proto_enumTypes[243] } func (x PatternFlowGreVersion_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13039,7 +13391,7 @@ func (x PatternFlowGreVersion_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreVersion_Choice_Enum.Descriptor instead. func (PatternFlowGreVersion_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{548, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{566, 0, 0} } type PatternFlowGreProtocol_Choice_Enum int32 @@ -13081,11 +13433,11 @@ func (x PatternFlowGreProtocol_Choice_Enum) String() string { } func (PatternFlowGreProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[237].Descriptor() + return file_otg_proto_enumTypes[244].Descriptor() } func (PatternFlowGreProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[237] + return &file_otg_proto_enumTypes[244] } func (x PatternFlowGreProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13094,7 +13446,7 @@ func (x PatternFlowGreProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreProtocol_Choice_Enum.Descriptor instead. func (PatternFlowGreProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{551, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{569, 0, 0} } type PatternFlowGreChecksum_Choice_Enum int32 @@ -13130,11 +13482,11 @@ func (x PatternFlowGreChecksum_Choice_Enum) String() string { } func (PatternFlowGreChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[238].Descriptor() + return file_otg_proto_enumTypes[245].Descriptor() } func (PatternFlowGreChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[238] + return &file_otg_proto_enumTypes[245] } func (x PatternFlowGreChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13143,7 +13495,7 @@ func (x PatternFlowGreChecksum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreChecksum_Choice_Enum.Descriptor instead. func (PatternFlowGreChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{570, 0, 0} } type PatternFlowGreChecksum_Generated_Enum int32 @@ -13179,11 +13531,11 @@ func (x PatternFlowGreChecksum_Generated_Enum) String() string { } func (PatternFlowGreChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[239].Descriptor() + return file_otg_proto_enumTypes[246].Descriptor() } func (PatternFlowGreChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[239] + return &file_otg_proto_enumTypes[246] } func (x PatternFlowGreChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -13192,7 +13544,7 @@ func (x PatternFlowGreChecksum_Generated_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowGreChecksum_Generated_Enum.Descriptor instead. func (PatternFlowGreChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{570, 1, 0} } type PatternFlowGreReserved1_Choice_Enum int32 @@ -13234,11 +13586,11 @@ func (x PatternFlowGreReserved1_Choice_Enum) String() string { } func (PatternFlowGreReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[240].Descriptor() + return file_otg_proto_enumTypes[247].Descriptor() } func (PatternFlowGreReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[240] + return &file_otg_proto_enumTypes[247] } func (x PatternFlowGreReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13247,7 +13599,7 @@ func (x PatternFlowGreReserved1_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreReserved1_Choice_Enum.Descriptor instead. func (PatternFlowGreReserved1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{555, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{573, 0, 0} } type PatternFlowGtpv1Version_Choice_Enum int32 @@ -13289,11 +13641,11 @@ func (x PatternFlowGtpv1Version_Choice_Enum) String() string { } func (PatternFlowGtpv1Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[241].Descriptor() + return file_otg_proto_enumTypes[248].Descriptor() } func (PatternFlowGtpv1Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[241] + return &file_otg_proto_enumTypes[248] } func (x PatternFlowGtpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13302,7 +13654,7 @@ func (x PatternFlowGtpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Version_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{558, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{576, 0, 0} } type PatternFlowGtpv1ProtocolType_Choice_Enum int32 @@ -13344,11 +13696,11 @@ func (x PatternFlowGtpv1ProtocolType_Choice_Enum) String() string { } func (PatternFlowGtpv1ProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[242].Descriptor() + return file_otg_proto_enumTypes[249].Descriptor() } func (PatternFlowGtpv1ProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[242] + return &file_otg_proto_enumTypes[249] } func (x PatternFlowGtpv1ProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13357,7 +13709,7 @@ func (x PatternFlowGtpv1ProtocolType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowGtpv1ProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1ProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{561, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{579, 0, 0} } type PatternFlowGtpv1Reserved_Choice_Enum int32 @@ -13399,11 +13751,11 @@ func (x PatternFlowGtpv1Reserved_Choice_Enum) String() string { } func (PatternFlowGtpv1Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[243].Descriptor() + return file_otg_proto_enumTypes[250].Descriptor() } func (PatternFlowGtpv1Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[243] + return &file_otg_proto_enumTypes[250] } func (x PatternFlowGtpv1Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13412,7 +13764,7 @@ func (x PatternFlowGtpv1Reserved_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Reserved_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Reserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{564, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{582, 0, 0} } type PatternFlowGtpv1EFlag_Choice_Enum int32 @@ -13454,11 +13806,11 @@ func (x PatternFlowGtpv1EFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1EFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[244].Descriptor() + return file_otg_proto_enumTypes[251].Descriptor() } func (PatternFlowGtpv1EFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[244] + return &file_otg_proto_enumTypes[251] } func (x PatternFlowGtpv1EFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13467,7 +13819,7 @@ func (x PatternFlowGtpv1EFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1EFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1EFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{567, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{585, 0, 0} } type PatternFlowGtpv1SFlag_Choice_Enum int32 @@ -13509,11 +13861,11 @@ func (x PatternFlowGtpv1SFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1SFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[245].Descriptor() + return file_otg_proto_enumTypes[252].Descriptor() } func (PatternFlowGtpv1SFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[245] + return &file_otg_proto_enumTypes[252] } func (x PatternFlowGtpv1SFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13522,7 +13874,7 @@ func (x PatternFlowGtpv1SFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1SFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1SFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{570, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{588, 0, 0} } type PatternFlowGtpv1PnFlag_Choice_Enum int32 @@ -13564,11 +13916,11 @@ func (x PatternFlowGtpv1PnFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1PnFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[246].Descriptor() + return file_otg_proto_enumTypes[253].Descriptor() } func (PatternFlowGtpv1PnFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[246] + return &file_otg_proto_enumTypes[253] } func (x PatternFlowGtpv1PnFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13577,7 +13929,7 @@ func (x PatternFlowGtpv1PnFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1PnFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1PnFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{573, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{591, 0, 0} } type PatternFlowGtpv1MessageType_Choice_Enum int32 @@ -13619,11 +13971,11 @@ func (x PatternFlowGtpv1MessageType_Choice_Enum) String() string { } func (PatternFlowGtpv1MessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[247].Descriptor() + return file_otg_proto_enumTypes[254].Descriptor() } func (PatternFlowGtpv1MessageType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[247] + return &file_otg_proto_enumTypes[254] } func (x PatternFlowGtpv1MessageType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13632,7 +13984,7 @@ func (x PatternFlowGtpv1MessageType_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowGtpv1MessageType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1MessageType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{576, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{594, 0, 0} } type PatternFlowGtpv1MessageLength_Choice_Enum int32 @@ -13674,11 +14026,11 @@ func (x PatternFlowGtpv1MessageLength_Choice_Enum) String() string { } func (PatternFlowGtpv1MessageLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[248].Descriptor() + return file_otg_proto_enumTypes[255].Descriptor() } func (PatternFlowGtpv1MessageLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[248] + return &file_otg_proto_enumTypes[255] } func (x PatternFlowGtpv1MessageLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13687,7 +14039,7 @@ func (x PatternFlowGtpv1MessageLength_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv1MessageLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1MessageLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{579, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{597, 0, 0} } type PatternFlowGtpv1Teid_Choice_Enum int32 @@ -13729,11 +14081,11 @@ func (x PatternFlowGtpv1Teid_Choice_Enum) String() string { } func (PatternFlowGtpv1Teid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[249].Descriptor() + return file_otg_proto_enumTypes[256].Descriptor() } func (PatternFlowGtpv1Teid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[249] + return &file_otg_proto_enumTypes[256] } func (x PatternFlowGtpv1Teid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13742,7 +14094,7 @@ func (x PatternFlowGtpv1Teid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Teid_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Teid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{582, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{600, 0, 0} } type PatternFlowGtpv1SquenceNumber_Choice_Enum int32 @@ -13784,11 +14136,11 @@ func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) String() string { } func (PatternFlowGtpv1SquenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[250].Descriptor() + return file_otg_proto_enumTypes[257].Descriptor() } func (PatternFlowGtpv1SquenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[250] + return &file_otg_proto_enumTypes[257] } func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13797,7 +14149,7 @@ func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1SquenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{603, 0, 0} } type PatternFlowGtpv1NPduNumber_Choice_Enum int32 @@ -13839,11 +14191,11 @@ func (x PatternFlowGtpv1NPduNumber_Choice_Enum) String() string { } func (PatternFlowGtpv1NPduNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[251].Descriptor() + return file_otg_proto_enumTypes[258].Descriptor() } func (PatternFlowGtpv1NPduNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[251] + return &file_otg_proto_enumTypes[258] } func (x PatternFlowGtpv1NPduNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13852,7 +14204,7 @@ func (x PatternFlowGtpv1NPduNumber_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowGtpv1NPduNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1NPduNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{588, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{606, 0, 0} } type PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum int32 @@ -13894,11 +14246,11 @@ func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) String() string { } func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[252].Descriptor() + return file_otg_proto_enumTypes[259].Descriptor() } func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[252] + return &file_otg_proto_enumTypes[259] } func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13907,7 +14259,7 @@ func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Number() protorefle // Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{591, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{609, 0, 0} } type PatternFlowGtpExtensionExtensionLength_Choice_Enum int32 @@ -13949,11 +14301,11 @@ func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) String() string { } func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[253].Descriptor() + return file_otg_proto_enumTypes[260].Descriptor() } func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[253] + return &file_otg_proto_enumTypes[260] } func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13962,7 +14314,7 @@ func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) Number() protoreflec // Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{594, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{612, 0, 0} } type PatternFlowGtpExtensionContents_Choice_Enum int32 @@ -14004,11 +14356,11 @@ func (x PatternFlowGtpExtensionContents_Choice_Enum) String() string { } func (PatternFlowGtpExtensionContents_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[254].Descriptor() + return file_otg_proto_enumTypes[261].Descriptor() } func (PatternFlowGtpExtensionContents_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[254] + return &file_otg_proto_enumTypes[261] } func (x PatternFlowGtpExtensionContents_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14017,7 +14369,7 @@ func (x PatternFlowGtpExtensionContents_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowGtpExtensionContents_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionContents_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{597, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{615, 0, 0} } type PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum int32 @@ -14059,11 +14411,11 @@ func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) String() string } func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[255].Descriptor() + return file_otg_proto_enumTypes[262].Descriptor() } func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[255] + return &file_otg_proto_enumTypes[262] } func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14072,7 +14424,7 @@ func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Number() protore // Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{600, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{618, 0, 0} } type PatternFlowGtpv2Version_Choice_Enum int32 @@ -14114,11 +14466,11 @@ func (x PatternFlowGtpv2Version_Choice_Enum) String() string { } func (PatternFlowGtpv2Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[256].Descriptor() + return file_otg_proto_enumTypes[263].Descriptor() } func (PatternFlowGtpv2Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[256] + return &file_otg_proto_enumTypes[263] } func (x PatternFlowGtpv2Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14127,7 +14479,7 @@ func (x PatternFlowGtpv2Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Version_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{603, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{621, 0, 0} } type PatternFlowGtpv2PiggybackingFlag_Choice_Enum int32 @@ -14169,11 +14521,11 @@ func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) String() string { } func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[257].Descriptor() + return file_otg_proto_enumTypes[264].Descriptor() } func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[257] + return &file_otg_proto_enumTypes[264] } func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14182,7 +14534,7 @@ func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{606, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{624, 0, 0} } type PatternFlowGtpv2TeidFlag_Choice_Enum int32 @@ -14224,11 +14576,11 @@ func (x PatternFlowGtpv2TeidFlag_Choice_Enum) String() string { } func (PatternFlowGtpv2TeidFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[258].Descriptor() + return file_otg_proto_enumTypes[265].Descriptor() } func (PatternFlowGtpv2TeidFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[258] + return &file_otg_proto_enumTypes[265] } func (x PatternFlowGtpv2TeidFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14237,7 +14589,7 @@ func (x PatternFlowGtpv2TeidFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2TeidFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2TeidFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{609, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{627, 0, 0} } type PatternFlowGtpv2Spare1_Choice_Enum int32 @@ -14279,11 +14631,11 @@ func (x PatternFlowGtpv2Spare1_Choice_Enum) String() string { } func (PatternFlowGtpv2Spare1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[259].Descriptor() + return file_otg_proto_enumTypes[266].Descriptor() } func (PatternFlowGtpv2Spare1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[259] + return &file_otg_proto_enumTypes[266] } func (x PatternFlowGtpv2Spare1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14292,7 +14644,7 @@ func (x PatternFlowGtpv2Spare1_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Spare1_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Spare1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{612, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{630, 0, 0} } type PatternFlowGtpv2MessageType_Choice_Enum int32 @@ -14334,11 +14686,11 @@ func (x PatternFlowGtpv2MessageType_Choice_Enum) String() string { } func (PatternFlowGtpv2MessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[260].Descriptor() + return file_otg_proto_enumTypes[267].Descriptor() } func (PatternFlowGtpv2MessageType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[260] + return &file_otg_proto_enumTypes[267] } func (x PatternFlowGtpv2MessageType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14347,7 +14699,7 @@ func (x PatternFlowGtpv2MessageType_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowGtpv2MessageType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2MessageType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{615, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{633, 0, 0} } type PatternFlowGtpv2MessageLength_Choice_Enum int32 @@ -14389,11 +14741,11 @@ func (x PatternFlowGtpv2MessageLength_Choice_Enum) String() string { } func (PatternFlowGtpv2MessageLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[261].Descriptor() + return file_otg_proto_enumTypes[268].Descriptor() } func (PatternFlowGtpv2MessageLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[261] + return &file_otg_proto_enumTypes[268] } func (x PatternFlowGtpv2MessageLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14402,7 +14754,7 @@ func (x PatternFlowGtpv2MessageLength_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv2MessageLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2MessageLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{618, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{636, 0, 0} } type PatternFlowGtpv2Teid_Choice_Enum int32 @@ -14444,11 +14796,11 @@ func (x PatternFlowGtpv2Teid_Choice_Enum) String() string { } func (PatternFlowGtpv2Teid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[262].Descriptor() + return file_otg_proto_enumTypes[269].Descriptor() } func (PatternFlowGtpv2Teid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[262] + return &file_otg_proto_enumTypes[269] } func (x PatternFlowGtpv2Teid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14457,7 +14809,7 @@ func (x PatternFlowGtpv2Teid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Teid_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Teid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{621, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{639, 0, 0} } type PatternFlowGtpv2SequenceNumber_Choice_Enum int32 @@ -14499,11 +14851,11 @@ func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) String() string { } func (PatternFlowGtpv2SequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[263].Descriptor() + return file_otg_proto_enumTypes[270].Descriptor() } func (PatternFlowGtpv2SequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[263] + return &file_otg_proto_enumTypes[270] } func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14512,7 +14864,7 @@ func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2SequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{624, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{642, 0, 0} } type PatternFlowGtpv2Spare2_Choice_Enum int32 @@ -14554,11 +14906,11 @@ func (x PatternFlowGtpv2Spare2_Choice_Enum) String() string { } func (PatternFlowGtpv2Spare2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[264].Descriptor() + return file_otg_proto_enumTypes[271].Descriptor() } func (PatternFlowGtpv2Spare2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[264] + return &file_otg_proto_enumTypes[271] } func (x PatternFlowGtpv2Spare2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14567,7 +14919,7 @@ func (x PatternFlowGtpv2Spare2_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Spare2_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Spare2_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{627, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{645, 0, 0} } type PatternFlowArpHardwareType_Choice_Enum int32 @@ -14609,11 +14961,11 @@ func (x PatternFlowArpHardwareType_Choice_Enum) String() string { } func (PatternFlowArpHardwareType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[265].Descriptor() + return file_otg_proto_enumTypes[272].Descriptor() } func (PatternFlowArpHardwareType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[265] + return &file_otg_proto_enumTypes[272] } func (x PatternFlowArpHardwareType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14622,7 +14974,7 @@ func (x PatternFlowArpHardwareType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowArpHardwareType_Choice_Enum.Descriptor instead. func (PatternFlowArpHardwareType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{630, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{648, 0, 0} } type PatternFlowArpProtocolType_Choice_Enum int32 @@ -14664,11 +15016,11 @@ func (x PatternFlowArpProtocolType_Choice_Enum) String() string { } func (PatternFlowArpProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[266].Descriptor() + return file_otg_proto_enumTypes[273].Descriptor() } func (PatternFlowArpProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[266] + return &file_otg_proto_enumTypes[273] } func (x PatternFlowArpProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14677,7 +15029,7 @@ func (x PatternFlowArpProtocolType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowArpProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowArpProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{633, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{651, 0, 0} } type PatternFlowArpHardwareLength_Choice_Enum int32 @@ -14719,11 +15071,11 @@ func (x PatternFlowArpHardwareLength_Choice_Enum) String() string { } func (PatternFlowArpHardwareLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[267].Descriptor() + return file_otg_proto_enumTypes[274].Descriptor() } func (PatternFlowArpHardwareLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[267] + return &file_otg_proto_enumTypes[274] } func (x PatternFlowArpHardwareLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14732,7 +15084,7 @@ func (x PatternFlowArpHardwareLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowArpHardwareLength_Choice_Enum.Descriptor instead. func (PatternFlowArpHardwareLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{636, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{654, 0, 0} } type PatternFlowArpProtocolLength_Choice_Enum int32 @@ -14774,11 +15126,11 @@ func (x PatternFlowArpProtocolLength_Choice_Enum) String() string { } func (PatternFlowArpProtocolLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[268].Descriptor() + return file_otg_proto_enumTypes[275].Descriptor() } func (PatternFlowArpProtocolLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[268] + return &file_otg_proto_enumTypes[275] } func (x PatternFlowArpProtocolLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14787,7 +15139,7 @@ func (x PatternFlowArpProtocolLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowArpProtocolLength_Choice_Enum.Descriptor instead. func (PatternFlowArpProtocolLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{639, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{657, 0, 0} } type PatternFlowArpOperation_Choice_Enum int32 @@ -14829,11 +15181,11 @@ func (x PatternFlowArpOperation_Choice_Enum) String() string { } func (PatternFlowArpOperation_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[269].Descriptor() + return file_otg_proto_enumTypes[276].Descriptor() } func (PatternFlowArpOperation_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[269] + return &file_otg_proto_enumTypes[276] } func (x PatternFlowArpOperation_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14842,7 +15194,7 @@ func (x PatternFlowArpOperation_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowArpOperation_Choice_Enum.Descriptor instead. func (PatternFlowArpOperation_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{642, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{660, 0, 0} } type PatternFlowArpSenderHardwareAddr_Choice_Enum int32 @@ -14884,11 +15236,11 @@ func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) String() string { } func (PatternFlowArpSenderHardwareAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[270].Descriptor() + return file_otg_proto_enumTypes[277].Descriptor() } func (PatternFlowArpSenderHardwareAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[270] + return &file_otg_proto_enumTypes[277] } func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14897,7 +15249,7 @@ func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpSenderHardwareAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{645, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{663, 0, 0} } type PatternFlowArpSenderProtocolAddr_Choice_Enum int32 @@ -14939,11 +15291,11 @@ func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) String() string { } func (PatternFlowArpSenderProtocolAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[271].Descriptor() + return file_otg_proto_enumTypes[278].Descriptor() } func (PatternFlowArpSenderProtocolAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[271] + return &file_otg_proto_enumTypes[278] } func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14952,7 +15304,7 @@ func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpSenderProtocolAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpSenderProtocolAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{648, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{666, 0, 0} } type PatternFlowArpTargetHardwareAddr_Choice_Enum int32 @@ -14994,11 +15346,11 @@ func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) String() string { } func (PatternFlowArpTargetHardwareAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[272].Descriptor() + return file_otg_proto_enumTypes[279].Descriptor() } func (PatternFlowArpTargetHardwareAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[272] + return &file_otg_proto_enumTypes[279] } func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15007,7 +15359,7 @@ func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpTargetHardwareAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpTargetHardwareAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{651, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{669, 0, 0} } type PatternFlowArpTargetProtocolAddr_Choice_Enum int32 @@ -15049,11 +15401,11 @@ func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) String() string { } func (PatternFlowArpTargetProtocolAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[273].Descriptor() + return file_otg_proto_enumTypes[280].Descriptor() } func (PatternFlowArpTargetProtocolAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[273] + return &file_otg_proto_enumTypes[280] } func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15062,7 +15414,7 @@ func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpTargetProtocolAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpTargetProtocolAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{654, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{672, 0, 0} } type PatternFlowIcmpEchoType_Choice_Enum int32 @@ -15104,11 +15456,11 @@ func (x PatternFlowIcmpEchoType_Choice_Enum) String() string { } func (PatternFlowIcmpEchoType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[274].Descriptor() + return file_otg_proto_enumTypes[281].Descriptor() } func (PatternFlowIcmpEchoType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[274] + return &file_otg_proto_enumTypes[281] } func (x PatternFlowIcmpEchoType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15117,7 +15469,7 @@ func (x PatternFlowIcmpEchoType_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIcmpEchoType_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{657, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{675, 0, 0} } type PatternFlowIcmpEchoCode_Choice_Enum int32 @@ -15159,11 +15511,11 @@ func (x PatternFlowIcmpEchoCode_Choice_Enum) String() string { } func (PatternFlowIcmpEchoCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[275].Descriptor() + return file_otg_proto_enumTypes[282].Descriptor() } func (PatternFlowIcmpEchoCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[275] + return &file_otg_proto_enumTypes[282] } func (x PatternFlowIcmpEchoCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15172,7 +15524,7 @@ func (x PatternFlowIcmpEchoCode_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIcmpEchoCode_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{660, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{678, 0, 0} } type PatternFlowIcmpEchoChecksum_Choice_Enum int32 @@ -15208,11 +15560,11 @@ func (x PatternFlowIcmpEchoChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpEchoChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[276].Descriptor() + return file_otg_proto_enumTypes[283].Descriptor() } func (PatternFlowIcmpEchoChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[276] + return &file_otg_proto_enumTypes[283] } func (x PatternFlowIcmpEchoChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15221,7 +15573,7 @@ func (x PatternFlowIcmpEchoChecksum_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIcmpEchoChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{679, 0, 0} } type PatternFlowIcmpEchoChecksum_Generated_Enum int32 @@ -15257,11 +15609,11 @@ func (x PatternFlowIcmpEchoChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpEchoChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[277].Descriptor() + return file_otg_proto_enumTypes[284].Descriptor() } func (PatternFlowIcmpEchoChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[277] + return &file_otg_proto_enumTypes[284] } func (x PatternFlowIcmpEchoChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -15270,7 +15622,7 @@ func (x PatternFlowIcmpEchoChecksum_Generated_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowIcmpEchoChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpEchoChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{679, 1, 0} } type PatternFlowIcmpEchoIdentifier_Choice_Enum int32 @@ -15312,11 +15664,11 @@ func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpEchoIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[278].Descriptor() + return file_otg_proto_enumTypes[285].Descriptor() } func (PatternFlowIcmpEchoIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[278] + return &file_otg_proto_enumTypes[285] } func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15325,7 +15677,7 @@ func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpEchoIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{664, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{682, 0, 0} } type PatternFlowIcmpEchoSequenceNumber_Choice_Enum int32 @@ -15367,11 +15719,11 @@ func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[279].Descriptor() + return file_otg_proto_enumTypes[286].Descriptor() } func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[279] + return &file_otg_proto_enumTypes[286] } func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15380,7 +15732,7 @@ func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Number() protoreflect.Enu // Deprecated: Use PatternFlowIcmpEchoSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{667, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{685, 0, 0} } type PatternFlowIcmpCommonChecksum_Choice_Enum int32 @@ -15416,11 +15768,11 @@ func (x PatternFlowIcmpCommonChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpCommonChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[280].Descriptor() + return file_otg_proto_enumTypes[287].Descriptor() } func (PatternFlowIcmpCommonChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[280] + return &file_otg_proto_enumTypes[287] } func (x PatternFlowIcmpCommonChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15429,7 +15781,7 @@ func (x PatternFlowIcmpCommonChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpCommonChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpCommonChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{686, 0, 0} } type PatternFlowIcmpCommonChecksum_Generated_Enum int32 @@ -15465,11 +15817,11 @@ func (x PatternFlowIcmpCommonChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpCommonChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[281].Descriptor() + return file_otg_proto_enumTypes[288].Descriptor() } func (PatternFlowIcmpCommonChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[281] + return &file_otg_proto_enumTypes[288] } func (x PatternFlowIcmpCommonChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -15478,7 +15830,7 @@ func (x PatternFlowIcmpCommonChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIcmpCommonChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpCommonChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{686, 1, 0} } type PatternFlowIcmpNextFieldsIdentifier_Choice_Enum int32 @@ -15520,11 +15872,11 @@ func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[282].Descriptor() + return file_otg_proto_enumTypes[289].Descriptor() } func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[282] + return &file_otg_proto_enumTypes[289] } func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15533,7 +15885,7 @@ func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Number() protoreflect.E // Deprecated: Use PatternFlowIcmpNextFieldsIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{671, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{689, 0, 0} } type PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum int32 @@ -15575,11 +15927,11 @@ func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[283].Descriptor() + return file_otg_proto_enumTypes[290].Descriptor() } func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[283] + return &file_otg_proto_enumTypes[290] } func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15588,7 +15940,7 @@ func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Number() protorefle // Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{674, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{692, 0, 0} } type PatternFlowIcmpv6EchoType_Choice_Enum int32 @@ -15630,11 +15982,11 @@ func (x PatternFlowIcmpv6EchoType_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[284].Descriptor() + return file_otg_proto_enumTypes[291].Descriptor() } func (PatternFlowIcmpv6EchoType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[284] + return &file_otg_proto_enumTypes[291] } func (x PatternFlowIcmpv6EchoType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15643,7 +15995,7 @@ func (x PatternFlowIcmpv6EchoType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIcmpv6EchoType_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{677, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{695, 0, 0} } type PatternFlowIcmpv6EchoCode_Choice_Enum int32 @@ -15685,11 +16037,11 @@ func (x PatternFlowIcmpv6EchoCode_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[285].Descriptor() + return file_otg_proto_enumTypes[292].Descriptor() } func (PatternFlowIcmpv6EchoCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[285] + return &file_otg_proto_enumTypes[292] } func (x PatternFlowIcmpv6EchoCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15698,7 +16050,7 @@ func (x PatternFlowIcmpv6EchoCode_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIcmpv6EchoCode_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{680, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{698, 0, 0} } type PatternFlowIcmpv6EchoIdentifier_Choice_Enum int32 @@ -15740,11 +16092,11 @@ func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[286].Descriptor() + return file_otg_proto_enumTypes[293].Descriptor() } func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[286] + return &file_otg_proto_enumTypes[293] } func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15753,7 +16105,7 @@ func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowIcmpv6EchoIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{683, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{701, 0, 0} } type PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum int32 @@ -15795,11 +16147,11 @@ func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[287].Descriptor() + return file_otg_proto_enumTypes[294].Descriptor() } func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[287] + return &file_otg_proto_enumTypes[294] } func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15808,7 +16160,7 @@ func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Number() protoreflect.E // Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{686, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{704, 0, 0} } type PatternFlowIcmpv6EchoChecksum_Choice_Enum int32 @@ -15844,11 +16196,11 @@ func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[288].Descriptor() + return file_otg_proto_enumTypes[295].Descriptor() } func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[288] + return &file_otg_proto_enumTypes[295] } func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15857,7 +16209,7 @@ func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpv6EchoChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{705, 0, 0} } type PatternFlowIcmpv6EchoChecksum_Generated_Enum int32 @@ -15893,11 +16245,11 @@ func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[289].Descriptor() + return file_otg_proto_enumTypes[296].Descriptor() } func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[289] + return &file_otg_proto_enumTypes[296] } func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -15906,7 +16258,7 @@ func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIcmpv6EchoChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{705, 1, 0} } type PatternFlowIcmpv6CommonChecksum_Choice_Enum int32 @@ -15942,11 +16294,11 @@ func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[290].Descriptor() + return file_otg_proto_enumTypes[297].Descriptor() } func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[290] + return &file_otg_proto_enumTypes[297] } func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15955,7 +16307,7 @@ func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowIcmpv6CommonChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{706, 0, 0} } type PatternFlowIcmpv6CommonChecksum_Generated_Enum int32 @@ -15991,11 +16343,11 @@ func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[291].Descriptor() + return file_otg_proto_enumTypes[298].Descriptor() } func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[291] + return &file_otg_proto_enumTypes[298] } func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16004,7 +16356,7 @@ func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) Number() protoreflect.En // Deprecated: Use PatternFlowIcmpv6CommonChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{706, 1, 0} } type PatternFlowPppAddress_Choice_Enum int32 @@ -16046,11 +16398,11 @@ func (x PatternFlowPppAddress_Choice_Enum) String() string { } func (PatternFlowPppAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[292].Descriptor() + return file_otg_proto_enumTypes[299].Descriptor() } func (PatternFlowPppAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[292] + return &file_otg_proto_enumTypes[299] } func (x PatternFlowPppAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16059,7 +16411,7 @@ func (x PatternFlowPppAddress_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPppAddress_Choice_Enum.Descriptor instead. func (PatternFlowPppAddress_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{691, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{709, 0, 0} } type PatternFlowPppControl_Choice_Enum int32 @@ -16101,11 +16453,11 @@ func (x PatternFlowPppControl_Choice_Enum) String() string { } func (PatternFlowPppControl_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[293].Descriptor() + return file_otg_proto_enumTypes[300].Descriptor() } func (PatternFlowPppControl_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[293] + return &file_otg_proto_enumTypes[300] } func (x PatternFlowPppControl_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16114,7 +16466,7 @@ func (x PatternFlowPppControl_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPppControl_Choice_Enum.Descriptor instead. func (PatternFlowPppControl_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{712, 0, 0} } type PatternFlowPppProtocolType_Choice_Enum int32 @@ -16159,11 +16511,11 @@ func (x PatternFlowPppProtocolType_Choice_Enum) String() string { } func (PatternFlowPppProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[294].Descriptor() + return file_otg_proto_enumTypes[301].Descriptor() } func (PatternFlowPppProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[294] + return &file_otg_proto_enumTypes[301] } func (x PatternFlowPppProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16172,7 +16524,7 @@ func (x PatternFlowPppProtocolType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowPppProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowPppProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{715, 0, 0} } type PatternFlowIgmpv1Version_Choice_Enum int32 @@ -16214,11 +16566,11 @@ func (x PatternFlowIgmpv1Version_Choice_Enum) String() string { } func (PatternFlowIgmpv1Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[295].Descriptor() + return file_otg_proto_enumTypes[302].Descriptor() } func (PatternFlowIgmpv1Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[295] + return &file_otg_proto_enumTypes[302] } func (x PatternFlowIgmpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16227,7 +16579,7 @@ func (x PatternFlowIgmpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Version_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{718, 0, 0} } type PatternFlowIgmpv1Type_Choice_Enum int32 @@ -16269,11 +16621,11 @@ func (x PatternFlowIgmpv1Type_Choice_Enum) String() string { } func (PatternFlowIgmpv1Type_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[296].Descriptor() + return file_otg_proto_enumTypes[303].Descriptor() } func (PatternFlowIgmpv1Type_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[296] + return &file_otg_proto_enumTypes[303] } func (x PatternFlowIgmpv1Type_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16282,7 +16634,7 @@ func (x PatternFlowIgmpv1Type_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Type_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Type_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{703, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{721, 0, 0} } type PatternFlowIgmpv1Unused_Choice_Enum int32 @@ -16324,11 +16676,11 @@ func (x PatternFlowIgmpv1Unused_Choice_Enum) String() string { } func (PatternFlowIgmpv1Unused_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[297].Descriptor() + return file_otg_proto_enumTypes[304].Descriptor() } func (PatternFlowIgmpv1Unused_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[297] + return &file_otg_proto_enumTypes[304] } func (x PatternFlowIgmpv1Unused_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16337,7 +16689,7 @@ func (x PatternFlowIgmpv1Unused_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Unused_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Unused_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{706, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{724, 0, 0} } type PatternFlowIgmpv1Checksum_Choice_Enum int32 @@ -16373,11 +16725,11 @@ func (x PatternFlowIgmpv1Checksum_Choice_Enum) String() string { } func (PatternFlowIgmpv1Checksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[298].Descriptor() + return file_otg_proto_enumTypes[305].Descriptor() } func (PatternFlowIgmpv1Checksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[298] + return &file_otg_proto_enumTypes[305] } func (x PatternFlowIgmpv1Checksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16386,7 +16738,7 @@ func (x PatternFlowIgmpv1Checksum_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIgmpv1Checksum_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Checksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{725, 0, 0} } type PatternFlowIgmpv1Checksum_Generated_Enum int32 @@ -16422,11 +16774,11 @@ func (x PatternFlowIgmpv1Checksum_Generated_Enum) String() string { } func (PatternFlowIgmpv1Checksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[299].Descriptor() + return file_otg_proto_enumTypes[306].Descriptor() } func (PatternFlowIgmpv1Checksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[299] + return &file_otg_proto_enumTypes[306] } func (x PatternFlowIgmpv1Checksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16435,7 +16787,7 @@ func (x PatternFlowIgmpv1Checksum_Generated_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIgmpv1Checksum_Generated_Enum.Descriptor instead. func (PatternFlowIgmpv1Checksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{725, 1, 0} } type PatternFlowIgmpv1GroupAddress_Choice_Enum int32 @@ -16477,11 +16829,11 @@ func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) String() string { } func (PatternFlowIgmpv1GroupAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[300].Descriptor() + return file_otg_proto_enumTypes[307].Descriptor() } func (PatternFlowIgmpv1GroupAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[300] + return &file_otg_proto_enumTypes[307] } func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16490,7 +16842,7 @@ func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIgmpv1GroupAddress_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1GroupAddress_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{728, 0, 0} } type PatternFlowMplsLabel_Choice_Enum int32 @@ -16535,11 +16887,11 @@ func (x PatternFlowMplsLabel_Choice_Enum) String() string { } func (PatternFlowMplsLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[301].Descriptor() + return file_otg_proto_enumTypes[308].Descriptor() } func (PatternFlowMplsLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[301] + return &file_otg_proto_enumTypes[308] } func (x PatternFlowMplsLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16548,7 +16900,7 @@ func (x PatternFlowMplsLabel_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowMplsLabel_Choice_Enum.Descriptor instead. func (PatternFlowMplsLabel_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{731, 0, 0} } type PatternFlowMplsTrafficClass_Choice_Enum int32 @@ -16590,11 +16942,11 @@ func (x PatternFlowMplsTrafficClass_Choice_Enum) String() string { } func (PatternFlowMplsTrafficClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[302].Descriptor() + return file_otg_proto_enumTypes[309].Descriptor() } func (PatternFlowMplsTrafficClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[302] + return &file_otg_proto_enumTypes[309] } func (x PatternFlowMplsTrafficClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16603,7 +16955,7 @@ func (x PatternFlowMplsTrafficClass_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowMplsTrafficClass_Choice_Enum.Descriptor instead. func (PatternFlowMplsTrafficClass_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{734, 0, 0} } type PatternFlowMplsBottomOfStack_Choice_Enum int32 @@ -16648,11 +17000,11 @@ func (x PatternFlowMplsBottomOfStack_Choice_Enum) String() string { } func (PatternFlowMplsBottomOfStack_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[303].Descriptor() + return file_otg_proto_enumTypes[310].Descriptor() } func (PatternFlowMplsBottomOfStack_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[303] + return &file_otg_proto_enumTypes[310] } func (x PatternFlowMplsBottomOfStack_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16661,7 +17013,7 @@ func (x PatternFlowMplsBottomOfStack_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowMplsBottomOfStack_Choice_Enum.Descriptor instead. func (PatternFlowMplsBottomOfStack_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{737, 0, 0} } type PatternFlowMplsTimeToLive_Choice_Enum int32 @@ -16703,11 +17055,11 @@ func (x PatternFlowMplsTimeToLive_Choice_Enum) String() string { } func (PatternFlowMplsTimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[304].Descriptor() + return file_otg_proto_enumTypes[311].Descriptor() } func (PatternFlowMplsTimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[304] + return &file_otg_proto_enumTypes[311] } func (x PatternFlowMplsTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16716,7 +17068,7 @@ func (x PatternFlowMplsTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowMplsTimeToLive_Choice_Enum.Descriptor instead. func (PatternFlowMplsTimeToLive_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{722, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{740, 0, 0} } // A container for all models that are part of the configuration. @@ -24152,6 +24504,10 @@ type BgpV4RouteRange struct { // objects. // required = true Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // // Optional Extended Community settings. The Extended Communities Attribute is a transitive // optional BGP attribute, with the Type Code 16. Community and Extended Communities // attributes are utilized to trigger routing decisions, such as acceptance, rejection, @@ -24181,6 +24537,15 @@ type BgpV4RouteRange struct { // occur for the same MAC address. Note evpn type is defined mainly for use with evpn // route updates and not for IPv4 and IPv6 route updates. ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six bytes carry a unique set of data in a format + // defined by the type and sub-type field. Extended communities provide a larger range + // for grouping or categorizing communities. + ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,12,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` } func (x *BgpV4RouteRange) Reset() { @@ -24292,6 +24657,13 @@ func (x *BgpV4RouteRange) GetExtCommunities() []*BgpExtCommunity { return nil } +func (x *BgpV4RouteRange) GetExtendedCommunities() []*BgpExtendedCommunity { + if x != nil { + return x.ExtendedCommunities + } + return nil +} + // The BGP Additional Paths feature is a BGP extension that allows the advertisement // of multiple paths for the same prefix without the new paths implicitly replacing // any previous paths. @@ -24344,78 +24716,40 @@ func (x *BgpAddPath) GetPathId() uint32 { return 0 } -// Emulated BGPv6 route range. -type BgpV6RouteRange struct { +// The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 +// with the Type Code 16. Community and Extended Communities attributes are utilized +// to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. +// An extended community is an 8-Bytes value.It is divided into two main parts. The +// first 2 Bytes of the community encode a type and optonal sub-type field. The last +// 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a +// format defined by the type and optional sub-type field. Extended communities provide +// a larger range for grouping or categorizing communities. +type BgpExtendedCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of group of IPv6 route addresses. - Addresses []*V6RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the - // NextHop in the MP REACH NLRI can be one of the following: - // Local IP: Automatically fills the Nexthop with the Local IP of the BGP - // peer. - // If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. - // Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpV6RouteRange_NextHopMode_Enum `protobuf:"varint,2,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpV6RouteRange_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. - // default = NextHopAddressType.Enum.ipv6 - NextHopAddressType *BgpV6RouteRange_NextHopAddressType_Enum `protobuf:"varint,3,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpV6RouteRange_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type - // is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. - // default = 0.0.0.0 - NextHopIpv4Address *string `protobuf:"bytes,4,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type - // is IPv6. - // default = ::0 - NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // default = Choice.Enum.transitive_2octet_as_type + Choice *BgpExtendedCommunity_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunity_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + Transitive_2OctetAsType *BgpExtendedCommunityTransitive2OctetAsType `protobuf:"bytes,2,opt,name=transitive_2octet_as_type,json=transitive2octetAsType,proto3,oneof" json:"transitive_2octet_as_type,omitempty"` // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. Note evpn type is defined mainly for use with evpn - // route updates and not for IPv4 and IPv6 route updates. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + TransitiveIpv4AddressType *BgpExtendedCommunityTransitiveIpv4AddressType `protobuf:"bytes,3,opt,name=transitive_ipv4_address_type,json=transitiveIpv4AddressType,proto3,oneof" json:"transitive_ipv4_address_type,omitempty"` + // Description missing in models + Transitive_4OctetAsType *BgpExtendedCommunityTransitive4OctetAsType `protobuf:"bytes,4,opt,name=transitive_4octet_as_type,json=transitive4octetAsType,proto3,oneof" json:"transitive_4octet_as_type,omitempty"` + // Description missing in models + TransitiveOpaqueType *BgpExtendedCommunityTransitiveOpaqueType `protobuf:"bytes,5,opt,name=transitive_opaque_type,json=transitiveOpaqueType,proto3,oneof" json:"transitive_opaque_type,omitempty"` + // Description missing in models + TransitiveEvpnType *BgpExtendedCommunityTransitiveEvpnType `protobuf:"bytes,6,opt,name=transitive_evpn_type,json=transitiveEvpnType,proto3,oneof" json:"transitive_evpn_type,omitempty"` + // Description missing in models + NonTransitive_2OctetAsType *BgpExtendedCommunityNonTransitive2OctetAsType `protobuf:"bytes,7,opt,name=non_transitive_2octet_as_type,json=nonTransitive2octetAsType,proto3,oneof" json:"non_transitive_2octet_as_type,omitempty"` + // Description missing in models + Custom *BgpExtendedCommunityCustomType `protobuf:"bytes,8,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *BgpV6RouteRange) Reset() { - *x = BgpV6RouteRange{} +func (x *BgpExtendedCommunity) Reset() { + *x = BgpExtendedCommunity{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -24423,13 +24757,13 @@ func (x *BgpV6RouteRange) Reset() { } } -func (x *BgpV6RouteRange) String() string { +func (x *BgpExtendedCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange) ProtoMessage() {} +func (*BgpExtendedCommunity) ProtoMessage() {} -func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunity) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -24441,178 +24775,87 @@ func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunity.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunity) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{82} } -func (x *BgpV6RouteRange) GetAddresses() []*V6RouteAddress { - if x != nil { - return x.Addresses - } - return nil -} - -func (x *BgpV6RouteRange) GetNextHopMode() BgpV6RouteRange_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode - } - return BgpV6RouteRange_NextHopMode_unspecified -} - -func (x *BgpV6RouteRange) GetNextHopAddressType() BgpV6RouteRange_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType - } - return BgpV6RouteRange_NextHopAddressType_unspecified -} - -func (x *BgpV6RouteRange) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address +func (x *BgpExtendedCommunity) GetChoice() BgpExtendedCommunity_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpExtendedCommunity_Choice_unspecified } -func (x *BgpV6RouteRange) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address +func (x *BgpExtendedCommunity) GetTransitive_2OctetAsType() *BgpExtendedCommunityTransitive2OctetAsType { + if x != nil { + return x.Transitive_2OctetAsType } - return "" + return nil } -func (x *BgpV6RouteRange) GetAdvanced() *BgpRouteAdvanced { +func (x *BgpExtendedCommunity) GetTransitiveIpv4AddressType() *BgpExtendedCommunityTransitiveIpv4AddressType { if x != nil { - return x.Advanced + return x.TransitiveIpv4AddressType } return nil } -func (x *BgpV6RouteRange) GetCommunities() []*BgpCommunity { +func (x *BgpExtendedCommunity) GetTransitive_4OctetAsType() *BgpExtendedCommunityTransitive4OctetAsType { if x != nil { - return x.Communities + return x.Transitive_4OctetAsType } return nil } -func (x *BgpV6RouteRange) GetAsPath() *BgpAsPath { +func (x *BgpExtendedCommunity) GetTransitiveOpaqueType() *BgpExtendedCommunityTransitiveOpaqueType { if x != nil { - return x.AsPath + return x.TransitiveOpaqueType } return nil } -func (x *BgpV6RouteRange) GetAddPath() *BgpAddPath { +func (x *BgpExtendedCommunity) GetTransitiveEvpnType() *BgpExtendedCommunityTransitiveEvpnType { if x != nil { - return x.AddPath + return x.TransitiveEvpnType } return nil } -func (x *BgpV6RouteRange) GetName() string { +func (x *BgpExtendedCommunity) GetNonTransitive_2OctetAsType() *BgpExtendedCommunityNonTransitive2OctetAsType { if x != nil { - return x.Name + return x.NonTransitive_2OctetAsType } - return "" + return nil } -func (x *BgpV6RouteRange) GetExtCommunities() []*BgpExtCommunity { +func (x *BgpExtendedCommunity) GetCustom() *BgpExtendedCommunityCustomType { if x != nil { - return x.ExtCommunities + return x.Custom } return nil } -// Configuration for BGP Segment Routing Traffic Engineering(SRTE) -// policy. -type BgpSrteV4Policy struct { +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02. +type BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 4-octet value uniquely identifying the policy in the context of (color, endpoint) - // tuple. It is used by the SR Policy originator to make unique (from an NLRI perspective) - // both for multiple candidate paths of the same SR Policy as well as candidate paths - // of different SR Policies (i.e. with different segment list) with the same Color - // and Endpoint but meant for different head-ends. - // default = 1 - Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` - // Policy color is used to match the color of the destination prefixes to steer traffic - // into the SR Policy. + // The two octet IANA assigned AS value assigned to the Autonomous System. // default = 100 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` - // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected - // on the basis of the SR Policy type (AFI). - // required = true - Ipv4Endpoint string `protobuf:"bytes,3,opt,name=ipv4_endpoint,json=ipv4Endpoint,proto3" json:"ipv4_endpoint,omitempty"` - // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically - // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop - // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary - // IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpSrteV4Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV4Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. - // default = NextHopAddressType.Enum.ipv4 - NextHopAddressType *BgpSrteV4Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV4Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the next hop if the Nexthop type 'next_hop_mode' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, - // Nexthop Encoding capability extended_next_hop_encoding should be enabled. - NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv6. - NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` - // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` - // Optional Community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // List Tunnel Encapsulation Attributes. - TunnelTlvs []*BgpSrteV4TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *BgpSrteV4Policy) Reset() { - *x = BgpSrteV4Policy{} +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -24620,13 +24863,13 @@ func (x *BgpSrteV4Policy) Reset() { } } -func (x *BgpSrteV4Policy) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -24638,167 +24881,120 @@ func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{83} } -func (x *BgpSrteV4Policy) GetDistinguisher() uint32 { - if x != nil && x.Distinguisher != nil { - return *x.Distinguisher +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } return 0 } -func (x *BgpSrteV4Policy) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetLocal_4ByteAdmin() uint32 { + if x != nil && x.Local_4ByteAdmin != nil { + return *x.Local_4ByteAdmin } return 0 } -func (x *BgpSrteV4Policy) GetIpv4Endpoint() string { - if x != nil { - return x.Ipv4Endpoint - } - return "" -} - -func (x *BgpSrteV4Policy) GetNextHopMode() BgpSrteV4Policy_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode - } - return BgpSrteV4Policy_NextHopMode_unspecified -} - -func (x *BgpSrteV4Policy) GetNextHopAddressType() BgpSrteV4Policy_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType - } - return BgpSrteV4Policy_NextHopAddressType_unspecified -} - -func (x *BgpSrteV4Policy) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address - } - return "" -} - -func (x *BgpSrteV4Policy) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address - } - return "" -} +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP. It is sent with sub-type as 0x03 . +type BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *BgpSrteV4Policy) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced - } - return nil + // The two octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *BgpSrteV4Policy) GetAddPath() *BgpAddPath { - if x != nil { - return x.AddPath +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteV4Policy) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath - } - return nil +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV4Policy) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities - } - return nil -} +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoMessage() {} -func (x *BgpSrteV4Policy) GetExtCommunities() []*BgpExtCommunity { - if x != nil { - return x.ExtCommunities +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteV4Policy) GetTunnelTlvs() []*BgpSrteV4TunnelTlv { - if x != nil { - return x.TunnelTlvs - } - return nil +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{84} } -func (x *BgpSrteV4Policy) GetName() string { - if x != nil { - return x.Name +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } - return "" + return 0 } -func (x *BgpSrteV4Policy) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetLocal_4ByteAdmin() uint32 { + if x != nil && x.Local_4ByteAdmin != nil { + return *x.Local_4ByteAdmin } - return false + return 0 } -// Configuration for BGP SRTE Tunnel TLV. -type BgpSrteV4TunnelTlv struct { +// The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +type BgpExtendedCommunityTransitive2OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` - // Description missing in models - ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` - // Description missing in models - BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` - // Description missing in models - PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` - // Description missing in models - PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` - // Description missing in models - PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + RouteTargetSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` // Description missing in models - SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` + RouteOriginSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrteV4TunnelTlv) Reset() { - *x = BgpSrteV4TunnelTlv{} +func (x *BgpExtendedCommunityTransitive2OctetAsType) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[84] + mi := &file_otg_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4TunnelTlv) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4TunnelTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsType) ProtoMessage() {} -func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[84] +func (x *BgpExtendedCommunityTransitive2OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24809,118 +25005,130 @@ func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4TunnelTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteV4TunnelTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{84} +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85} } -func (x *BgpSrteV4TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { - if x != nil { - return x.RemoteEndpointSubTlv +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetChoice() BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpExtendedCommunityTransitive2OctetAsType_Choice_unspecified } -func (x *BgpSrteV4TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { if x != nil { - return x.ColorSubTlv + return x.RouteTargetSubtype } return nil } -func (x *BgpSrteV4TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { if x != nil { - return x.BindingSubTlv + return x.RouteOriginSubtype } return nil } -func (x *BgpSrteV4TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { - if x != nil { - return x.PreferenceSubTlv - } - return nil +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An IPv4 unicast address assigned by one of the Internet registries. + // default = 0.0.0.0 + GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the IP address carried in the Global Administrator + // sub-field has been assigned by an appropriate authority. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrteV4TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { - if x != nil { - return x.PolicyPrioritySubTlv +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteV4TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { - if x != nil { - return x.PolicyNameSubTlv - } - return nil +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV4TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { - if x != nil { - return x.ExplicitNullLabelPolicySubTlv +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoMessage() {} + +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteV4TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { - if x != nil { - return x.SegmentLists - } - return nil +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{86} } -func (x *BgpSrteV4TunnelTlv) GetName() string { - if x != nil { - return x.Name +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetGlobalIpv4Admin() string { + if x != nil && x.GlobalIpv4Admin != nil { + return *x.GlobalIpv4Admin } return "" } -func (x *BgpSrteV4TunnelTlv) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } - return false + return 0 } -// Configuration for the BGP remote endpoint sub TLV. -type BgpSrteRemoteEndpointSubTlv struct { +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Autonomous system (AS) number - // default = 0 - AsNumber *uint32 `protobuf:"varint,1,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // Determines the address type - // default = AddressFamily.Enum.ipv4 - AddressFamily *BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum `protobuf:"varint,2,opt,name=address_family,json=addressFamily,proto3,enum=otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum,oneof" json:"address_family,omitempty"` - // The IPv4 address of the Remote Endpoint. + // An IPv4 unicast address assigned by one of the Internet registries. // default = 0.0.0.0 - Ipv4Address *string `protobuf:"bytes,3,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The IPv6 address of the Remote Endpoint. - // default = ::0 - Ipv6Address *string `protobuf:"bytes,4,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the IP address carried in the Global Administrator + // sub-field has been assigned by an appropriate authority. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrteRemoteEndpointSubTlv) Reset() { - *x = BgpSrteRemoteEndpointSubTlv{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[85] + mi := &file_otg_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteRemoteEndpointSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteRemoteEndpointSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[85] +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24931,70 +25139,57 @@ func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteRemoteEndpointSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteRemoteEndpointSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{85} -} - -func (x *BgpSrteRemoteEndpointSubTlv) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber - } - return 0 -} - -func (x *BgpSrteRemoteEndpointSubTlv) GetAddressFamily() BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum { - if x != nil && x.AddressFamily != nil { - return *x.AddressFamily - } - return BgpSrteRemoteEndpointSubTlv_AddressFamily_unspecified +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{87} } -func (x *BgpSrteRemoteEndpointSubTlv) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetGlobalIpv4Admin() string { + if x != nil && x.GlobalIpv4Admin != nil { + return *x.GlobalIpv4Admin } return "" } -func (x *BgpSrteRemoteEndpointSubTlv) GetIpv6Address() string { - if x != nil && x.Ipv6Address != nil { - return *x.Ipv6Address +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } - return "" + return 0 } -// Configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used -// as a way to color the corresponding Tunnel TLV. The Value field of the sub-TLV is -// eight octets long and consists of a Color Extended Community. First two octets of -// its Value field are 0x030b as type and subtype of extended community. Remaining -// six octets are are exposed to configure. -type BgpSrteColorSubTlv struct { +// The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +type BgpExtendedCommunityTransitiveIpv4AddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Six octet values. Example: 000000000064 for color value 100. - Color *string `protobuf:"bytes,1,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Description missing in models + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouteTargetSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` + // Description missing in models + RouteOriginSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrteColorSubTlv) Reset() { - *x = BgpSrteColorSubTlv{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[86] + mi := &file_otg_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteColorSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteColorSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressType) ProtoMessage() {} -func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[86] +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25005,58 +25200,67 @@ func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteColorSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteColorSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{86} +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88} } -func (x *BgpSrteColorSubTlv) GetColor() string { - if x != nil && x.Color != nil { - return *x.Color +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetChoice() BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpExtendedCommunityTransitiveIpv4AddressType_Choice_unspecified } -// Configuration for the binding SID sub-TLV. This is used to signal the binding SID -// related information of the SR Policy candidate path. -type BgpSrteBindingSubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + if x != nil { + return x.RouteTargetSubtype + } + return nil +} - // Type of the binding SID. Supported types are No Binding SID or Four Octets Sid or - // IPv6 SID. - // default = BindingSidType.Enum.no_binding - BindingSidType *BgpSrteBindingSubTlv_BindingSidType_Enum `protobuf:"varint,1,opt,name=binding_sid_type,json=bindingSidType,proto3,enum=otg.BgpSrteBindingSubTlv_BindingSidType_Enum,oneof" json:"binding_sid_type,omitempty"` - // Binding SID is encoded in 4 octets. - FourOctetSid *uint32 `protobuf:"varint,2,opt,name=four_octet_sid,json=fourOctetSid,proto3,oneof" json:"four_octet_sid,omitempty"` - // IPv6 SID value. - Ipv6Sid *string `protobuf:"bytes,3,opt,name=ipv6_sid,json=ipv6Sid,proto3,oneof" json:"ipv6_sid,omitempty"` - // S-Flag encodes the Specified-BSID-only behavior. - // default = False - SFlag *bool `protobuf:"varint,4,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` - // I-Flag encodes the Drop Upon Invalid behavior. - // default = False - IFlag *bool `protobuf:"varint,5,opt,name=i_flag,json=iFlag,proto3,oneof" json:"i_flag,omitempty"` +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + if x != nil { + return x.RouteOriginSubtype + } + return nil } -func (x *BgpSrteBindingSubTlv) Reset() { - *x = BgpSrteBindingSubTlv{} +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02 +type BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` +} + +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[87] + mi := &file_otg_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteBindingSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteBindingSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[87] +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25067,74 +25271,59 @@ func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteBindingSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteBindingSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{87} -} - -func (x *BgpSrteBindingSubTlv) GetBindingSidType() BgpSrteBindingSubTlv_BindingSidType_Enum { - if x != nil && x.BindingSidType != nil { - return *x.BindingSidType - } - return BgpSrteBindingSubTlv_BindingSidType_unspecified +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{89} } -func (x *BgpSrteBindingSubTlv) GetFourOctetSid() uint32 { - if x != nil && x.FourOctetSid != nil { - return *x.FourOctetSid +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetGlobal_4ByteAs() uint32 { + if x != nil && x.Global_4ByteAs != nil { + return *x.Global_4ByteAs } return 0 } -func (x *BgpSrteBindingSubTlv) GetIpv6Sid() string { - if x != nil && x.Ipv6Sid != nil { - return *x.Ipv6Sid - } - return "" -} - -func (x *BgpSrteBindingSubTlv) GetSFlag() bool { - if x != nil && x.SFlag != nil { - return *x.SFlag - } - return false -} - -func (x *BgpSrteBindingSubTlv) GetIFlag() bool { - if x != nil && x.IFlag != nil { - return *x.IFlag +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } - return false + return 0 } -// Configuration for BGP preference sub TLV of the SR Policy candidate path. -type BgpSrtePreferenceSubTlv struct { +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP. It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The preference value of the SR Policy candidate path. - // default = 0 - Preference *uint32 `protobuf:"varint,1,opt,name=preference,proto3,oneof" json:"preference,omitempty"` + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrtePreferenceSubTlv) Reset() { - *x = BgpSrtePreferenceSubTlv{} +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[88] + mi := &file_otg_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrtePreferenceSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrtePreferenceSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoMessage() {} -func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[88] +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25145,46 +25334,58 @@ func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrtePreferenceSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePreferenceSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{88} +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{90} } -func (x *BgpSrtePreferenceSubTlv) GetPreference() uint32 { - if x != nil && x.Preference != nil { - return *x.Preference +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetGlobal_4ByteAs() uint32 { + if x != nil && x.Global_4ByteAs != nil { + return *x.Global_4ByteAs } return 0 } -// Configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the -// order in which the SR policies are re-computed upon topological change. -type BgpSrtePolicyPrioritySubTlv struct { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin + } + return 0 +} + +// The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It +// is defined in RFC 5668. +type BgpExtendedCommunityTransitive4OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One-octet Priority value. - PolicyPriority *uint32 `protobuf:"varint,1,opt,name=policy_priority,json=policyPriority,proto3,oneof" json:"policy_priority,omitempty"` + // Description missing in models + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouteTargetSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3,oneof" json:"route_target_subtype,omitempty"` + // Description missing in models + RouteOriginSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3,oneof" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrtePolicyPrioritySubTlv) Reset() { - *x = BgpSrtePolicyPrioritySubTlv{} +func (x *BgpExtendedCommunityTransitive4OctetAsType) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[89] + mi := &file_otg_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrtePolicyPrioritySubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrtePolicyPrioritySubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsType) ProtoMessage() {} -func (x *BgpSrtePolicyPrioritySubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[89] +func (x *BgpExtendedCommunityTransitive4OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25195,47 +25396,68 @@ func (x *BgpSrtePolicyPrioritySubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrtePolicyPrioritySubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePolicyPrioritySubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{89} +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{91} } -func (x *BgpSrtePolicyPrioritySubTlv) GetPolicyPriority() uint32 { - if x != nil && x.PolicyPriority != nil { - return *x.PolicyPriority +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetChoice() BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return BgpExtendedCommunityTransitive4OctetAsType_Choice_unspecified } -// Configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach -// a symbolic name to the SR Policy candidate path. -type BgpSrtePolicyNameSubTlv struct { +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + if x != nil { + return x.RouteTargetSubtype + } + return nil +} + +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + if x != nil { + return x.RouteOriginSubtype + } + return nil +} + +// The Color Community contains locally administrator defined 'color' value which is +// used in conjunction with Encapsulation attribute to decide whether a data packet +// can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent +// with sub-type as 0x0b. +type BgpExtendedCommunityTransitiveOpaqueTypeColor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Symbolic name for the policy that should be a string of printable ASCII characters, - // without a NULL terminator. - PolicyName *string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3,oneof" json:"policy_name,omitempty"` + // Two octet flag values. + // default = 0 + Flags *uint32 `protobuf:"varint,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // The color value is user defined and configured locally and used to determine whether + // a data packet can be transmitted on a certain tunnel or not in conjunction with the + // Encapsulation attribute. It is defined in RFC9012. + // default = 0 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` } -func (x *BgpSrtePolicyNameSubTlv) Reset() { - *x = BgpSrtePolicyNameSubTlv{} +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueTypeColor{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[90] + mi := &file_otg_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrtePolicyNameSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrtePolicyNameSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoMessage() {} -func (x *BgpSrtePolicyNameSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[90] +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25246,46 +25468,67 @@ func (x *BgpSrtePolicyNameSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrtePolicyNameSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePolicyNameSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{90} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueTypeColor.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueTypeColor) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{92} } -func (x *BgpSrtePolicyNameSubTlv) GetPolicyName() string { - if x != nil && x.PolicyName != nil { - return *x.PolicyName +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags } - return "" + return 0 } -// Configuration for BGP explicit null label policy sub TLV settings. -type BgpSrteExplicitNullLabelPolicySubTlv struct { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +// This identifies the type of tunneling technology being signalled. It is defined in +// RFC9012 and sent with sub-type as 0x0c. +type BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The value of the explicit null label policy - // default = ExplicitNullLabelPolicy.Enum.do_not_push_enlp - ExplicitNullLabelPolicy *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum `protobuf:"varint,1,opt,name=explicit_null_label_policy,json=explicitNullLabelPolicy,proto3,enum=otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum,oneof" json:"explicit_null_label_policy,omitempty"` + // Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. + // + // default = 0 + Reserved *uint32 `protobuf:"varint,1,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + // Identifies the type of tunneling technology being signalled. Initially defined in + // RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 + // over IP [RFC9012], + // 2 GRE [RFC9012] + // 7 IP in IP [RFC9012] + // 8 VXLAN Encapsulation [RFC8365] + // 9 NVGRE Encapsulation [RFC8365] + // 10 MPLS Encapsulation [RFC8365] + // 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] + // 19 Geneve Encapsulation [RFC8926] + // default = 1 + TunnelType *uint32 `protobuf:"varint,2,opt,name=tunnel_type,json=tunnelType,proto3,oneof" json:"tunnel_type,omitempty"` } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) Reset() { - *x = BgpSrteExplicitNullLabelPolicySubTlv{} +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[91] + mi := &file_otg_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteExplicitNullLabelPolicySubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoMessage() {} -func (x *BgpSrteExplicitNullLabelPolicySubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[91] +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25296,59 +25539,57 @@ func (x *BgpSrteExplicitNullLabelPolicySubTlv) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteExplicitNullLabelPolicySubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{91} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{93} } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) GetExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum { - if x != nil && x.ExplicitNullLabelPolicy != nil { - return *x.ExplicitNullLabelPolicy +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetReserved() uint32 { + if x != nil && x.Reserved != nil { + return *x.Reserved } - return BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_unspecified + return 0 } -// Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV -// encodes a single explicit path towards the Endpoint. -type BgpSrteSegmentList struct { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetTunnelType() uint32 { + if x != nil && x.TunnelType != nil { + return *x.TunnelType + } + return 0 +} + +// The Transitive Opaque Extended Community is sent as type 0x03. +type BgpExtendedCommunityTransitiveOpaqueType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Weight associated with a given path and the sub-TLV is optional. - // default = 0 - Weight *uint32 `protobuf:"varint,1,opt,name=weight,proto3,oneof" json:"weight,omitempty"` // Description missing in models - Segments []*BgpSrteSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,4,opt,name=active,proto3,oneof" json:"active,omitempty"` + // default = Choice.Enum.color_subtype + Choice *BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + ColorSubtype *BgpExtendedCommunityTransitiveOpaqueTypeColor `protobuf:"bytes,2,opt,name=color_subtype,json=colorSubtype,proto3,oneof" json:"color_subtype,omitempty"` + // Description missing in models + EncapsulationSubtype *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation `protobuf:"bytes,3,opt,name=encapsulation_subtype,json=encapsulationSubtype,proto3,oneof" json:"encapsulation_subtype,omitempty"` } -func (x *BgpSrteSegmentList) Reset() { - *x = BgpSrteSegmentList{} +func (x *BgpExtendedCommunityTransitiveOpaqueType) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[92] + mi := &file_otg_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentList) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentList) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueType) ProtoMessage() {} -func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[92] +func (x *BgpExtendedCommunityTransitiveOpaqueType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25359,114 +25600,61 @@ func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentList.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentList) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{92} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94} } -func (x *BgpSrteSegmentList) GetWeight() uint32 { - if x != nil && x.Weight != nil { - return *x.Weight +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetChoice() BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return BgpExtendedCommunityTransitiveOpaqueType_Choice_unspecified } -func (x *BgpSrteSegmentList) GetSegments() []*BgpSrteSegment { +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetColorSubtype() *BgpExtendedCommunityTransitiveOpaqueTypeColor { if x != nil { - return x.Segments + return x.ColorSubtype } return nil } -func (x *BgpSrteSegmentList) GetName() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetEncapsulationSubtype() *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { if x != nil { - return x.Name - } - return "" -} - -func (x *BgpSrteSegmentList) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active + return x.EncapsulationSubtype } - return false + return nil } -// A Segment sub-TLV describes a single segment in a segment list i.e., a single element -// of the explicit path. The Segment sub-TLVs are optional. -type BgpSrteSegment struct { +// The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN +// Type-2 Routes . It is sent with sub-type 0x03. +type BgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Specify one of the segment type. - // https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13 - // Type A: SID only, in the form of MPLS Label. - // Type B: SID only, in the form of IPv6 Address. - // Type C: IPv4 Node Address with optional SID. - // Type D: IPv6 Node Address with optional SID for SR MPLS. - // Type E: IPv4 Address and index with optional SID. - // Type F: IPv4 Local and Remote addresses with optional SID. - // Type G: IPv6 Address and index for local and remote pair with optional - // SID for SR MPLS. - // Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. - // Type I: IPv6 Node Address with optional SID for SRv6. - // Type J: IPv6 Address and index for local and remote pair with optional - // SID for SRv6. - // Type K: IPv6 Local and Remote addresses for SRv6. - // required = true - SegmentType BgpSrteSegment_SegmentType_Enum `protobuf:"varint,1,opt,name=segment_type,json=segmentType,proto3,enum=otg.BgpSrteSegment_SegmentType_Enum" json:"segment_type,omitempty"` - // Description missing in models - TypeA *BgpSrteSegmentATypeSubTlv `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3,oneof" json:"type_a,omitempty"` - // Description missing in models - TypeB *BgpSrteSegmentBTypeSubTlv `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3,oneof" json:"type_b,omitempty"` - // Description missing in models - TypeC *BgpSrteSegmentCTypeSubTlv `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3,oneof" json:"type_c,omitempty"` - // Description missing in models - TypeD *BgpSrteSegmentDTypeSubTlv `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3,oneof" json:"type_d,omitempty"` - // Description missing in models - TypeE *BgpSrteSegmentETypeSubTlv `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3,oneof" json:"type_e,omitempty"` - // Description missing in models - TypeF *BgpSrteSegmentFTypeSubTlv `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3,oneof" json:"type_f,omitempty"` - // Description missing in models - TypeG *BgpSrteSegmentGTypeSubTlv `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3,oneof" json:"type_g,omitempty"` - // Description missing in models - TypeH *BgpSrteSegmentHTypeSubTlv `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3,oneof" json:"type_h,omitempty"` - // Description missing in models - TypeI *BgpSrteSegmentITypeSubTlv `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3,oneof" json:"type_i,omitempty"` - // Description missing in models - TypeJ *BgpSrteSegmentJTypeSubTlv `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3,oneof" json:"type_j,omitempty"` - // Description missing in models - TypeK *BgpSrteSegmentKTypeSubTlv `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3,oneof" json:"type_k,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,14,opt,name=active,proto3,oneof" json:"active,omitempty"` + // MAC Address of the PE Router. + // default = 0:0:0:0:0:0 + RouterMac *string `protobuf:"bytes,1,opt,name=router_mac,json=routerMac,proto3,oneof" json:"router_mac,omitempty"` } -func (x *BgpSrteSegment) Reset() { - *x = BgpSrteSegment{} +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnTypeRouterMac{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[93] + mi := &file_otg_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegment) String() string { +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegment) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoMessage() {} -func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[93] +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25477,142 +25665,171 @@ func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegment.ProtoReflect.Descriptor instead. -func (*BgpSrteSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{93} +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnTypeRouterMac.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{95} } -func (x *BgpSrteSegment) GetSegmentType() BgpSrteSegment_SegmentType_Enum { - if x != nil { - return x.SegmentType +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) GetRouterMac() string { + if x != nil && x.RouterMac != nil { + return *x.RouterMac } - return BgpSrteSegment_SegmentType_unspecified + return "" } -func (x *BgpSrteSegment) GetTypeA() *BgpSrteSegmentATypeSubTlv { - if x != nil { - return x.TypeA - } - return nil +// The Transitive EVPN Extended Community is sent as type 0x06 . +type BgpExtendedCommunityTransitiveEvpnType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.router_mac_subtype + Choice *BgpExtendedCommunityTransitiveEvpnType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouterMacSubtype *BgpExtendedCommunityTransitiveEvpnTypeRouterMac `protobuf:"bytes,2,opt,name=router_mac_subtype,json=routerMacSubtype,proto3,oneof" json:"router_mac_subtype,omitempty"` } -func (x *BgpSrteSegment) GetTypeB() *BgpSrteSegmentBTypeSubTlv { - if x != nil { - return x.TypeB +func (x *BgpExtendedCommunityTransitiveEvpnType) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnType{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteSegment) GetTypeC() *BgpSrteSegmentCTypeSubTlv { - if x != nil { - return x.TypeC - } - return nil +func (x *BgpExtendedCommunityTransitiveEvpnType) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteSegment) GetTypeD() *BgpSrteSegmentDTypeSubTlv { - if x != nil { - return x.TypeD +func (*BgpExtendedCommunityTransitiveEvpnType) ProtoMessage() {} + +func (x *BgpExtendedCommunityTransitiveEvpnType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteSegment) GetTypeE() *BgpSrteSegmentETypeSubTlv { - if x != nil { - return x.TypeE - } - return nil +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96} } -func (x *BgpSrteSegment) GetTypeF() *BgpSrteSegmentFTypeSubTlv { - if x != nil { - return x.TypeF +func (x *BgpExtendedCommunityTransitiveEvpnType) GetChoice() BgpExtendedCommunityTransitiveEvpnType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpExtendedCommunityTransitiveEvpnType_Choice_unspecified } -func (x *BgpSrteSegment) GetTypeG() *BgpSrteSegmentGTypeSubTlv { +func (x *BgpExtendedCommunityTransitiveEvpnType) GetRouterMacSubtype() *BgpExtendedCommunityTransitiveEvpnTypeRouterMac { if x != nil { - return x.TypeG + return x.RouterMacSubtype } return nil } -func (x *BgpSrteSegment) GetTypeH() *BgpSrteSegmentHTypeSubTlv { - if x != nil { - return x.TypeH - } - return nil +// The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. +// It is sent with sub-type as 0x04. +type BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value of the Global Administrator subfield should represent the Autonomous System + // of the router that attaches the Link Bandwidth Community. If four octet AS numbering + // scheme is used, AS_TRANS (23456) should be used. + // default = 100 + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and + // 1 Mbps is 1000 Kbps per second ) + // default = 0 + Bandwidth *float32 `protobuf:"fixed32,2,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` } -func (x *BgpSrteSegment) GetTypeI() *BgpSrteSegmentITypeSubTlv { - if x != nil { - return x.TypeI +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteSegment) GetTypeJ() *BgpSrteSegmentJTypeSubTlv { - if x != nil { - return x.TypeJ - } - return nil +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteSegment) GetTypeK() *BgpSrteSegmentKTypeSubTlv { - if x != nil { - return x.TypeK +func (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoMessage() {} + +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteSegment) GetName() string { - if x != nil { - return x.Name +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{97} +} + +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } - return "" + return 0 } -func (x *BgpSrteSegment) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetBandwidth() float32 { + if x != nil && x.Bandwidth != nil { + return *x.Bandwidth } - return false + return 0 } -// Configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. -type BgpSrteSrMplsSid struct { +// The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +type BgpExtendedCommunityNonTransitive2OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Label value in [0, 2^20 -1]. - Label *uint32 `protobuf:"varint,1,opt,name=label,proto3,oneof" json:"label,omitempty"` - // Traffic class in bits. - Tc *uint32 `protobuf:"varint,2,opt,name=tc,proto3,oneof" json:"tc,omitempty"` - // Bottom-of-Stack bit. - SBit *bool `protobuf:"varint,3,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` - // Time To Live. - Ttl *uint32 `protobuf:"varint,4,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // Description missing in models + // default = Choice.Enum.link_bandwidth_subtype + Choice *BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + LinkBandwidthSubtype *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth `protobuf:"bytes,2,opt,name=link_bandwidth_subtype,json=linkBandwidthSubtype,proto3,oneof" json:"link_bandwidth_subtype,omitempty"` } -func (x *BgpSrteSrMplsSid) Reset() { - *x = BgpSrteSrMplsSid{} +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[94] + mi := &file_otg_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSrMplsSid) String() string { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSrMplsSid) ProtoMessage() {} +func (*BgpExtendedCommunityNonTransitive2OctetAsType) ProtoMessage() {} -func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[94] +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25623,78 +25840,64 @@ func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSrMplsSid.ProtoReflect.Descriptor instead. -func (*BgpSrteSrMplsSid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{94} -} - -func (x *BgpSrteSrMplsSid) GetLabel() uint32 { - if x != nil && x.Label != nil { - return *x.Label - } - return 0 -} - -func (x *BgpSrteSrMplsSid) GetTc() uint32 { - if x != nil && x.Tc != nil { - return *x.Tc - } - return 0 +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{98} } -func (x *BgpSrteSrMplsSid) GetSBit() bool { - if x != nil && x.SBit != nil { - return *x.SBit +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) GetChoice() BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return BgpExtendedCommunityNonTransitive2OctetAsType_Choice_unspecified } -func (x *BgpSrteSrMplsSid) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) GetLinkBandwidthSubtype() *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + if x != nil { + return x.LinkBandwidthSubtype } - return 0 + return nil } -// Configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation -// of lengths for Locator Block, Locator Node, Function, and Argument MUST be less -// than or equal to 128. -type BgpSrteSRv6SIDEndpointBehaviorAndStructure struct { +// Add a custom Extended Community with a combination of types , sub-types and values +// not explicitly specified above or not defined yet. +type BgpExtendedCommunityCustomType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // SRv6 SID Locator Block length in bits. - // default = 0 - LbLength *uint32 `protobuf:"varint,1,opt,name=lb_length,json=lbLength,proto3,oneof" json:"lb_length,omitempty"` - // SRv6 SID Locator Node length in bits. - // default = 0 - LnLength *uint32 `protobuf:"varint,2,opt,name=ln_length,json=lnLength,proto3,oneof" json:"ln_length,omitempty"` - // SRv6 SID Function length in bits. - // default = 0 - FuncLength *uint32 `protobuf:"varint,3,opt,name=func_length,json=funcLength,proto3,oneof" json:"func_length,omitempty"` - // SRv6 SID Arguments length in bits. - // default = 0 - ArgLength *uint32 `protobuf:"varint,4,opt,name=arg_length,json=argLength,proto3,oneof" json:"arg_length,omitempty"` + // The type to be set in the Extended Community attribute. Accepts hexadecimal input + // upto ff . + // default = 00 + CommunityType *string `protobuf:"bytes,1,opt,name=community_type,json=communityType,proto3,oneof" json:"community_type,omitempty"` + // The sub-type to be set in the Extended Community attribute. For certain types with + // no sub-type this byte can also be used as part of an extended value field. Accepts + // hexadecimal input upto ff. + // default = 00 + CommunitySubtype *string `protobuf:"bytes,2,opt,name=community_subtype,json=communitySubtype,proto3,oneof" json:"community_subtype,omitempty"` + // 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts + // hexadecimal input upto ffffffffffff. + // default = 000000000000 + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) Reset() { - *x = BgpSrteSRv6SIDEndpointBehaviorAndStructure{} +func (x *BgpExtendedCommunityCustomType) Reset() { + *x = BgpExtendedCommunityCustomType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[95] + mi := &file_otg_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) String() string { +func (x *BgpExtendedCommunityCustomType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoMessage() {} +func (*BgpExtendedCommunityCustomType) ProtoMessage() {} -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[95] +func (x *BgpExtendedCommunityCustomType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25705,75 +25908,132 @@ func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSRv6SIDEndpointBehaviorAndStructure.ProtoReflect.Descriptor instead. -func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{95} +// Deprecated: Use BgpExtendedCommunityCustomType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityCustomType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{99} } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLbLength() uint32 { - if x != nil && x.LbLength != nil { - return *x.LbLength +func (x *BgpExtendedCommunityCustomType) GetCommunityType() string { + if x != nil && x.CommunityType != nil { + return *x.CommunityType } - return 0 + return "" } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLnLength() uint32 { - if x != nil && x.LnLength != nil { - return *x.LnLength +func (x *BgpExtendedCommunityCustomType) GetCommunitySubtype() string { + if x != nil && x.CommunitySubtype != nil { + return *x.CommunitySubtype } - return 0 -} - -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetFuncLength() uint32 { - if x != nil && x.FuncLength != nil { - return *x.FuncLength - } - return 0 + return "" } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetArgLength() uint32 { - if x != nil && x.ArgLength != nil { - return *x.ArgLength +func (x *BgpExtendedCommunityCustomType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } - return 0 + return "" } -// Type A: SID only, in the form of MPLS Label. -type BgpSrteSegmentATypeSubTlv struct { +// Emulated BGPv6 route range. +type BgpV6RouteRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Label value in [0, 2^20 -1]. - Label *uint32 `protobuf:"varint,2,opt,name=label,proto3,oneof" json:"label,omitempty"` - // Traffic class in bits. - Tc *uint32 `protobuf:"varint,3,opt,name=tc,proto3,oneof" json:"tc,omitempty"` - // Bottom-of-Stack bit. - SBit *bool `protobuf:"varint,4,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` - // Time To Live. - Ttl *uint32 `protobuf:"varint,5,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // A list of group of IPv6 route addresses. + Addresses []*V6RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the + // NextHop in the MP REACH NLRI can be one of the following: + // Local IP: Automatically fills the Nexthop with the Local IP of the BGP + // peer. + // If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + // Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpV6RouteRange_NextHopMode_Enum `protobuf:"varint,2,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpV6RouteRange_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + // default = NextHopAddressType.Enum.ipv6 + NextHopAddressType *BgpV6RouteRange_NextHopAddressType_Enum `protobuf:"varint,3,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpV6RouteRange_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type + // is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + // default = 0.0.0.0 + NextHopIpv4Address *string `protobuf:"bytes,4,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type + // is IPv6. + // default = ::0 + NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,10,opt,name=name,proto3" json:"name,omitempty"` + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. Note evpn type is defined mainly for use with evpn + // route updates and not for IPv4 and IPv6 route updates. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six bytes carry a unique set of data in a format + // defined by the type and sub-type field. Extended communities provide a larger range + // for grouping or categorizing communities. + ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,12,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` } -func (x *BgpSrteSegmentATypeSubTlv) Reset() { - *x = BgpSrteSegmentATypeSubTlv{} +func (x *BgpV6RouteRange) Reset() { + *x = BgpV6RouteRange{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[96] + mi := &file_otg_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentATypeSubTlv) String() string { +func (x *BgpV6RouteRange) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentATypeSubTlv) ProtoMessage() {} +func (*BgpV6RouteRange) ProtoMessage() {} -func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[96] +func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25784,151 +26044,200 @@ func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentATypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentATypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{96} +// Deprecated: Use BgpV6RouteRange.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100} } -func (x *BgpSrteSegmentATypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpV6RouteRange) GetAddresses() []*V6RouteAddress { + if x != nil { + return x.Addresses } - return "" + return nil } -func (x *BgpSrteSegmentATypeSubTlv) GetLabel() uint32 { - if x != nil && x.Label != nil { - return *x.Label +func (x *BgpV6RouteRange) GetNextHopMode() BgpV6RouteRange_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode } - return 0 + return BgpV6RouteRange_NextHopMode_unspecified } -func (x *BgpSrteSegmentATypeSubTlv) GetTc() uint32 { - if x != nil && x.Tc != nil { - return *x.Tc +func (x *BgpV6RouteRange) GetNextHopAddressType() BgpV6RouteRange_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType } - return 0 + return BgpV6RouteRange_NextHopAddressType_unspecified } -func (x *BgpSrteSegmentATypeSubTlv) GetSBit() bool { - if x != nil && x.SBit != nil { - return *x.SBit +func (x *BgpV6RouteRange) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address } - return false + return "" } -func (x *BgpSrteSegmentATypeSubTlv) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl +func (x *BgpV6RouteRange) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address } - return 0 -} - -// Type B: SID only, in the form of IPv6 address. -type BgpSrteSegmentBTypeSubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SRv6 SID. - // required = true - Srv6Sid string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + return "" } -func (x *BgpSrteSegmentBTypeSubTlv) Reset() { - *x = BgpSrteSegmentBTypeSubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[97] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6RouteRange) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced } + return nil } -func (x *BgpSrteSegmentBTypeSubTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV6RouteRange) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities + } + return nil } -func (*BgpSrteSegmentBTypeSubTlv) ProtoMessage() {} - -func (x *BgpSrteSegmentBTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[97] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6RouteRange) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpSrteSegmentBTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentBTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{97} +func (x *BgpV6RouteRange) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath + } + return nil } -func (x *BgpSrteSegmentBTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpV6RouteRange) GetName() string { + if x != nil { + return x.Name } return "" } -func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6Sid() string { +func (x *BgpV6RouteRange) GetExtCommunities() []*BgpExtCommunity { if x != nil { - return x.Srv6Sid + return x.ExtCommunities } - return "" + return nil } -func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { +func (x *BgpV6RouteRange) GetExtendedCommunities() []*BgpExtendedCommunity { if x != nil { - return x.Srv6SidEndpointBehavior + return x.ExtendedCommunities } return nil } -// Type C: IPv4 Node Address with optional SID. -type BgpSrteSegmentCTypeSubTlv struct { +// Configuration for BGP Segment Routing Traffic Engineering(SRTE) +// policy. +type BgpSrteV4Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv4 address representing a node. + // 4-octet value uniquely identifying the policy in the context of (color, endpoint) + // tuple. It is used by the SR Policy originator to make unique (from an NLRI perspective) + // both for multiple candidate paths of the same SR Policy as well as candidate paths + // of different SR Policies (i.e. with different segment list) with the same Color + // and Endpoint but meant for different head-ends. + // default = 1 + Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` + // Policy color is used to match the color of the destination prefixes to steer traffic + // into the SR Policy. + // default = 100 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected + // on the basis of the SR Policy type (AFI). // required = true - Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + Ipv4Endpoint string `protobuf:"bytes,3,opt,name=ipv4_endpoint,json=ipv4Endpoint,proto3" json:"ipv4_endpoint,omitempty"` + // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically + // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop + // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary + // IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpSrteV4Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV4Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. + // default = NextHopAddressType.Enum.ipv4 + NextHopAddressType *BgpSrteV4Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV4Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the next hop if the Nexthop type 'next_hop_mode' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, + // Nexthop Encoding capability extended_next_hop_encoding should be enabled. + NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv6. + NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // Optional Community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // List Tunnel Encapsulation Attributes. + TunnelTlvs []*BgpSrteV4TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpSrteSegmentCTypeSubTlv) Reset() { - *x = BgpSrteSegmentCTypeSubTlv{} +func (x *BgpSrteV4Policy) Reset() { + *x = BgpSrteV4Policy{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[98] + mi := &file_otg_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentCTypeSubTlv) String() string { +func (x *BgpSrteV4Policy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentCTypeSubTlv) ProtoMessage() {} +func (*BgpSrteV4Policy) ProtoMessage() {} -func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[98] +func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -25939,154 +26248,167 @@ func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentCTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentCTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{98} +// Deprecated: Use BgpSrteV4Policy.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101} } -func (x *BgpSrteSegmentCTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteV4Policy) GetDistinguisher() uint32 { + if x != nil && x.Distinguisher != nil { + return *x.Distinguisher } - return "" + return 0 } -func (x *BgpSrteSegmentCTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpSrteV4Policy) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } return 0 } -func (x *BgpSrteSegmentCTypeSubTlv) GetIpv4NodeAddress() string { +func (x *BgpSrteV4Policy) GetIpv4Endpoint() string { if x != nil { - return x.Ipv4NodeAddress + return x.Ipv4Endpoint } return "" } -func (x *BgpSrteSegmentCTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpSrteV4Policy) GetNextHopMode() BgpSrteV4Policy_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode } - return nil + return BgpSrteV4Policy_NextHopMode_unspecified } -// Type D: IPv6 Node Address with optional SID for SR MPLS. -type BgpSrteSegmentDTypeSubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpSrteV4Policy) GetNextHopAddressType() BgpSrteV4Policy_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType + } + return BgpSrteV4Policy_NextHopAddressType_unspecified +} - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // specifying SR Algorithm when when A-Flag as defined in above flags. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv6 address representing a node. - // required = true - Ipv6NodeAddress string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` +func (x *BgpSrteV4Policy) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address + } + return "" } -func (x *BgpSrteSegmentDTypeSubTlv) Reset() { - *x = BgpSrteSegmentDTypeSubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[99] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV4Policy) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address } + return "" } -func (x *BgpSrteSegmentDTypeSubTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpSrteV4Policy) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced + } + return nil } -func (*BgpSrteSegmentDTypeSubTlv) ProtoMessage() {} +func (x *BgpSrteV4Policy) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath + } + return nil +} -func (x *BgpSrteSegmentDTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[99] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV4Policy) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpSrteSegmentDTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentDTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{99} +func (x *BgpSrteV4Policy) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities + } + return nil } -func (x *BgpSrteSegmentDTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteV4Policy) GetExtCommunities() []*BgpExtCommunity { + if x != nil { + return x.ExtCommunities } - return "" + return nil } -func (x *BgpSrteSegmentDTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpSrteV4Policy) GetTunnelTlvs() []*BgpSrteV4TunnelTlv { + if x != nil { + return x.TunnelTlvs } - return 0 + return nil } -func (x *BgpSrteSegmentDTypeSubTlv) GetIpv6NodeAddress() string { +func (x *BgpSrteV4Policy) GetName() string { if x != nil { - return x.Ipv6NodeAddress + return x.Name } return "" } -func (x *BgpSrteSegmentDTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpSrteV4Policy) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active } - return nil + return false } -// Type E: IPv4 Address and Local Interface ID with optional SID -type BgpSrteSegmentETypeSubTlv struct { +// Configuration for BGP SRTE Tunnel TLV. +type BgpSrteV4TunnelTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv4 address representing a node. + // Description missing in models + RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` + // Description missing in models + ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` + // Description missing in models + BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` + // Description missing in models + PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` + // Description missing in models + PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` + // Description missing in models + PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + // Description missing in models + ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + // Description missing in models + SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. // required = true - Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpSrteSegmentETypeSubTlv) Reset() { - *x = BgpSrteSegmentETypeSubTlv{} +func (x *BgpSrteV4TunnelTlv) Reset() { + *x = BgpSrteV4TunnelTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[100] + mi := &file_otg_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentETypeSubTlv) String() string { +func (x *BgpSrteV4TunnelTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentETypeSubTlv) ProtoMessage() {} +func (*BgpSrteV4TunnelTlv) ProtoMessage() {} -func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[100] +func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26097,161 +26419,118 @@ func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentETypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentETypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{100} +// Deprecated: Use BgpSrteV4TunnelTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteV4TunnelTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{102} } -func (x *BgpSrteSegmentETypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteV4TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { + if x != nil { + return x.RemoteEndpointSubTlv } - return "" + return nil } -func (x *BgpSrteSegmentETypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId +func (x *BgpSrteV4TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { + if x != nil { + return x.ColorSubTlv } - return 0 + return nil } -func (x *BgpSrteSegmentETypeSubTlv) GetIpv4NodeAddress() string { +func (x *BgpSrteV4TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { if x != nil { - return x.Ipv4NodeAddress + return x.BindingSubTlv } - return "" + return nil } -func (x *BgpSrteSegmentETypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { +func (x *BgpSrteV4TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { if x != nil { - return x.SrMplsSid + return x.PreferenceSubTlv } return nil } -// Type F: IPv4 Local and Remote addresses with optional SID. -type BgpSrteSegmentFTypeSubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local IPv4 Address. - // required = true - LocalIpv4Address string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3" json:"local_ipv4_address,omitempty"` - // Remote IPv4 Address. - // required = true - RemoteIpv4Address string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3" json:"remote_ipv4_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` -} - -func (x *BgpSrteSegmentFTypeSubTlv) Reset() { - *x = BgpSrteSegmentFTypeSubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV4TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { + if x != nil { + return x.PolicyPrioritySubTlv } + return nil } -func (x *BgpSrteSegmentFTypeSubTlv) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpSrteSegmentFTypeSubTlv) ProtoMessage() {} - -func (x *BgpSrteSegmentFTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV4TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { + if x != nil { + return x.PolicyNameSubTlv } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpSrteSegmentFTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentFTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{101} + return nil } -func (x *BgpSrteSegmentFTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteV4TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { + if x != nil { + return x.ExplicitNullLabelPolicySubTlv } - return "" + return nil } -func (x *BgpSrteSegmentFTypeSubTlv) GetLocalIpv4Address() string { +func (x *BgpSrteV4TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { if x != nil { - return x.LocalIpv4Address + return x.SegmentLists } - return "" + return nil } -func (x *BgpSrteSegmentFTypeSubTlv) GetRemoteIpv4Address() string { +func (x *BgpSrteV4TunnelTlv) GetName() string { if x != nil { - return x.RemoteIpv4Address + return x.Name } return "" } -func (x *BgpSrteSegmentFTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpSrteV4TunnelTlv) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active } - return nil + return false } -// Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for -// SR MPLS. -type BgpSrteSegmentGTypeSubTlv struct { +// Configuration for the BGP remote endpoint sub TLV. +type BgpSrteRemoteEndpointSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6NodeAddress string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. + // Autonomous system (AS) number // default = 0 - RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6NodeAddress string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + AsNumber *uint32 `protobuf:"varint,1,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // Determines the address type + // default = AddressFamily.Enum.ipv4 + AddressFamily *BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum `protobuf:"varint,2,opt,name=address_family,json=addressFamily,proto3,enum=otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum,oneof" json:"address_family,omitempty"` + // The IPv4 address of the Remote Endpoint. + // default = 0.0.0.0 + Ipv4Address *string `protobuf:"bytes,3,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The IPv6 address of the Remote Endpoint. + // default = ::0 + Ipv6Address *string `protobuf:"bytes,4,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` } -func (x *BgpSrteSegmentGTypeSubTlv) Reset() { - *x = BgpSrteSegmentGTypeSubTlv{} +func (x *BgpSrteRemoteEndpointSubTlv) Reset() { + *x = BgpSrteRemoteEndpointSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[102] + mi := &file_otg_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentGTypeSubTlv) String() string { +func (x *BgpSrteRemoteEndpointSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentGTypeSubTlv) ProtoMessage() {} +func (*BgpSrteRemoteEndpointSubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[102] +func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26262,89 +26541,70 @@ func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentGTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentGTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{102} -} - -func (x *BgpSrteSegmentGTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" +// Deprecated: Use BgpSrteRemoteEndpointSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteRemoteEndpointSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{103} } -func (x *BgpSrteSegmentGTypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId +func (x *BgpSrteRemoteEndpointSubTlv) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } return 0 } -func (x *BgpSrteSegmentGTypeSubTlv) GetLocalIpv6NodeAddress() string { - if x != nil { - return x.LocalIpv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteInterfaceId() uint32 { - if x != nil && x.RemoteInterfaceId != nil { - return *x.RemoteInterfaceId +func (x *BgpSrteRemoteEndpointSubTlv) GetAddressFamily() BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum { + if x != nil && x.AddressFamily != nil { + return *x.AddressFamily } - return 0 + return BgpSrteRemoteEndpointSubTlv_AddressFamily_unspecified } -func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteIpv6NodeAddress() string { - if x != nil { - return x.RemoteIpv6NodeAddress +func (x *BgpSrteRemoteEndpointSubTlv) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } -func (x *BgpSrteSegmentGTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpSrteRemoteEndpointSubTlv) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address } - return nil + return "" } -// Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. -type BgpSrteSegmentHTypeSubTlv struct { +// Configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used +// as a way to color the corresponding Tunnel TLV. The Value field of the sub-TLV is +// eight octets long and consists of a Color Extended Community. First two octets of +// its Value field are 0x030b as type and subtype of extended community. Remaining +// six octets are are exposed to configure. +type BgpSrteColorSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local IPv6 Address. - // required = true - LocalIpv6Address string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` - // Remote IPv6 Address. - // required = true - RemoteIpv6Address string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` + // Six octet values. Example: 000000000064 for color value 100. + Color *string `protobuf:"bytes,1,opt,name=color,proto3,oneof" json:"color,omitempty"` } -func (x *BgpSrteSegmentHTypeSubTlv) Reset() { - *x = BgpSrteSegmentHTypeSubTlv{} +func (x *BgpSrteColorSubTlv) Reset() { + *x = BgpSrteColorSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[103] + mi := &file_otg_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentHTypeSubTlv) String() string { +func (x *BgpSrteColorSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentHTypeSubTlv) ProtoMessage() {} +func (*BgpSrteColorSubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[103] +func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26355,74 +26615,58 @@ func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentHTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentHTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{103} -} - -func (x *BgpSrteSegmentHTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentHTypeSubTlv) GetLocalIpv6Address() string { - if x != nil { - return x.LocalIpv6Address - } - return "" +// Deprecated: Use BgpSrteColorSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteColorSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{104} } -func (x *BgpSrteSegmentHTypeSubTlv) GetRemoteIpv6Address() string { - if x != nil { - return x.RemoteIpv6Address +func (x *BgpSrteColorSubTlv) GetColor() string { + if x != nil && x.Color != nil { + return *x.Color } return "" } -func (x *BgpSrteSegmentHTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid - } - return nil -} - -// Type I: IPv6 Node Address with optional SRv6 SID. -type BgpSrteSegmentITypeSubTlv struct { +// Configuration for the binding SID sub-TLV. This is used to signal the binding SID +// related information of the SR Policy candidate path. +type BgpSrteBindingSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // IPv6 address representing a node. - // required = true - Ipv6NodeAddress string `protobuf:"bytes,2,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,3,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,4,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + // Type of the binding SID. Supported types are No Binding SID or Four Octets Sid or + // IPv6 SID. + // default = BindingSidType.Enum.no_binding + BindingSidType *BgpSrteBindingSubTlv_BindingSidType_Enum `protobuf:"varint,1,opt,name=binding_sid_type,json=bindingSidType,proto3,enum=otg.BgpSrteBindingSubTlv_BindingSidType_Enum,oneof" json:"binding_sid_type,omitempty"` + // Binding SID is encoded in 4 octets. + FourOctetSid *uint32 `protobuf:"varint,2,opt,name=four_octet_sid,json=fourOctetSid,proto3,oneof" json:"four_octet_sid,omitempty"` + // IPv6 SID value. + Ipv6Sid *string `protobuf:"bytes,3,opt,name=ipv6_sid,json=ipv6Sid,proto3,oneof" json:"ipv6_sid,omitempty"` + // S-Flag encodes the Specified-BSID-only behavior. + // default = False + SFlag *bool `protobuf:"varint,4,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` + // I-Flag encodes the Drop Upon Invalid behavior. + // default = False + IFlag *bool `protobuf:"varint,5,opt,name=i_flag,json=iFlag,proto3,oneof" json:"i_flag,omitempty"` } -func (x *BgpSrteSegmentITypeSubTlv) Reset() { - *x = BgpSrteSegmentITypeSubTlv{} +func (x *BgpSrteBindingSubTlv) Reset() { + *x = BgpSrteBindingSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[104] + mi := &file_otg_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentITypeSubTlv) String() string { +func (x *BgpSrteBindingSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentITypeSubTlv) ProtoMessage() {} +func (*BgpSrteBindingSubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[104] +func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26433,87 +26677,74 @@ func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentITypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentITypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{104} +// Deprecated: Use BgpSrteBindingSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteBindingSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{105} } -func (x *BgpSrteSegmentITypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpSrteBindingSubTlv) GetBindingSidType() BgpSrteBindingSubTlv_BindingSidType_Enum { + if x != nil && x.BindingSidType != nil { + return *x.BindingSidType } - return "" + return BgpSrteBindingSubTlv_BindingSidType_unspecified } -func (x *BgpSrteSegmentITypeSubTlv) GetIpv6NodeAddress() string { - if x != nil { - return x.Ipv6NodeAddress +func (x *BgpSrteBindingSubTlv) GetFourOctetSid() uint32 { + if x != nil && x.FourOctetSid != nil { + return *x.FourOctetSid } - return "" + return 0 } -func (x *BgpSrteSegmentITypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid +func (x *BgpSrteBindingSubTlv) GetIpv6Sid() string { + if x != nil && x.Ipv6Sid != nil { + return *x.Ipv6Sid } return "" } -func (x *BgpSrteSegmentITypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6SidEndpointBehavior +func (x *BgpSrteBindingSubTlv) GetSFlag() bool { + if x != nil && x.SFlag != nil { + return *x.SFlag } - return nil + return false } -// Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional -// SID. -type BgpSrteSegmentJTypeSubTlv struct { +func (x *BgpSrteBindingSubTlv) GetIFlag() bool { + if x != nil && x.IFlag != nil { + return *x.IFlag + } + return false +} + +// Configuration for BGP preference sub TLV of the SR Policy candidate path. +type BgpSrtePreferenceSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6NodeAddress string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. + // The preference value of the SR Policy candidate path. // default = 0 - RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6NodeAddress string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + Preference *uint32 `protobuf:"varint,1,opt,name=preference,proto3,oneof" json:"preference,omitempty"` } -func (x *BgpSrteSegmentJTypeSubTlv) Reset() { - *x = BgpSrteSegmentJTypeSubTlv{} +func (x *BgpSrtePreferenceSubTlv) Reset() { + *x = BgpSrtePreferenceSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[105] + mi := &file_otg_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentJTypeSubTlv) String() string { +func (x *BgpSrtePreferenceSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentJTypeSubTlv) ProtoMessage() {} +func (*BgpSrtePreferenceSubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[105] +func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26524,108 +26755,46 @@ func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentJTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentJTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{105} -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm - } - return 0 -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId - } - return 0 -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetLocalIpv6NodeAddress() string { - if x != nil { - return x.LocalIpv6NodeAddress - } - return "" +// Deprecated: Use BgpSrtePreferenceSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePreferenceSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{106} } -func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteInterfaceId() uint32 { - if x != nil && x.RemoteInterfaceId != nil { - return *x.RemoteInterfaceId +func (x *BgpSrtePreferenceSubTlv) GetPreference() uint32 { + if x != nil && x.Preference != nil { + return *x.Preference } return 0 } -func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteIpv6NodeAddress() string { - if x != nil { - return x.RemoteIpv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6SidEndpointBehavior - } - return nil -} - -// Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. -type BgpSrteSegmentKTypeSubTlv struct { +// Configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the +// order in which the SR policies are re-computed upon topological change. +type BgpSrtePolicyPrioritySubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined - // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 - Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6Address string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6Address string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` + // One-octet Priority value. + PolicyPriority *uint32 `protobuf:"varint,1,opt,name=policy_priority,json=policyPriority,proto3,oneof" json:"policy_priority,omitempty"` } -func (x *BgpSrteSegmentKTypeSubTlv) Reset() { - *x = BgpSrteSegmentKTypeSubTlv{} +func (x *BgpSrtePolicyPrioritySubTlv) Reset() { + *x = BgpSrtePolicyPrioritySubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[106] + mi := &file_otg_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentKTypeSubTlv) String() string { +func (x *BgpSrtePolicyPrioritySubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentKTypeSubTlv) ProtoMessage() {} +func (*BgpSrtePolicyPrioritySubTlv) ProtoMessage() {} -func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[106] +func (x *BgpSrtePolicyPrioritySubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26636,156 +26805,47 @@ func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentKTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentKTypeSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{106} -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" +// Deprecated: Use BgpSrtePolicyPrioritySubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePolicyPrioritySubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{107} } -func (x *BgpSrteSegmentKTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpSrtePolicyPrioritySubTlv) GetPolicyPriority() uint32 { + if x != nil && x.PolicyPriority != nil { + return *x.PolicyPriority } return 0 } -func (x *BgpSrteSegmentKTypeSubTlv) GetLocalIpv6Address() string { - if x != nil { - return x.LocalIpv6Address - } - return "" -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetRemoteIpv6Address() string { - if x != nil { - return x.RemoteIpv6Address - } - return "" -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid - } - return "" -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6SidEndpointBehavior - } - return nil -} - -// Configuration for BGP Segment Routing Traffic Engineering policy. -type BgpSrteV6Policy struct { +// Configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach +// a symbolic name to the SR Policy candidate path. +type BgpSrtePolicyNameSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Identifies the policy in the context of (color and endpoint) tuple. It is used by - // the SR Policy originator to make unique multiple occurrences of the same SR Policy. - // default = 1 - Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` - // Identifies the policy. It is used to match the color of the destination prefixes - // to steer traffic into the SR Policy. - // default = 100 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` - // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected - // on the basis of the SR Policy type (AFI). - // required = true - Ipv6Endpoint string `protobuf:"bytes,3,opt,name=ipv6_endpoint,json=ipv6Endpoint,proto3" json:"ipv6_endpoint,omitempty"` - // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically - // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop - // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary - // IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpSrteV6Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV6Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. - // default = NextHopAddressType.Enum.ipv6 - NextHopAddressType *BgpSrteV6Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV6Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the Nexthop if the 'next_hop_mode' is 'manual' and the Nexthop - // type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, Nexthop Encoding - // capability extended_next_hop_encoding should be enabled. - // default = 0.0.0.0 - NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv6. - // default = ::0 - NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` - // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. - Extcommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=extcommunities,proto3" json:"extcommunities,omitempty"` - // List of optional tunnel TLV settings. - TunnelTlvs []*BgpSrteV6TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` - // If enabled means that this part of the configuration including any active 'children' - // nodes will be advertised to peer. If disabled, this means that though config is - // present, it is not taking any part of the test but can be activated at run-time to - // advertise just this part of the configuration to the peer. - // default = True - Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` + // Symbolic name for the policy that should be a string of printable ASCII characters, + // without a NULL terminator. + PolicyName *string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3,oneof" json:"policy_name,omitempty"` } -func (x *BgpSrteV6Policy) Reset() { - *x = BgpSrteV6Policy{} +func (x *BgpSrtePolicyNameSubTlv) Reset() { + *x = BgpSrtePolicyNameSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[107] + mi := &file_otg_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6Policy) String() string { +func (x *BgpSrtePolicyNameSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy) ProtoMessage() {} +func (*BgpSrtePolicyNameSubTlv) ProtoMessage() {} -func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[107] +func (x *BgpSrtePolicyNameSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26796,167 +26856,227 @@ func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107} +// Deprecated: Use BgpSrtePolicyNameSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePolicyNameSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{108} } -func (x *BgpSrteV6Policy) GetDistinguisher() uint32 { - if x != nil && x.Distinguisher != nil { - return *x.Distinguisher +func (x *BgpSrtePolicyNameSubTlv) GetPolicyName() string { + if x != nil && x.PolicyName != nil { + return *x.PolicyName } - return 0 + return "" } -func (x *BgpSrteV6Policy) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color - } - return 0 +// Configuration for BGP explicit null label policy sub TLV settings. +type BgpSrteExplicitNullLabelPolicySubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value of the explicit null label policy + // default = ExplicitNullLabelPolicy.Enum.do_not_push_enlp + ExplicitNullLabelPolicy *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum `protobuf:"varint,1,opt,name=explicit_null_label_policy,json=explicitNullLabelPolicy,proto3,enum=otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum,oneof" json:"explicit_null_label_policy,omitempty"` } -func (x *BgpSrteV6Policy) GetIpv6Endpoint() string { - if x != nil { - return x.Ipv6Endpoint +func (x *BgpSrteExplicitNullLabelPolicySubTlv) Reset() { + *x = BgpSrteExplicitNullLabelPolicySubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *BgpSrteV6Policy) GetNextHopMode() BgpSrteV6Policy_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode - } - return BgpSrteV6Policy_NextHopMode_unspecified +func (x *BgpSrteExplicitNullLabelPolicySubTlv) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV6Policy) GetNextHopAddressType() BgpSrteV6Policy_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType +func (*BgpSrteExplicitNullLabelPolicySubTlv) ProtoMessage() {} + +func (x *BgpSrteExplicitNullLabelPolicySubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return BgpSrteV6Policy_NextHopAddressType_unspecified + return mi.MessageOf(x) } -func (x *BgpSrteV6Policy) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address - } - return "" +// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteExplicitNullLabelPolicySubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{109} } -func (x *BgpSrteV6Policy) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address +func (x *BgpSrteExplicitNullLabelPolicySubTlv) GetExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum { + if x != nil && x.ExplicitNullLabelPolicy != nil { + return *x.ExplicitNullLabelPolicy } - return "" + return BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_unspecified } -func (x *BgpSrteV6Policy) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced - } - return nil +// Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV +// encodes a single explicit path towards the Endpoint. +type BgpSrteSegmentList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The Weight associated with a given path and the sub-TLV is optional. + // default = 0 + Weight *uint32 `protobuf:"varint,1,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + // Description missing in models + Segments []*BgpSrteSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,4,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpSrteV6Policy) GetAddPath() *BgpAddPath { - if x != nil { - return x.AddPath +func (x *BgpSrteSegmentList) Reset() { + *x = BgpSrteSegmentList{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteV6Policy) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath - } - return nil +func (x *BgpSrteSegmentList) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV6Policy) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +func (*BgpSrteSegmentList) ProtoMessage() {} + +func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteV6Policy) GetExtcommunities() []*BgpExtCommunity { - if x != nil { - return x.Extcommunities +// Deprecated: Use BgpSrteSegmentList.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentList) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{110} +} + +func (x *BgpSrteSegmentList) GetWeight() uint32 { + if x != nil && x.Weight != nil { + return *x.Weight } - return nil + return 0 } -func (x *BgpSrteV6Policy) GetTunnelTlvs() []*BgpSrteV6TunnelTlv { +func (x *BgpSrteSegmentList) GetSegments() []*BgpSrteSegment { if x != nil { - return x.TunnelTlvs + return x.Segments } return nil } -func (x *BgpSrteV6Policy) GetName() string { +func (x *BgpSrteSegmentList) GetName() string { if x != nil { return x.Name } return "" } -func (x *BgpSrteV6Policy) GetActive() bool { +func (x *BgpSrteSegmentList) GetActive() bool { if x != nil && x.Active != nil { return *x.Active } return false } -// Configuration for BGP SRTE Tunnel TLV. -type BgpSrteV6TunnelTlv struct { +// A Segment sub-TLV describes a single segment in a segment list i.e., a single element +// of the explicit path. The Segment sub-TLVs are optional. +type BgpSrteSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Specify one of the segment type. + // https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13 + // Type A: SID only, in the form of MPLS Label. + // Type B: SID only, in the form of IPv6 Address. + // Type C: IPv4 Node Address with optional SID. + // Type D: IPv6 Node Address with optional SID for SR MPLS. + // Type E: IPv4 Address and index with optional SID. + // Type F: IPv4 Local and Remote addresses with optional SID. + // Type G: IPv6 Address and index for local and remote pair with optional + // SID for SR MPLS. + // Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. + // Type I: IPv6 Node Address with optional SID for SRv6. + // Type J: IPv6 Address and index for local and remote pair with optional + // SID for SRv6. + // Type K: IPv6 Local and Remote addresses for SRv6. + // required = true + SegmentType BgpSrteSegment_SegmentType_Enum `protobuf:"varint,1,opt,name=segment_type,json=segmentType,proto3,enum=otg.BgpSrteSegment_SegmentType_Enum" json:"segment_type,omitempty"` // Description missing in models - RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` + TypeA *BgpSrteSegmentATypeSubTlv `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3,oneof" json:"type_a,omitempty"` // Description missing in models - ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` + TypeB *BgpSrteSegmentBTypeSubTlv `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3,oneof" json:"type_b,omitempty"` // Description missing in models - BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` + TypeC *BgpSrteSegmentCTypeSubTlv `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3,oneof" json:"type_c,omitempty"` // Description missing in models - PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` + TypeD *BgpSrteSegmentDTypeSubTlv `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3,oneof" json:"type_d,omitempty"` // Description missing in models - PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` + TypeE *BgpSrteSegmentETypeSubTlv `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3,oneof" json:"type_e,omitempty"` // Description missing in models - PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + TypeF *BgpSrteSegmentFTypeSubTlv `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3,oneof" json:"type_f,omitempty"` // Description missing in models - ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + TypeG *BgpSrteSegmentGTypeSubTlv `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3,oneof" json:"type_g,omitempty"` // Description missing in models - SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + TypeH *BgpSrteSegmentHTypeSubTlv `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3,oneof" json:"type_h,omitempty"` + // Description missing in models + TypeI *BgpSrteSegmentITypeSubTlv `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3,oneof" json:"type_i,omitempty"` + // Description missing in models + TypeJ *BgpSrteSegmentJTypeSubTlv `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3,oneof" json:"type_j,omitempty"` + // Description missing in models + TypeK *BgpSrteSegmentKTypeSubTlv `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3,oneof" json:"type_k,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"` // If enabled means that this part of the configuration including any active 'children' // nodes will be advertised to peer. If disabled, this means that though config is // present, it is not taking any part of the test but can be activated at run-time to // advertise just this part of the configuration to the peer. // default = True - Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` + Active *bool `protobuf:"varint,14,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpSrteV6TunnelTlv) Reset() { - *x = BgpSrteV6TunnelTlv{} +func (x *BgpSrteSegment) Reset() { + *x = BgpSrteSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[108] + mi := &file_otg_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6TunnelTlv) String() string { +func (x *BgpSrteSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6TunnelTlv) ProtoMessage() {} +func (*BgpSrteSegment) ProtoMessage() {} -func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[108] +func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26967,130 +27087,142 @@ func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6TunnelTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteV6TunnelTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{108} +// Deprecated: Use BgpSrteSegment.ProtoReflect.Descriptor instead. +func (*BgpSrteSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{111} } -func (x *BgpSrteV6TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { +func (x *BgpSrteSegment) GetSegmentType() BgpSrteSegment_SegmentType_Enum { if x != nil { - return x.RemoteEndpointSubTlv + return x.SegmentType + } + return BgpSrteSegment_SegmentType_unspecified +} + +func (x *BgpSrteSegment) GetTypeA() *BgpSrteSegmentATypeSubTlv { + if x != nil { + return x.TypeA } return nil } -func (x *BgpSrteV6TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { +func (x *BgpSrteSegment) GetTypeB() *BgpSrteSegmentBTypeSubTlv { if x != nil { - return x.ColorSubTlv + return x.TypeB } return nil } -func (x *BgpSrteV6TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { +func (x *BgpSrteSegment) GetTypeC() *BgpSrteSegmentCTypeSubTlv { if x != nil { - return x.BindingSubTlv + return x.TypeC } return nil } -func (x *BgpSrteV6TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { +func (x *BgpSrteSegment) GetTypeD() *BgpSrteSegmentDTypeSubTlv { if x != nil { - return x.PreferenceSubTlv + return x.TypeD } return nil } -func (x *BgpSrteV6TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { +func (x *BgpSrteSegment) GetTypeE() *BgpSrteSegmentETypeSubTlv { if x != nil { - return x.PolicyPrioritySubTlv + return x.TypeE } return nil } -func (x *BgpSrteV6TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { +func (x *BgpSrteSegment) GetTypeF() *BgpSrteSegmentFTypeSubTlv { if x != nil { - return x.PolicyNameSubTlv + return x.TypeF } return nil } -func (x *BgpSrteV6TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { +func (x *BgpSrteSegment) GetTypeG() *BgpSrteSegmentGTypeSubTlv { if x != nil { - return x.ExplicitNullLabelPolicySubTlv + return x.TypeG } return nil } -func (x *BgpSrteV6TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { +func (x *BgpSrteSegment) GetTypeH() *BgpSrteSegmentHTypeSubTlv { if x != nil { - return x.SegmentLists + return x.TypeH } return nil } -func (x *BgpSrteV6TunnelTlv) GetName() string { +func (x *BgpSrteSegment) GetTypeI() *BgpSrteSegmentITypeSubTlv { + if x != nil { + return x.TypeI + } + return nil +} + +func (x *BgpSrteSegment) GetTypeJ() *BgpSrteSegmentJTypeSubTlv { + if x != nil { + return x.TypeJ + } + return nil +} + +func (x *BgpSrteSegment) GetTypeK() *BgpSrteSegmentKTypeSubTlv { + if x != nil { + return x.TypeK + } + return nil +} + +func (x *BgpSrteSegment) GetName() string { if x != nil { return x.Name } return "" } -func (x *BgpSrteV6TunnelTlv) GetActive() bool { +func (x *BgpSrteSegment) GetActive() bool { if x != nil && x.Active != nil { return *x.Active } return false } -// The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by -// a BGP speaker to indicate its ability to preserve its forwarding state during BGP -// restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent -// between BGP peers. After a BGP session has been established, and the initial routing -// update has been completed, an End-of-RIB (Routing Information Base) marker is sent -// in an UPDATE message to convey information about routing convergence. -type BgpGracefulRestart struct { +// Configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. +type BgpSrteSrMplsSid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If enabled, Graceful Restart capability is advertised in BGP OPEN messages. - // default = False - EnableGr *bool `protobuf:"varint,1,opt,name=enable_gr,json=enableGr,proto3,oneof" json:"enable_gr,omitempty"` - // This is the estimated duration (in seconds) it will take for the BGP session to be - // re-established after a restart. This can be used to speed up routing convergence - // by its peer in case the BGP speaker does not come back after a restart. - // default = 45 - RestartTime *uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime,proto3,oneof" json:"restart_time,omitempty"` - // If enabled, the Long-lived Graceful Restart Capability, or LLGR Capability - // will be advertised. - // This capability MUST be advertised in conjunction with the Graceful Restart - // capability. - // default = False - EnableLlgr *bool `protobuf:"varint,3,opt,name=enable_llgr,json=enableLlgr,proto3,oneof" json:"enable_llgr,omitempty"` - // Duration (in seconds) specifying how long stale information (for the AFI/SAFI) - // may be retained. This is a three byte field and is applicable - // only if 'enable_llgr' is set to 'true'. - // default = 10 - StaleTime *uint32 `protobuf:"varint,4,opt,name=stale_time,json=staleTime,proto3,oneof" json:"stale_time,omitempty"` + // Label value in [0, 2^20 -1]. + Label *uint32 `protobuf:"varint,1,opt,name=label,proto3,oneof" json:"label,omitempty"` + // Traffic class in bits. + Tc *uint32 `protobuf:"varint,2,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + // Bottom-of-Stack bit. + SBit *bool `protobuf:"varint,3,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` + // Time To Live. + Ttl *uint32 `protobuf:"varint,4,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` } -func (x *BgpGracefulRestart) Reset() { - *x = BgpGracefulRestart{} +func (x *BgpSrteSrMplsSid) Reset() { + *x = BgpSrteSrMplsSid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[109] + mi := &file_otg_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpGracefulRestart) String() string { +func (x *BgpSrteSrMplsSid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpGracefulRestart) ProtoMessage() {} +func (*BgpSrteSrMplsSid) ProtoMessage() {} -func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[109] +func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27101,130 +27233,78 @@ func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpGracefulRestart.ProtoReflect.Descriptor instead. -func (*BgpGracefulRestart) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{109} +// Deprecated: Use BgpSrteSrMplsSid.ProtoReflect.Descriptor instead. +func (*BgpSrteSrMplsSid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{112} } -func (x *BgpGracefulRestart) GetEnableGr() bool { - if x != nil && x.EnableGr != nil { - return *x.EnableGr +func (x *BgpSrteSrMplsSid) GetLabel() uint32 { + if x != nil && x.Label != nil { + return *x.Label } - return false + return 0 } -func (x *BgpGracefulRestart) GetRestartTime() uint32 { - if x != nil && x.RestartTime != nil { - return *x.RestartTime +func (x *BgpSrteSrMplsSid) GetTc() uint32 { + if x != nil && x.Tc != nil { + return *x.Tc } return 0 } -func (x *BgpGracefulRestart) GetEnableLlgr() bool { - if x != nil && x.EnableLlgr != nil { - return *x.EnableLlgr +func (x *BgpSrteSrMplsSid) GetSBit() bool { + if x != nil && x.SBit != nil { + return *x.SBit } return false } -func (x *BgpGracefulRestart) GetStaleTime() uint32 { - if x != nil && x.StaleTime != nil { - return *x.StaleTime +func (x *BgpSrteSrMplsSid) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } -// Configuration for BGPv6 peer settings and routes. -type BgpV6Peer struct { +// Configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation +// of lengths for Locator Block, Locator Node, Function, and Argument MUST be less +// than or equal to 128. +type BgpSrteSRv6SIDEndpointBehaviorAndStructure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv6 address of the BGP peer for the session - // required = true - PeerAddress string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3" json:"peer_address,omitempty"` - // Description missing in models - SegmentRouting *BgpV6SegmentRouting `protobuf:"bytes,2,opt,name=segment_routing,json=segmentRouting,proto3,oneof" json:"segment_routing,omitempty"` - // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments - // (ES) Per BGP Peer for IPv6 Address Family Identifier (AFI). - // - // Each Ethernet Segment contains a list of EVPN Instances (EVIs) . - // Each EVI contains a list of Broadcast Domains. - // Each Broadcast Domain contains a list of MAC/IP Ranges. - // - // is responsible for advertising Ethernet - // Auto-discovery Route Per EVI (Type 1). - // - // is responsible for advertising Ethernet Auto-discovery Route - // Per Ethernet Segment (Type 1). - // - // is responsible for advertising - // MAC/IP Advertisement Route (Type 2). - // - // is responsible for advertising Inclusive - // Multicast Ethernet Tag Route (Type 3). - // - // Ethernet Segment is responsible for advertising Ethernet Segment Route (Type 4). - EvpnEthernetSegments []*BgpV6EthernetSegment `protobuf:"bytes,3,rep,name=evpn_ethernet_segments,json=evpnEthernetSegments,proto3" json:"evpn_ethernet_segments,omitempty"` - // The type of BGP autonomous system. External BGP is used for BGP links between two - // or more autonomous systems (ebgp). Internal BGP is used within a single autonomous - // system (ibgp). BGP property defaults are aligned with this object defined as an internal - // BGP peer. If the as_type is specified as 'ebgp' then other properties will need to - // be specified as per an external BGP peer. Specifically, for 'ebgp', 'as_set_mode' - // attribute in 'as_path' field in any Route Range should be changed from default value - // 'do_not_include_local_as' to any other value. - // required = true - AsType BgpV6Peer_AsType_Enum `protobuf:"varint,4,opt,name=as_type,json=asType,proto3,enum=otg.BgpV6Peer_AsType_Enum" json:"as_type,omitempty"` - // Autonomous System Number (AS number or ASN) - // required = true - AsNumber uint32 `protobuf:"varint,5,opt,name=as_number,json=asNumber,proto3" json:"as_number,omitempty"` - // The width in bytes of the as_number values. Any as_number values that exceeds the - // width MUST result in an error. - // default = AsNumberWidth.Enum.four - AsNumberWidth *BgpV6Peer_AsNumberWidth_Enum `protobuf:"varint,6,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV6Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` - // Description missing in models - Advanced *BgpAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Description missing in models - Capability *BgpCapability `protobuf:"bytes,8,opt,name=capability,proto3,oneof" json:"capability,omitempty"` - // Description missing in models - LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,9,opt,name=learned_information_filter,json=learnedInformationFilter,proto3,oneof" json:"learned_information_filter,omitempty"` - // Emulated BGPv4 route ranges. - V4Routes []*BgpV4RouteRange `protobuf:"bytes,10,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` - // Emulated BGPv6 route ranges. - V6Routes []*BgpV6RouteRange `protobuf:"bytes,11,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` - // Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier - // (AFI). - V4SrtePolicies []*BgpSrteV4Policy `protobuf:"bytes,12,rep,name=v4_srte_policies,json=v4SrtePolicies,proto3" json:"v4_srte_policies,omitempty"` - // Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier - // (AFI). - V6SrtePolicies []*BgpSrteV6Policy `protobuf:"bytes,13,rep,name=v6_srte_policies,json=v6SrtePolicies,proto3" json:"v6_srte_policies,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` - // Description missing in models - GracefulRestart *BgpGracefulRestart `protobuf:"bytes,15,opt,name=graceful_restart,json=gracefulRestart,proto3,oneof" json:"graceful_restart,omitempty"` + // SRv6 SID Locator Block length in bits. + // default = 0 + LbLength *uint32 `protobuf:"varint,1,opt,name=lb_length,json=lbLength,proto3,oneof" json:"lb_length,omitempty"` + // SRv6 SID Locator Node length in bits. + // default = 0 + LnLength *uint32 `protobuf:"varint,2,opt,name=ln_length,json=lnLength,proto3,oneof" json:"ln_length,omitempty"` + // SRv6 SID Function length in bits. + // default = 0 + FuncLength *uint32 `protobuf:"varint,3,opt,name=func_length,json=funcLength,proto3,oneof" json:"func_length,omitempty"` + // SRv6 SID Arguments length in bits. + // default = 0 + ArgLength *uint32 `protobuf:"varint,4,opt,name=arg_length,json=argLength,proto3,oneof" json:"arg_length,omitempty"` } -func (x *BgpV6Peer) Reset() { - *x = BgpV6Peer{} +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) Reset() { + *x = BgpSrteSRv6SIDEndpointBehaviorAndStructure{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[110] + mi := &file_otg_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Peer) String() string { +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer) ProtoMessage() {} +func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoMessage() {} -func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[110] +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27235,156 +27315,158 @@ func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer.ProtoReflect.Descriptor instead. -func (*BgpV6Peer) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110} -} - -func (x *BgpV6Peer) GetPeerAddress() string { - if x != nil { - return x.PeerAddress - } - return "" +// Deprecated: Use BgpSrteSRv6SIDEndpointBehaviorAndStructure.ProtoReflect.Descriptor instead. +func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{113} } -func (x *BgpV6Peer) GetSegmentRouting() *BgpV6SegmentRouting { - if x != nil { - return x.SegmentRouting +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLbLength() uint32 { + if x != nil && x.LbLength != nil { + return *x.LbLength } - return nil + return 0 } -func (x *BgpV6Peer) GetEvpnEthernetSegments() []*BgpV6EthernetSegment { - if x != nil { - return x.EvpnEthernetSegments +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLnLength() uint32 { + if x != nil && x.LnLength != nil { + return *x.LnLength } - return nil + return 0 } -func (x *BgpV6Peer) GetAsType() BgpV6Peer_AsType_Enum { - if x != nil { - return x.AsType +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetFuncLength() uint32 { + if x != nil && x.FuncLength != nil { + return *x.FuncLength } - return BgpV6Peer_AsType_unspecified + return 0 } -func (x *BgpV6Peer) GetAsNumber() uint32 { - if x != nil { - return x.AsNumber +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetArgLength() uint32 { + if x != nil && x.ArgLength != nil { + return *x.ArgLength } return 0 } -func (x *BgpV6Peer) GetAsNumberWidth() BgpV6Peer_AsNumberWidth_Enum { - if x != nil && x.AsNumberWidth != nil { - return *x.AsNumberWidth - } - return BgpV6Peer_AsNumberWidth_unspecified +// Type A: SID only, in the form of MPLS Label. +type BgpSrteSegmentATypeSubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Label value in [0, 2^20 -1]. + Label *uint32 `protobuf:"varint,2,opt,name=label,proto3,oneof" json:"label,omitempty"` + // Traffic class in bits. + Tc *uint32 `protobuf:"varint,3,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + // Bottom-of-Stack bit. + SBit *bool `protobuf:"varint,4,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` + // Time To Live. + Ttl *uint32 `protobuf:"varint,5,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` } -func (x *BgpV6Peer) GetAdvanced() *BgpAdvanced { - if x != nil { - return x.Advanced +func (x *BgpSrteSegmentATypeSubTlv) Reset() { + *x = BgpSrteSegmentATypeSubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpV6Peer) GetCapability() *BgpCapability { - if x != nil { - return x.Capability - } - return nil +func (x *BgpSrteSegmentATypeSubTlv) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpV6Peer) GetLearnedInformationFilter() *BgpLearnedInformationFilter { - if x != nil { - return x.LearnedInformationFilter +func (*BgpSrteSegmentATypeSubTlv) ProtoMessage() {} + +func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[114] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpV6Peer) GetV4Routes() []*BgpV4RouteRange { - if x != nil { - return x.V4Routes - } - return nil +// Deprecated: Use BgpSrteSegmentATypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentATypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{114} } -func (x *BgpV6Peer) GetV6Routes() []*BgpV6RouteRange { - if x != nil { - return x.V6Routes +func (x *BgpSrteSegmentATypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6Peer) GetV4SrtePolicies() []*BgpSrteV4Policy { - if x != nil { - return x.V4SrtePolicies +func (x *BgpSrteSegmentATypeSubTlv) GetLabel() uint32 { + if x != nil && x.Label != nil { + return *x.Label } - return nil + return 0 } -func (x *BgpV6Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { - if x != nil { - return x.V6SrtePolicies +func (x *BgpSrteSegmentATypeSubTlv) GetTc() uint32 { + if x != nil && x.Tc != nil { + return *x.Tc } - return nil + return 0 } -func (x *BgpV6Peer) GetName() string { - if x != nil { - return x.Name +func (x *BgpSrteSegmentATypeSubTlv) GetSBit() bool { + if x != nil && x.SBit != nil { + return *x.SBit } - return "" + return false } -func (x *BgpV6Peer) GetGracefulRestart() *BgpGracefulRestart { - if x != nil { - return x.GracefulRestart +func (x *BgpSrteSegmentATypeSubTlv) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } - return nil + return 0 } -// Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. -type BgpV6Interface struct { +// Type B: SID only, in the form of IPv6 address. +type BgpSrteSegmentBTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of IPv6 or Loopback IPv6 interface used as the source IP for this - // list of BGP peers. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SRv6 SID. // required = true - Ipv6Name string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3" json:"ipv6_name,omitempty"` - // This contains the list of BGPv6 peers configured on this interface. - Peers []*BgpV6Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` + Srv6Sid string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *BgpV6Interface) Reset() { - *x = BgpV6Interface{} +func (x *BgpSrteSegmentBTypeSubTlv) Reset() { + *x = BgpSrteSegmentBTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[111] + mi := &file_otg_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Interface) String() string { +func (x *BgpSrteSegmentBTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Interface) ProtoMessage() {} +func (*BgpSrteSegmentBTypeSubTlv) ProtoMessage() {} -func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[111] +func (x *BgpSrteSegmentBTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27395,74 +27477,68 @@ func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Interface.ProtoReflect.Descriptor instead. -func (*BgpV6Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{111} +// Deprecated: Use BgpSrteSegmentBTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentBTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{115} } -func (x *BgpV6Interface) GetIpv6Name() string { +func (x *BgpSrteSegmentBTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6Sid() string { if x != nil { - return x.Ipv6Name + return x.Srv6Sid } return "" } -func (x *BgpV6Interface) GetPeers() []*BgpV6Peer { +func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { if x != nil { - return x.Peers + return x.Srv6SidEndpointBehavior } return nil } -// Configuration for BGPv6 segment routing settings. -type BgpV6SegmentRouting struct { +// Type C: IPv4 Node Address with optional SID. +type BgpSrteSegmentCTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // TBD - // default = False - IngressSupportsVpn *bool `protobuf:"varint,1,opt,name=ingress_supports_vpn,json=ingressSupportsVpn,proto3,oneof" json:"ingress_supports_vpn,omitempty"` - // TBD - // default = False - ReducedEncapsulation *bool `protobuf:"varint,2,opt,name=reduced_encapsulation,json=reducedEncapsulation,proto3,oneof" json:"reduced_encapsulation,omitempty"` - // TBD - // default = False - CopyTimeToLive *bool `protobuf:"varint,3,opt,name=copy_time_to_live,json=copyTimeToLive,proto3,oneof" json:"copy_time_to_live,omitempty"` - // TBD - // default = 0 - TimeToLive *uint32 `protobuf:"varint,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` - // TBD - // default = 0 - MaxSidsPerSrh *uint32 `protobuf:"varint,5,opt,name=max_sids_per_srh,json=maxSidsPerSrh,proto3,oneof" json:"max_sids_per_srh,omitempty"` - // TBD - // default = False - AutoGenerateSegmentLeftValue *bool `protobuf:"varint,6,opt,name=auto_generate_segment_left_value,json=autoGenerateSegmentLeftValue,proto3,oneof" json:"auto_generate_segment_left_value,omitempty"` - // TBD + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. // default = 0 - SegmentLeftValue *uint32 `protobuf:"varint,7,opt,name=segment_left_value,json=segmentLeftValue,proto3,oneof" json:"segment_left_value,omitempty"` - // TBD - // default = False - AdvertiseSrTePolicy *bool `protobuf:"varint,8,opt,name=advertise_sr_te_policy,json=advertiseSrTePolicy,proto3,oneof" json:"advertise_sr_te_policy,omitempty"` + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv4 address representing a node. + // required = true + Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6SegmentRouting) Reset() { - *x = BgpV6SegmentRouting{} +func (x *BgpSrteSegmentCTypeSubTlv) Reset() { + *x = BgpSrteSegmentCTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[112] + mi := &file_otg_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6SegmentRouting) String() string { +func (x *BgpSrteSegmentCTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6SegmentRouting) ProtoMessage() {} +func (*BgpSrteSegmentCTypeSubTlv) ProtoMessage() {} -func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[112] +func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27473,143 +27549,75 @@ func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6SegmentRouting.ProtoReflect.Descriptor instead. -func (*BgpV6SegmentRouting) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{112} -} - -func (x *BgpV6SegmentRouting) GetIngressSupportsVpn() bool { - if x != nil && x.IngressSupportsVpn != nil { - return *x.IngressSupportsVpn - } - return false -} - -func (x *BgpV6SegmentRouting) GetReducedEncapsulation() bool { - if x != nil && x.ReducedEncapsulation != nil { - return *x.ReducedEncapsulation - } - return false -} - -func (x *BgpV6SegmentRouting) GetCopyTimeToLive() bool { - if x != nil && x.CopyTimeToLive != nil { - return *x.CopyTimeToLive - } - return false +// Deprecated: Use BgpSrteSegmentCTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentCTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{116} } -func (x *BgpV6SegmentRouting) GetTimeToLive() uint32 { - if x != nil && x.TimeToLive != nil { - return *x.TimeToLive +func (x *BgpSrteSegmentCTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return 0 + return "" } -func (x *BgpV6SegmentRouting) GetMaxSidsPerSrh() uint32 { - if x != nil && x.MaxSidsPerSrh != nil { - return *x.MaxSidsPerSrh +func (x *BgpSrteSegmentCTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } return 0 } -func (x *BgpV6SegmentRouting) GetAutoGenerateSegmentLeftValue() bool { - if x != nil && x.AutoGenerateSegmentLeftValue != nil { - return *x.AutoGenerateSegmentLeftValue - } - return false -} - -func (x *BgpV6SegmentRouting) GetSegmentLeftValue() uint32 { - if x != nil && x.SegmentLeftValue != nil { - return *x.SegmentLeftValue +func (x *BgpSrteSegmentCTypeSubTlv) GetIpv4NodeAddress() string { + if x != nil { + return x.Ipv4NodeAddress } - return 0 + return "" } -func (x *BgpV6SegmentRouting) GetAdvertiseSrTePolicy() bool { - if x != nil && x.AdvertiseSrTePolicy != nil { - return *x.AdvertiseSrTePolicy +func (x *BgpSrteSegmentCTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid } - return false + return nil } -// Configuration for BGP Ethernet Segment ranges. Advertises following routes - -// -// Type 4 - Ethernet Segment Route -type BgpV6EthernetSegment struct { +// Type D: IPv6 Node Address with optional SID for SR MPLS. +type BgpSrteSegmentDTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Designated Forwarder (DF) election configuration. - DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3,oneof" json:"df_election,omitempty"` - // This contains the list of EVIs. - Evis []*BgpV6EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` - // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero - // ESI is '10000000000000000000' . - // default = 00000000000000000000 - Esi *string `protobuf:"bytes,3,opt,name=esi,proto3,oneof" json:"esi,omitempty"` - // Single Active or All Active mode Redundancy mode selection for Multi-home. - // default = ActiveMode.Enum.all_active - ActiveMode *BgpV6EthernetSegment_ActiveMode_Enum `protobuf:"varint,4,opt,name=active_mode,json=activeMode,proto3,enum=otg.BgpV6EthernetSegment_ActiveMode_Enum,oneof" json:"active_mode,omitempty"` - // The label value to be advertised as ESI Label in ESI Label Extended Community. This - // is included in Ethernet Auto-discovery per ES Routes advertised by a router. + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // specifying SR Algorithm when when A-Flag as defined in above flags. // default = 0 - EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv6 address representing a node. + // required = true + Ipv6NodeAddress string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6EthernetSegment) Reset() { - *x = BgpV6EthernetSegment{} +func (x *BgpSrteSegmentDTypeSubTlv) Reset() { + *x = BgpSrteSegmentDTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[113] + mi := &file_otg_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EthernetSegment) String() string { +func (x *BgpSrteSegmentDTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EthernetSegment) ProtoMessage() {} +func (*BgpSrteSegmentDTypeSubTlv) ProtoMessage() {} -func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[113] +func (x *BgpSrteSegmentDTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27620,107 +27628,154 @@ func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EthernetSegment.ProtoReflect.Descriptor instead. -func (*BgpV6EthernetSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113} +// Deprecated: Use BgpSrteSegmentDTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentDTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{117} } -func (x *BgpV6EthernetSegment) GetDfElection() *BgpEthernetSegmentDfElection { - if x != nil { - return x.DfElection +func (x *BgpSrteSegmentDTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6EthernetSegment) GetEvis() []*BgpV6EvpnEvis { - if x != nil { - return x.Evis +func (x *BgpSrteSegmentDTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } - return nil + return 0 } -func (x *BgpV6EthernetSegment) GetEsi() string { - if x != nil && x.Esi != nil { - return *x.Esi +func (x *BgpSrteSegmentDTypeSubTlv) GetIpv6NodeAddress() string { + if x != nil { + return x.Ipv6NodeAddress } return "" } -func (x *BgpV6EthernetSegment) GetActiveMode() BgpV6EthernetSegment_ActiveMode_Enum { - if x != nil && x.ActiveMode != nil { - return *x.ActiveMode +func (x *BgpSrteSegmentDTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid } - return BgpV6EthernetSegment_ActiveMode_unspecified + return nil } -func (x *BgpV6EthernetSegment) GetEsiLabel() uint32 { - if x != nil && x.EsiLabel != nil { - return *x.EsiLabel +// Type E: IPv4 Address and Local Interface ID with optional SID +type BgpSrteSegmentETypeSubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv4 address representing a node. + // required = true + Ipv4NodeAddress string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3" json:"ipv4_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` +} + +func (x *BgpSrteSegmentETypeSubTlv) Reset() { + *x = BgpSrteSegmentETypeSubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *BgpV6EthernetSegment) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +func (x *BgpSrteSegmentETypeSubTlv) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpSrteSegmentETypeSubTlv) ProtoMessage() {} + +func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[118] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpV6EthernetSegment) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +// Deprecated: Use BgpSrteSegmentETypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentETypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{118} +} + +func (x *BgpSrteSegmentETypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6EthernetSegment) GetExtCommunities() []*BgpExtCommunity { +func (x *BgpSrteSegmentETypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId + } + return 0 +} + +func (x *BgpSrteSegmentETypeSubTlv) GetIpv4NodeAddress() string { if x != nil { - return x.ExtCommunities + return x.Ipv4NodeAddress } - return nil + return "" } -func (x *BgpV6EthernetSegment) GetAsPath() *BgpAsPath { +func (x *BgpSrteSegmentETypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.AsPath + return x.SrMplsSid } return nil } -// This contains a list of different flavors of EVPN. -// For example EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment. -// -// Need to instantiate correct type of EVPN instance as per requirement. -type BgpV6EvpnEvis struct { +// Type F: IPv4 Local and Remote addresses with optional SID. +type BgpSrteSegmentFTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.evi_vxlan - Choice *BgpV6EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV6EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` - // EVPN VXLAN instance to be configured per Ethernet Segment. - EviVxlan *BgpV6EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3,oneof" json:"evi_vxlan,omitempty"` + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local IPv4 Address. + // required = true + LocalIpv4Address string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3" json:"local_ipv4_address,omitempty"` + // Remote IPv4 Address. + // required = true + RemoteIpv4Address string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3" json:"remote_ipv4_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6EvpnEvis) Reset() { - *x = BgpV6EvpnEvis{} +func (x *BgpSrteSegmentFTypeSubTlv) Reset() { + *x = BgpSrteSegmentFTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[114] + mi := &file_otg_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EvpnEvis) String() string { +func (x *BgpSrteSegmentFTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EvpnEvis) ProtoMessage() {} +func (*BgpSrteSegmentFTypeSubTlv) ProtoMessage() {} -func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[114] +func (x *BgpSrteSegmentFTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27731,115 +27786,82 @@ func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EvpnEvis.ProtoReflect.Descriptor instead. -func (*BgpV6EvpnEvis) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{114} +// Deprecated: Use BgpSrteSegmentFTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentFTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{119} } -func (x *BgpV6EvpnEvis) GetChoice() BgpV6EvpnEvis_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteSegmentFTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return BgpV6EvpnEvis_Choice_unspecified + return "" } -func (x *BgpV6EvpnEvis) GetEviVxlan() *BgpV6EviVxlan { +func (x *BgpSrteSegmentFTypeSubTlv) GetLocalIpv4Address() string { if x != nil { - return x.EviVxlan + return x.LocalIpv4Address + } + return "" +} + +func (x *BgpSrteSegmentFTypeSubTlv) GetRemoteIpv4Address() string { + if x != nil { + return x.RemoteIpv4Address + } + return "" +} + +func (x *BgpSrteSegmentFTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid } return nil } -// Configuration for BGP EVPN EVI. Advertises following routes - -// -// # Type 3 - Inclusive Multicast Ethernet Tag Route -// -// Type 1 - Ethernet Auto-discovery Route (Per EVI) -// -// Type 1 - Ethernet Auto-discovery Route (Per ES) -type BgpV6EviVxlan struct { +// Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for +// SR MPLS. +type BgpSrteSegmentGTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This contains the list of Broadcast Domains to be configured per EVI. - BroadcastDomains []*BgpV6EviVxlanBroadcastDomain `protobuf:"bytes,1,rep,name=broadcast_domains,json=broadcastDomains,proto3" json:"broadcast_domains,omitempty"` - // This model only supports Ingress Replication - // default = ReplicationType.Enum.ingress_replication - ReplicationType *BgpV6EviVxlan_ReplicationType_Enum `protobuf:"varint,2,opt,name=replication_type,json=replicationType,proto3,enum=otg.BgpV6EviVxlan_ReplicationType_Enum,oneof" json:"replication_type,omitempty"` - // Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel - // attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. - // default = 16 - PmsiLabel *uint32 `protobuf:"varint,3,opt,name=pmsi_label,json=pmsiLabel,proto3,oneof" json:"pmsi_label,omitempty"` - // The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet - // Auto-discovery Route per + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. // default = 0 - AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` - // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying - // an EVI. Example - for the as_2octet 60005:100. - RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3,oneof" json:"route_distinguisher,omitempty"` - // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with - // this EVI. - RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` - // List of L2VNI import targets associated with this EVI. - RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,7,rep,name=route_target_import,json=routeTargetImport,proto3" json:"route_target_import,omitempty"` - // List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. - L3RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,8,rep,name=l3_route_target_export,json=l3RouteTargetExport,proto3" json:"l3_route_target_export,omitempty"` - // List of L3VNI Import Route Targets. - L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional Extended Community settings. The Extended Communities Attribute is a transitive - // optional BGP attribute, with the Type Code 16. Community and Extended Communities - // attributes are utilized to trigger routing decisions, such as acceptance, rejection, - // preference, or redistribution. An extended community is an 8-Bytes value. It is - // divided into two main parts. The first 2 Bytes of the community encode a type and - // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined - // by the type and sub-type field. Extended communities provide a larger range for - // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, - // the valid sub types are route target and origin. The valid value for administrator_as_2octet - // and administrator_as_4octet type is either two byte AS followed by four byte local - // administrator id or four byte AS followed by two byte local administrator id. When - // type is administrator_ipv4_address the valid sub types are route target and origin. - // The valid value for administrator_ipv4_address is a four byte IPv4 address followed - // by a two byte local administrator id. When type is opaque, valid sub types are color - // and encapsulation. When sub type is color, first two bytes of the value field contain - // flags and last four bytes contains the value of the color. When sub type is encapsulation - // the first four bytes of value field are reserved and last two bytes carries the tunnel - // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol - // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth - // the valid sub type is extended_bandwidth. The first two bytes of the value field - // contains the AS number and the last four bytes contains the bandwidth in IEEE floating - // point format. When type is evpn the valid subtype is mac_address. In the value field - // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and - // may be set to 1, indicating the MAC address is static and cannot move. The second - // byte is reserved and the last four bytes contain the sequence number which is used - // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates - // occur for the same MAC address. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + LocalIpv6NodeAddress string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + RemoteIpv6NodeAddress string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6EviVxlan) Reset() { - *x = BgpV6EviVxlan{} +func (x *BgpSrteSegmentGTypeSubTlv) Reset() { + *x = BgpSrteSegmentGTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[115] + mi := &file_otg_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlan) String() string { +func (x *BgpSrteSegmentGTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlan) ProtoMessage() {} +func (*BgpSrteSegmentGTypeSubTlv) ProtoMessage() {} -func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[115] +func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27850,138 +27872,167 @@ func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlan.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{115} +// Deprecated: Use BgpSrteSegmentGTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentGTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{120} } -func (x *BgpV6EviVxlan) GetBroadcastDomains() []*BgpV6EviVxlanBroadcastDomain { - if x != nil { - return x.BroadcastDomains +func (x *BgpSrteSegmentGTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6EviVxlan) GetReplicationType() BgpV6EviVxlan_ReplicationType_Enum { - if x != nil && x.ReplicationType != nil { - return *x.ReplicationType +func (x *BgpSrteSegmentGTypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId } - return BgpV6EviVxlan_ReplicationType_unspecified + return 0 } -func (x *BgpV6EviVxlan) GetPmsiLabel() uint32 { - if x != nil && x.PmsiLabel != nil { - return *x.PmsiLabel +func (x *BgpSrteSegmentGTypeSubTlv) GetLocalIpv6NodeAddress() string { + if x != nil { + return x.LocalIpv6NodeAddress } - return 0 + return "" } -func (x *BgpV6EviVxlan) GetAdLabel() uint32 { - if x != nil && x.AdLabel != nil { - return *x.AdLabel +func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteInterfaceId() uint32 { + if x != nil && x.RemoteInterfaceId != nil { + return *x.RemoteInterfaceId } return 0 } -func (x *BgpV6EviVxlan) GetRouteDistinguisher() *BgpRouteDistinguisher { +func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteIpv6NodeAddress() string { if x != nil { - return x.RouteDistinguisher + return x.RemoteIpv6NodeAddress } - return nil + return "" } -func (x *BgpV6EviVxlan) GetRouteTargetExport() []*BgpRouteTarget { +func (x *BgpSrteSegmentGTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.RouteTargetExport + return x.SrMplsSid } return nil } -func (x *BgpV6EviVxlan) GetRouteTargetImport() []*BgpRouteTarget { - if x != nil { - return x.RouteTargetImport - } - return nil +// Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. +type BgpSrteSegmentHTypeSubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local IPv6 Address. + // required = true + LocalIpv6Address string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` + // Remote IPv6 Address. + // required = true + RemoteIpv6Address string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3,oneof" json:"sr_mpls_sid,omitempty"` } -func (x *BgpV6EviVxlan) GetL3RouteTargetExport() []*BgpRouteTarget { - if x != nil { - return x.L3RouteTargetExport +func (x *BgpSrteSegmentHTypeSubTlv) Reset() { + *x = BgpSrteSegmentHTypeSubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpV6EviVxlan) GetL3RouteTargetImport() []*BgpRouteTarget { - if x != nil { - return x.L3RouteTargetImport +func (x *BgpSrteSegmentHTypeSubTlv) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpSrteSegmentHTypeSubTlv) ProtoMessage() {} + +func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[121] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpV6EviVxlan) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +// Deprecated: Use BgpSrteSegmentHTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentHTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{121} +} + +func (x *BgpSrteSegmentHTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpV6EviVxlan) GetCommunities() []*BgpCommunity { +func (x *BgpSrteSegmentHTypeSubTlv) GetLocalIpv6Address() string { if x != nil { - return x.Communities + return x.LocalIpv6Address } - return nil + return "" } -func (x *BgpV6EviVxlan) GetExtCommunities() []*BgpExtCommunity { +func (x *BgpSrteSegmentHTypeSubTlv) GetRemoteIpv6Address() string { if x != nil { - return x.ExtCommunities + return x.RemoteIpv6Address } - return nil + return "" } -func (x *BgpV6EviVxlan) GetAsPath() *BgpAsPath { +func (x *BgpSrteSegmentHTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.AsPath + return x.SrMplsSid } return nil } -// Configuration for Broadcast Domains per EVI. -type BgpV6EviVxlanBroadcastDomain struct { +// Type I: IPv6 Node Address with optional SRv6 SID. +type BgpSrteSegmentITypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. - // - // Advertises following route - - // Type 2 - MAC/IP Advertisement Route. - CmacIpRange []*BgpCMacIpRange `protobuf:"bytes,1,rep,name=cmac_ip_range,json=cmacIpRange,proto3" json:"cmac_ip_range,omitempty"` - // The Ethernet Tag ID of the Broadcast Domain. - // default = 0 - EthernetTagId *uint32 `protobuf:"varint,2,opt,name=ethernet_tag_id,json=ethernetTagId,proto3,oneof" json:"ethernet_tag_id,omitempty"` - // VLAN-Aware service to be enabled or disabled. - // default = False - VlanAwareService *bool `protobuf:"varint,3,opt,name=vlan_aware_service,json=vlanAwareService,proto3,oneof" json:"vlan_aware_service,omitempty"` + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // IPv6 address representing a node. + // required = true + Ipv6NodeAddress string `protobuf:"bytes,2,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3" json:"ipv6_node_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,3,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,4,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *BgpV6EviVxlanBroadcastDomain) Reset() { - *x = BgpV6EviVxlanBroadcastDomain{} +func (x *BgpSrteSegmentITypeSubTlv) Reset() { + *x = BgpSrteSegmentITypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[116] + mi := &file_otg_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlanBroadcastDomain) String() string { +func (x *BgpSrteSegmentITypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlanBroadcastDomain) ProtoMessage() {} +func (*BgpSrteSegmentITypeSubTlv) ProtoMessage() {} -func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[116] +func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27992,61 +28043,87 @@ func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlanBroadcastDomain.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlanBroadcastDomain) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{116} +// Deprecated: Use BgpSrteSegmentITypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentITypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{122} } -func (x *BgpV6EviVxlanBroadcastDomain) GetCmacIpRange() []*BgpCMacIpRange { +func (x *BgpSrteSegmentITypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentITypeSubTlv) GetIpv6NodeAddress() string { if x != nil { - return x.CmacIpRange + return x.Ipv6NodeAddress } - return nil + return "" } -func (x *BgpV6EviVxlanBroadcastDomain) GetEthernetTagId() uint32 { - if x != nil && x.EthernetTagId != nil { - return *x.EthernetTagId +func (x *BgpSrteSegmentITypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid } - return 0 + return "" } -func (x *BgpV6EviVxlanBroadcastDomain) GetVlanAwareService() bool { - if x != nil && x.VlanAwareService != nil { - return *x.VlanAwareService +func (x *BgpSrteSegmentITypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6SidEndpointBehavior } - return false + return nil } -// Description missing in models -type DeviceVxlan struct { +// Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional +// SID. +type BgpSrteSegmentJTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 VXLAN Tunnels - V4Tunnels []*VxlanV4Tunnel `protobuf:"bytes,1,rep,name=v4_tunnels,json=v4Tunnels,proto3" json:"v4_tunnels,omitempty"` - // IPv6 VXLAN Tunnels - V6Tunnels []*VxlanV6Tunnel `protobuf:"bytes,2,rep,name=v6_tunnels,json=v6Tunnels,proto3" json:"v6_tunnels,omitempty"` + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + LocalIpv6NodeAddress string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3" json:"local_ipv6_node_address,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + RemoteIpv6NodeAddress string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3" json:"remote_ipv6_node_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *DeviceVxlan) Reset() { - *x = DeviceVxlan{} +func (x *BgpSrteSegmentJTypeSubTlv) Reset() { + *x = BgpSrteSegmentJTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[117] + mi := &file_otg_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceVxlan) String() string { +func (x *BgpSrteSegmentJTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceVxlan) ProtoMessage() {} +func (*BgpSrteSegmentJTypeSubTlv) ProtoMessage() {} -func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[117] +func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28057,74 +28134,108 @@ func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceVxlan.ProtoReflect.Descriptor instead. -func (*DeviceVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{117} +// Deprecated: Use BgpSrteSegmentJTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentJTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{123} } -func (x *DeviceVxlan) GetV4Tunnels() []*VxlanV4Tunnel { +func (x *BgpSrteSegmentJTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm + } + return 0 +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId + } + return 0 +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetLocalIpv6NodeAddress() string { if x != nil { - return x.V4Tunnels + return x.LocalIpv6NodeAddress } - return nil + return "" } -func (x *DeviceVxlan) GetV6Tunnels() []*VxlanV6Tunnel { +func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteInterfaceId() uint32 { + if x != nil && x.RemoteInterfaceId != nil { + return *x.RemoteInterfaceId + } + return 0 +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteIpv6NodeAddress() string { if x != nil { - return x.V6Tunnels + return x.RemoteIpv6NodeAddress + } + return "" +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid + } + return "" +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6SidEndpointBehavior } return nil } -// Configuration and operational state parameters relating to IPv4 VXLAN tunnel end-point -// interface. -type VxlanV4Tunnel struct { +// Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. +type BgpSrteSegmentKTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the source interface. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // required = true - SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` - // Description missing in models - DestinationIpMode *VxlanV4TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` - // VXLAN Network Identifier (VNI) to distinguish network instances on the wire + // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined + // in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 + Flags *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv6 address representing a node. // required = true - Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + LocalIpv6Address string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3" json:"local_ipv6_address,omitempty"` + // IPv6 address representing a node. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + RemoteIpv6Address string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3" json:"remote_ipv6_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3,oneof" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *VxlanV4Tunnel) Reset() { - *x = VxlanV4Tunnel{} +func (x *BgpSrteSegmentKTypeSubTlv) Reset() { + *x = BgpSrteSegmentKTypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[118] + mi := &file_otg_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4Tunnel) String() string { +func (x *BgpSrteSegmentKTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4Tunnel) ProtoMessage() {} +func (*BgpSrteSegmentKTypeSubTlv) ProtoMessage() {} -func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[118] +func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28135,88 +28246,156 @@ func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV4Tunnel.ProtoReflect.Descriptor instead. -func (*VxlanV4Tunnel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{118} +// Deprecated: Use BgpSrteSegmentKTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentKTypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{124} } -func (x *VxlanV4Tunnel) GetSourceInterface() string { - if x != nil { - return x.SourceInterface +func (x *BgpSrteSegmentKTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } return "" } -func (x *VxlanV4Tunnel) GetDestinationIpMode() *VxlanV4TunnelDestinationIPMode { - if x != nil { - return x.DestinationIpMode +func (x *BgpSrteSegmentKTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } - return nil + return 0 } -func (x *VxlanV4Tunnel) GetVni() uint32 { +func (x *BgpSrteSegmentKTypeSubTlv) GetLocalIpv6Address() string { if x != nil { - return x.Vni + return x.LocalIpv6Address } - return 0 + return "" } -func (x *VxlanV4Tunnel) GetName() string { +func (x *BgpSrteSegmentKTypeSubTlv) GetRemoteIpv6Address() string { if x != nil { - return x.Name + return x.RemoteIpv6Address } return "" } -// Configuration and operational state parameters relating to IPv6 VXLAN tunnel end-point -// interface. -type VxlanV6Tunnel struct { +func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid + } + return "" +} + +func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6SidEndpointBehavior + } + return nil +} + +// Configuration for BGP Segment Routing Traffic Engineering policy. +type BgpSrteV6Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the source interface. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // + // Identifies the policy in the context of (color and endpoint) tuple. It is used by + // the SR Policy originator to make unique multiple occurrences of the same SR Policy. + // default = 1 + Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` + // Identifies the policy. It is used to match the color of the destination prefixes + // to steer traffic into the SR Policy. + // default = 100 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected + // on the basis of the SR Policy type (AFI). // required = true - SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` + Ipv6Endpoint string `protobuf:"bytes,3,opt,name=ipv6_endpoint,json=ipv6Endpoint,proto3" json:"ipv6_endpoint,omitempty"` + // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically + // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop + // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary + // IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpSrteV6Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV6Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. + // default = NextHopAddressType.Enum.ipv6 + NextHopAddressType *BgpSrteV6Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV6Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the Nexthop if the 'next_hop_mode' is 'manual' and the Nexthop + // type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, Nexthop Encoding + // capability extended_next_hop_encoding should be enabled. + // default = 0.0.0.0 + NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv6. + // default = ::0 + NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - DestinationIpMode *VxlanV6TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` - // VXLAN Network Identifier (VNI) to distinguish network instances on the wire - // required = true - Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3,oneof" json:"add_path,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. + Extcommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=extcommunities,proto3" json:"extcommunities,omitempty"` + // List of optional tunnel TLV settings. + TunnelTlvs []*BgpSrteV6TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *VxlanV6Tunnel) Reset() { - *x = VxlanV6Tunnel{} +func (x *BgpSrteV6Policy) Reset() { + *x = BgpSrteV6Policy{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[119] + mi := &file_otg_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6Tunnel) String() string { +func (x *BgpSrteV6Policy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6Tunnel) ProtoMessage() {} +func (*BgpSrteV6Policy) ProtoMessage() {} -func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[119] +func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28227,139 +28406,167 @@ func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV6Tunnel.ProtoReflect.Descriptor instead. -func (*VxlanV6Tunnel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{119} -} - -func (x *VxlanV6Tunnel) GetSourceInterface() string { - if x != nil { - return x.SourceInterface - } - return "" +// Deprecated: Use BgpSrteV6Policy.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{125} } -func (x *VxlanV6Tunnel) GetDestinationIpMode() *VxlanV6TunnelDestinationIPMode { - if x != nil { - return x.DestinationIpMode +func (x *BgpSrteV6Policy) GetDistinguisher() uint32 { + if x != nil && x.Distinguisher != nil { + return *x.Distinguisher } - return nil + return 0 } -func (x *VxlanV6Tunnel) GetVni() uint32 { - if x != nil { - return x.Vni +func (x *BgpSrteV6Policy) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } return 0 } -func (x *VxlanV6Tunnel) GetName() string { +func (x *BgpSrteV6Policy) GetIpv6Endpoint() string { if x != nil { - return x.Name + return x.Ipv6Endpoint } return "" } -// Communication mode between the VTEPs, either unicast or multicast. -type VxlanV4TunnelDestinationIPMode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpSrteV6Policy) GetNextHopMode() BgpSrteV6Policy_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode + } + return BgpSrteV6Policy_NextHopMode_unspecified +} - // unicast or multicast - // default = Choice.Enum.multicast - Choice *VxlanV4TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV4TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Unicast *VxlanV4TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` - // Description missing in models - Multicast *VxlanV4TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` +func (x *BgpSrteV6Policy) GetNextHopAddressType() BgpSrteV6Policy_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType + } + return BgpSrteV6Policy_NextHopAddressType_unspecified } -func (x *VxlanV4TunnelDestinationIPMode) Reset() { - *x = VxlanV4TunnelDestinationIPMode{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[120] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6Policy) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address } + return "" } -func (x *VxlanV4TunnelDestinationIPMode) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpSrteV6Policy) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address + } + return "" } -func (*VxlanV4TunnelDestinationIPMode) ProtoMessage() {} +func (x *BgpSrteV6Policy) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced + } + return nil +} -func (x *VxlanV4TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[120] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6Policy) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use VxlanV4TunnelDestinationIPMode.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{120} +func (x *BgpSrteV6Policy) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath + } + return nil } -func (x *VxlanV4TunnelDestinationIPMode) GetChoice() VxlanV4TunnelDestinationIPMode_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteV6Policy) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities } - return VxlanV4TunnelDestinationIPMode_Choice_unspecified + return nil } -func (x *VxlanV4TunnelDestinationIPMode) GetUnicast() *VxlanV4TunnelDestinationIPModeUnicast { +func (x *BgpSrteV6Policy) GetExtcommunities() []*BgpExtCommunity { if x != nil { - return x.Unicast + return x.Extcommunities } return nil } -func (x *VxlanV4TunnelDestinationIPMode) GetMulticast() *VxlanV4TunnelDestinationIPModeMulticast { +func (x *BgpSrteV6Policy) GetTunnelTlvs() []*BgpSrteV6TunnelTlv { if x != nil { - return x.Multicast + return x.TunnelTlvs } return nil } -// Communication mode between the VTEPs, either unicast or multicast. -type VxlanV6TunnelDestinationIPMode struct { +func (x *BgpSrteV6Policy) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *BgpSrteV6Policy) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active + } + return false +} + +// Configuration for BGP SRTE Tunnel TLV. +type BgpSrteV6TunnelTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // unicast or multicast - // default = Choice.Enum.multicast - Choice *VxlanV6TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV6TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Unicast *VxlanV6TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` + RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3,oneof" json:"remote_endpoint_sub_tlv,omitempty"` // Description missing in models - Multicast *VxlanV6TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` + ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3,oneof" json:"color_sub_tlv,omitempty"` + // Description missing in models + BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3,oneof" json:"binding_sub_tlv,omitempty"` + // Description missing in models + PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3,oneof" json:"preference_sub_tlv,omitempty"` + // Description missing in models + PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3,oneof" json:"policy_priority_sub_tlv,omitempty"` + // Description missing in models + PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3,oneof" json:"policy_name_sub_tlv,omitempty"` + // Description missing in models + ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3,oneof" json:"explicit_null_label_policy_sub_tlv,omitempty"` + // Description missing in models + SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` + // If enabled means that this part of the configuration including any active 'children' + // nodes will be advertised to peer. If disabled, this means that though config is + // present, it is not taking any part of the test but can be activated at run-time to + // advertise just this part of the configuration to the peer. + // default = True + Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *VxlanV6TunnelDestinationIPMode) Reset() { - *x = VxlanV6TunnelDestinationIPMode{} +func (x *BgpSrteV6TunnelTlv) Reset() { + *x = BgpSrteV6TunnelTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[121] + mi := &file_otg_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPMode) String() string { +func (x *BgpSrteV6TunnelTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPMode) ProtoMessage() {} +func (*BgpSrteV6TunnelTlv) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[121] +func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28370,163 +28577,130 @@ func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPMode.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{121} +// Deprecated: Use BgpSrteV6TunnelTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteV6TunnelTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{126} } -func (x *VxlanV6TunnelDestinationIPMode) GetChoice() VxlanV6TunnelDestinationIPMode_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteV6TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { + if x != nil { + return x.RemoteEndpointSubTlv } - return VxlanV6TunnelDestinationIPMode_Choice_unspecified + return nil } -func (x *VxlanV6TunnelDestinationIPMode) GetUnicast() *VxlanV6TunnelDestinationIPModeUnicast { +func (x *BgpSrteV6TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { if x != nil { - return x.Unicast + return x.ColorSubTlv } return nil } -func (x *VxlanV6TunnelDestinationIPMode) GetMulticast() *VxlanV6TunnelDestinationIPModeMulticast { +func (x *BgpSrteV6TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { if x != nil { - return x.Multicast + return x.BindingSubTlv } return nil } -// Description missing in models -type VxlanV4TunnelDestinationIPModeUnicast struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of VTEPs for member VNI(VXLAN Network Identifier) - Vteps []*VxlanV4TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` -} - -func (x *VxlanV4TunnelDestinationIPModeUnicast) Reset() { - *x = VxlanV4TunnelDestinationIPModeUnicast{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[122] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { + if x != nil { + return x.PreferenceSubTlv } + return nil } -func (x *VxlanV4TunnelDestinationIPModeUnicast) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VxlanV4TunnelDestinationIPModeUnicast) ProtoMessage() {} - -func (x *VxlanV4TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[122] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { + if x != nil { + return x.PolicyPrioritySubTlv } - return mi.MessageOf(x) -} - -// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{122} + return nil } -func (x *VxlanV4TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV4TunnelDestinationIPModeUnicastVtep { +func (x *BgpSrteV6TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { if x != nil { - return x.Vteps + return x.PolicyNameSubTlv } return nil } -// Description missing in models -type VxlanV6TunnelDestinationIPModeUnicast struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of VTEPs for member VNI(VXLAN Network Identifier) - Vteps []*VxlanV6TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` -} - -func (x *VxlanV6TunnelDestinationIPModeUnicast) Reset() { - *x = VxlanV6TunnelDestinationIPModeUnicast{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[123] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { + if x != nil { + return x.ExplicitNullLabelPolicySubTlv } + return nil } -func (x *VxlanV6TunnelDestinationIPModeUnicast) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*VxlanV6TunnelDestinationIPModeUnicast) ProtoMessage() {} - -func (x *VxlanV6TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[123] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { + if x != nil { + return x.SegmentLists } - return mi.MessageOf(x) + return nil } -// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{123} +func (x *BgpSrteV6TunnelTlv) GetName() string { + if x != nil { + return x.Name + } + return "" } -func (x *VxlanV6TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV6TunnelDestinationIPModeUnicastVtep { - if x != nil { - return x.Vteps +func (x *BgpSrteV6TunnelTlv) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active } - return nil + return false } -// Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated -// MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request -// for another end-host IP address, its local VTEP intercepts the ARP request and checks -// for the ARP-resolved IP address in its ARP suppression cache table. If it finds -// a match, the local VTEP sends an ARP response on behalf of the remote end host. -type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { +// The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by +// a BGP speaker to indicate its ability to preserve its forwarding state during BGP +// restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent +// between BGP peers. After a BGP session has been established, and the initial routing +// update has been completed, an End-of-RIB (Routing Information Base) marker is sent +// in an UPDATE message to convey information about routing convergence. +type BgpGracefulRestart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Remote VM MAC address bound to Remote VM IPv4 address - RemoteVmMac *string `protobuf:"bytes,1,opt,name=remote_vm_mac,json=remoteVmMac,proto3,oneof" json:"remote_vm_mac,omitempty"` - // Remote VM IPv4 address - RemoteVmIpv4 *string `protobuf:"bytes,2,opt,name=remote_vm_ipv4,json=remoteVmIpv4,proto3,oneof" json:"remote_vm_ipv4,omitempty"` + // If enabled, Graceful Restart capability is advertised in BGP OPEN messages. + // default = False + EnableGr *bool `protobuf:"varint,1,opt,name=enable_gr,json=enableGr,proto3,oneof" json:"enable_gr,omitempty"` + // This is the estimated duration (in seconds) it will take for the BGP session to be + // re-established after a restart. This can be used to speed up routing convergence + // by its peer in case the BGP speaker does not come back after a restart. + // default = 45 + RestartTime *uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime,proto3,oneof" json:"restart_time,omitempty"` + // If enabled, the Long-lived Graceful Restart Capability, or LLGR Capability + // will be advertised. + // This capability MUST be advertised in conjunction with the Graceful Restart + // capability. + // default = False + EnableLlgr *bool `protobuf:"varint,3,opt,name=enable_llgr,json=enableLlgr,proto3,oneof" json:"enable_llgr,omitempty"` + // Duration (in seconds) specifying how long stale information (for the AFI/SAFI) + // may be retained. This is a three byte field and is applicable + // only if 'enable_llgr' is set to 'true'. + // default = 10 + StaleTime *uint32 `protobuf:"varint,4,opt,name=stale_time,json=staleTime,proto3,oneof" json:"stale_time,omitempty"` } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Reset() { - *x = VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{} +func (x *BgpGracefulRestart) Reset() { + *x = BgpGracefulRestart{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[124] + mi := &file_otg_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { +func (x *BgpGracefulRestart) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoMessage() {} +func (*BgpGracefulRestart) ProtoMessage() {} -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[124] +func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28537,58 +28711,130 @@ func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.ProtoReflect.Descriptor instead. -func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{124} +// Deprecated: Use BgpGracefulRestart.ProtoReflect.Descriptor instead. +func (*BgpGracefulRestart) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{127} } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmMac() string { - if x != nil && x.RemoteVmMac != nil { - return *x.RemoteVmMac +func (x *BgpGracefulRestart) GetEnableGr() bool { + if x != nil && x.EnableGr != nil { + return *x.EnableGr } - return "" + return false } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmIpv4() string { - if x != nil && x.RemoteVmIpv4 != nil { - return *x.RemoteVmIpv4 +func (x *BgpGracefulRestart) GetRestartTime() uint32 { + if x != nil && x.RestartTime != nil { + return *x.RestartTime } - return "" + return 0 } -// VTEP (VXLAN Tunnel End Point (VTEP)) parameters -type VxlanV4TunnelDestinationIPModeUnicastVtep struct { +func (x *BgpGracefulRestart) GetEnableLlgr() bool { + if x != nil && x.EnableLlgr != nil { + return *x.EnableLlgr + } + return false +} + +func (x *BgpGracefulRestart) GetStaleTime() uint32 { + if x != nil && x.StaleTime != nil { + return *x.StaleTime + } + return 0 +} + +// Configuration for BGPv6 peer settings and routes. +type BgpV6Peer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Remote VXLAN Tunnel End Point address - RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` - // Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated - // MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request - // for another end-host IP address, its local VTEP intercepts the ARP request and checks - // for the ARP-resolved IP address in its ARP suppression cache table. If it finds - // a match, the local VTEP sends an ARP response on behalf of the remote end host. - ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` + // IPv6 address of the BGP peer for the session + // required = true + PeerAddress string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3" json:"peer_address,omitempty"` + // Description missing in models + SegmentRouting *BgpV6SegmentRouting `protobuf:"bytes,2,opt,name=segment_routing,json=segmentRouting,proto3,oneof" json:"segment_routing,omitempty"` + // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments + // (ES) Per BGP Peer for IPv6 Address Family Identifier (AFI). + // + // Each Ethernet Segment contains a list of EVPN Instances (EVIs) . + // Each EVI contains a list of Broadcast Domains. + // Each Broadcast Domain contains a list of MAC/IP Ranges. + // + // is responsible for advertising Ethernet + // Auto-discovery Route Per EVI (Type 1). + // + // is responsible for advertising Ethernet Auto-discovery Route + // Per Ethernet Segment (Type 1). + // + // is responsible for advertising + // MAC/IP Advertisement Route (Type 2). + // + // is responsible for advertising Inclusive + // Multicast Ethernet Tag Route (Type 3). + // + // Ethernet Segment is responsible for advertising Ethernet Segment Route (Type 4). + EvpnEthernetSegments []*BgpV6EthernetSegment `protobuf:"bytes,3,rep,name=evpn_ethernet_segments,json=evpnEthernetSegments,proto3" json:"evpn_ethernet_segments,omitempty"` + // The type of BGP autonomous system. External BGP is used for BGP links between two + // or more autonomous systems (ebgp). Internal BGP is used within a single autonomous + // system (ibgp). BGP property defaults are aligned with this object defined as an internal + // BGP peer. If the as_type is specified as 'ebgp' then other properties will need to + // be specified as per an external BGP peer. Specifically, for 'ebgp', 'as_set_mode' + // attribute in 'as_path' field in any Route Range should be changed from default value + // 'do_not_include_local_as' to any other value. + // required = true + AsType BgpV6Peer_AsType_Enum `protobuf:"varint,4,opt,name=as_type,json=asType,proto3,enum=otg.BgpV6Peer_AsType_Enum" json:"as_type,omitempty"` + // Autonomous System Number (AS number or ASN) + // required = true + AsNumber uint32 `protobuf:"varint,5,opt,name=as_number,json=asNumber,proto3" json:"as_number,omitempty"` + // The width in bytes of the as_number values. Any as_number values that exceeds the + // width MUST result in an error. + // default = AsNumberWidth.Enum.four + AsNumberWidth *BgpV6Peer_AsNumberWidth_Enum `protobuf:"varint,6,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV6Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` + // Description missing in models + Advanced *BgpAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Description missing in models + Capability *BgpCapability `protobuf:"bytes,8,opt,name=capability,proto3,oneof" json:"capability,omitempty"` + // Description missing in models + LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,9,opt,name=learned_information_filter,json=learnedInformationFilter,proto3,oneof" json:"learned_information_filter,omitempty"` + // Emulated BGPv4 route ranges. + V4Routes []*BgpV4RouteRange `protobuf:"bytes,10,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` + // Emulated BGPv6 route ranges. + V6Routes []*BgpV6RouteRange `protobuf:"bytes,11,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` + // Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier + // (AFI). + V4SrtePolicies []*BgpSrteV4Policy `protobuf:"bytes,12,rep,name=v4_srte_policies,json=v4SrtePolicies,proto3" json:"v4_srte_policies,omitempty"` + // Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier + // (AFI). + V6SrtePolicies []*BgpSrteV6Policy `protobuf:"bytes,13,rep,name=v6_srte_policies,json=v6SrtePolicies,proto3" json:"v6_srte_policies,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` + // Description missing in models + GracefulRestart *BgpGracefulRestart `protobuf:"bytes,15,opt,name=graceful_restart,json=gracefulRestart,proto3,oneof" json:"graceful_restart,omitempty"` } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) Reset() { - *x = VxlanV4TunnelDestinationIPModeUnicastVtep{} +func (x *BgpV6Peer) Reset() { + *x = BgpV6Peer{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[125] + mi := &file_otg_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) String() string { +func (x *BgpV6Peer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} +func (*BgpV6Peer) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[125] +func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28599,163 +28845,156 @@ func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{125} +// Deprecated: Use BgpV6Peer.ProtoReflect.Descriptor instead. +func (*BgpV6Peer) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128} } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { - if x != nil && x.RemoteVtepAddress != nil { - return *x.RemoteVtepAddress +func (x *BgpV6Peer) GetPeerAddress() string { + if x != nil { + return x.PeerAddress } return "" } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (x *BgpV6Peer) GetSegmentRouting() *BgpV6SegmentRouting { if x != nil { - return x.ArpSuppressionCache + return x.SegmentRouting } return nil } -// VTEP (VXLAN Tunnel End Point (VTEP)) parameters -type VxlanV6TunnelDestinationIPModeUnicastVtep struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Remote VXLAN Tunnel End Point address - RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` - // Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated - // MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request - // for another end-host IP address, its local VTEP intercepts the ARP request and checks - // for the ARP-resolved IP address in its ARP suppression cache table. If it finds - // a match, the local VTEP sends an ARP response on behalf of the remote end host. - ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` +func (x *BgpV6Peer) GetEvpnEthernetSegments() []*BgpV6EthernetSegment { + if x != nil { + return x.EvpnEthernetSegments + } + return nil } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) Reset() { - *x = VxlanV6TunnelDestinationIPModeUnicastVtep{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[126] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6Peer) GetAsType() BgpV6Peer_AsType_Enum { + if x != nil { + return x.AsType } + return BgpV6Peer_AsType_unspecified } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV6Peer) GetAsNumber() uint32 { + if x != nil { + return x.AsNumber + } + return 0 } -func (*VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} - -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[126] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6Peer) GetAsNumberWidth() BgpV6Peer_AsNumberWidth_Enum { + if x != nil && x.AsNumberWidth != nil { + return *x.AsNumberWidth } - return mi.MessageOf(x) + return BgpV6Peer_AsNumberWidth_unspecified } -// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{126} +func (x *BgpV6Peer) GetAdvanced() *BgpAdvanced { + if x != nil { + return x.Advanced + } + return nil } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { - if x != nil && x.RemoteVtepAddress != nil { - return *x.RemoteVtepAddress +func (x *BgpV6Peer) GetCapability() *BgpCapability { + if x != nil { + return x.Capability } - return "" + return nil } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (x *BgpV6Peer) GetLearnedInformationFilter() *BgpLearnedInformationFilter { if x != nil { - return x.ArpSuppressionCache + return x.LearnedInformationFilter } return nil } -// Multicast Group address for member VNI(VXLAN Network Identifier) -type VxlanV4TunnelDestinationIPModeMulticast struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // IPv4 Multicast address - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` +func (x *BgpV6Peer) GetV4Routes() []*BgpV4RouteRange { + if x != nil { + return x.V4Routes + } + return nil } -func (x *VxlanV4TunnelDestinationIPModeMulticast) Reset() { - *x = VxlanV4TunnelDestinationIPModeMulticast{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[127] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6Peer) GetV6Routes() []*BgpV6RouteRange { + if x != nil { + return x.V6Routes } + return nil } -func (x *VxlanV4TunnelDestinationIPModeMulticast) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV6Peer) GetV4SrtePolicies() []*BgpSrteV4Policy { + if x != nil { + return x.V4SrtePolicies + } + return nil } -func (*VxlanV4TunnelDestinationIPModeMulticast) ProtoMessage() {} - -func (x *VxlanV4TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[127] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { + if x != nil { + return x.V6SrtePolicies } - return mi.MessageOf(x) + return nil } -// Deprecated: Use VxlanV4TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{127} +func (x *BgpV6Peer) GetName() string { + if x != nil { + return x.Name + } + return "" } -func (x *VxlanV4TunnelDestinationIPModeMulticast) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpV6Peer) GetGracefulRestart() *BgpGracefulRestart { + if x != nil { + return x.GracefulRestart } - return "" + return nil } -// Multicast Group address for member VNI(VXLAN Network Identifier) -type VxlanV6TunnelDestinationIPModeMulticast struct { +// Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. +type BgpV6Interface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv6 Multicast address - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The unique name of IPv6 or Loopback IPv6 interface used as the source IP for this + // list of BGP peers. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // required = true + Ipv6Name string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3" json:"ipv6_name,omitempty"` + // This contains the list of BGPv6 peers configured on this interface. + Peers []*BgpV6Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } -func (x *VxlanV6TunnelDestinationIPModeMulticast) Reset() { - *x = VxlanV6TunnelDestinationIPModeMulticast{} +func (x *BgpV6Interface) Reset() { + *x = BgpV6Interface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[128] + mi := &file_otg_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPModeMulticast) String() string { +func (x *BgpV6Interface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPModeMulticast) ProtoMessage() {} +func (*BgpV6Interface) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[128] +func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28766,54 +29005,74 @@ func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{128} +// Deprecated: Use BgpV6Interface.ProtoReflect.Descriptor instead. +func (*BgpV6Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{129} } -func (x *VxlanV6TunnelDestinationIPModeMulticast) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpV6Interface) GetIpv6Name() string { + if x != nil { + return x.Ipv6Name } return "" } -// Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, -// currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related -// specifications. -type DeviceRsvp struct { +func (x *BgpV6Interface) GetPeers() []*BgpV6Peer { + if x != nil { + return x.Peers + } + return nil +} + +// Configuration for BGPv6 segment routing settings. +type BgpV6SegmentRouting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv4 RSVP connected interfaces. At least one interface should be present - // for device connected to the DUT. For unconnected devices, this array must be empty. - Ipv4Interfaces []*RsvpIpv4Interface `protobuf:"bytes,1,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` - // List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress - // endpoints. - LspIpv4Interfaces []*RsvpLspIpv4Interface `protobuf:"bytes,2,rep,name=lsp_ipv4_interfaces,json=lspIpv4Interfaces,proto3" json:"lsp_ipv4_interfaces,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // TBD + // default = False + IngressSupportsVpn *bool `protobuf:"varint,1,opt,name=ingress_supports_vpn,json=ingressSupportsVpn,proto3,oneof" json:"ingress_supports_vpn,omitempty"` + // TBD + // default = False + ReducedEncapsulation *bool `protobuf:"varint,2,opt,name=reduced_encapsulation,json=reducedEncapsulation,proto3,oneof" json:"reduced_encapsulation,omitempty"` + // TBD + // default = False + CopyTimeToLive *bool `protobuf:"varint,3,opt,name=copy_time_to_live,json=copyTimeToLive,proto3,oneof" json:"copy_time_to_live,omitempty"` + // TBD + // default = 0 + TimeToLive *uint32 `protobuf:"varint,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + // TBD + // default = 0 + MaxSidsPerSrh *uint32 `protobuf:"varint,5,opt,name=max_sids_per_srh,json=maxSidsPerSrh,proto3,oneof" json:"max_sids_per_srh,omitempty"` + // TBD + // default = False + AutoGenerateSegmentLeftValue *bool `protobuf:"varint,6,opt,name=auto_generate_segment_left_value,json=autoGenerateSegmentLeftValue,proto3,oneof" json:"auto_generate_segment_left_value,omitempty"` + // TBD + // default = 0 + SegmentLeftValue *uint32 `protobuf:"varint,7,opt,name=segment_left_value,json=segmentLeftValue,proto3,oneof" json:"segment_left_value,omitempty"` + // TBD + // default = False + AdvertiseSrTePolicy *bool `protobuf:"varint,8,opt,name=advertise_sr_te_policy,json=advertiseSrTePolicy,proto3,oneof" json:"advertise_sr_te_policy,omitempty"` } -func (x *DeviceRsvp) Reset() { - *x = DeviceRsvp{} +func (x *BgpV6SegmentRouting) Reset() { + *x = BgpV6SegmentRouting{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[129] + mi := &file_otg_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceRsvp) String() string { +func (x *BgpV6SegmentRouting) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceRsvp) ProtoMessage() {} +func (*BgpV6SegmentRouting) ProtoMessage() {} -func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[129] +func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28824,108 +29083,143 @@ func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceRsvp.ProtoReflect.Descriptor instead. -func (*DeviceRsvp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{129} +// Deprecated: Use BgpV6SegmentRouting.ProtoReflect.Descriptor instead. +func (*BgpV6SegmentRouting) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{130} } -func (x *DeviceRsvp) GetIpv4Interfaces() []*RsvpIpv4Interface { - if x != nil { - return x.Ipv4Interfaces +func (x *BgpV6SegmentRouting) GetIngressSupportsVpn() bool { + if x != nil && x.IngressSupportsVpn != nil { + return *x.IngressSupportsVpn } - return nil + return false } -func (x *DeviceRsvp) GetLspIpv4Interfaces() []*RsvpLspIpv4Interface { - if x != nil { - return x.LspIpv4Interfaces +func (x *BgpV6SegmentRouting) GetReducedEncapsulation() bool { + if x != nil && x.ReducedEncapsulation != nil { + return *x.ReducedEncapsulation } - return nil + return false } -func (x *DeviceRsvp) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpV6SegmentRouting) GetCopyTimeToLive() bool { + if x != nil && x.CopyTimeToLive != nil { + return *x.CopyTimeToLive } - return "" + return false } -// Configuration for RSVP Interface. -type RsvpIpv4Interface struct { +func (x *BgpV6SegmentRouting) GetTimeToLive() uint32 { + if x != nil && x.TimeToLive != nil { + return *x.TimeToLive + } + return 0 +} + +func (x *BgpV6SegmentRouting) GetMaxSidsPerSrh() uint32 { + if x != nil && x.MaxSidsPerSrh != nil { + return *x.MaxSidsPerSrh + } + return 0 +} + +func (x *BgpV6SegmentRouting) GetAutoGenerateSegmentLeftValue() bool { + if x != nil && x.AutoGenerateSegmentLeftValue != nil { + return *x.AutoGenerateSegmentLeftValue + } + return false +} + +func (x *BgpV6SegmentRouting) GetSegmentLeftValue() uint32 { + if x != nil && x.SegmentLeftValue != nil { + return *x.SegmentLeftValue + } + return 0 +} + +func (x *BgpV6SegmentRouting) GetAdvertiseSrTePolicy() bool { + if x != nil && x.AdvertiseSrTePolicy != nil { + return *x.AdvertiseSrTePolicy + } + return false +} + +// Configuration for BGP Ethernet Segment ranges. Advertises following routes - +// +// Type 4 - Ethernet Segment Route +type BgpV6EthernetSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The globally unique name of the IPv4 interface connected to the DUT. This name must - // match the name field of the ipv4_addresses on top which this RSVP interface is configured. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` - // IPv4 address of the RSVP neighbor on this interface. - // required = true - NeighborIp string `protobuf:"bytes,2,opt,name=neighbor_ip,json=neighborIp,proto3" json:"neighbor_ip,omitempty"` - // The user-defined label space start value. The LSPs for which this router acts as - // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end - // together defines this label-pool. - // default = 1000 - LabelSpaceStart *uint32 `protobuf:"varint,3,opt,name=label_space_start,json=labelSpaceStart,proto3,oneof" json:"label_space_start,omitempty"` - // The user-defined label space end value.The last label value that can be assigned - // to the LSPs for which this router acts as egress. - // default = 100000 - LabelSpaceEnd *uint32 `protobuf:"varint,4,opt,name=label_space_end,json=labelSpaceEnd,proto3,oneof" json:"label_space_end,omitempty"` - // Enables sending of Refresh Reduction as described in RFC2961. - // default = False - EnableRefreshReduction *bool `protobuf:"varint,5,opt,name=enable_refresh_reduction,json=enableRefreshReduction,proto3,oneof" json:"enable_refresh_reduction,omitempty"` - // The number of seconds between transmissions of successive Summary Refreshes. There - // is no specification specified maximum value. For clarity, setting the maximum to - // 1 hour. - // default = 30 - SummaryRefreshInterval *uint32 `protobuf:"varint,6,opt,name=summary_refresh_interval,json=summaryRefreshInterval,proto3,oneof" json:"summary_refresh_interval,omitempty"` - // Enables aggregration of different RSVP messages within a single PDU. - // default = False - SendBundle *bool `protobuf:"varint,7,opt,name=send_bundle,json=sendBundle,proto3,oneof" json:"send_bundle,omitempty"` - // The number of milliseconds to wait after which RSVP will bundle different RSVP messages - // and transmit Bundle messages. - // default = 50 - BundleThreshold *uint32 `protobuf:"varint,8,opt,name=bundle_threshold,json=bundleThreshold,proto3,oneof" json:"bundle_threshold,omitempty"` - // Enables sending of Hello Messages as per RFC3209. - // default = False - EnableHello *bool `protobuf:"varint,9,opt,name=enable_hello,json=enableHello,proto3,oneof" json:"enable_hello,omitempty"` - // If enable_hello is set to 'true', this specifies the minimum hello interval in seconds - // at which successive Hello Messages are sent as per RFC3209. There is no specification - // specified maximum value. For clarity, setting the maximum to 1 hour. - // default = 9 - HelloInterval *uint32 `protobuf:"varint,10,opt,name=hello_interval,json=helloInterval,proto3,oneof" json:"hello_interval,omitempty"` - // The number of missed hellos after which the node should consider RSVP Neighbor to - // have timed out. There is no specification specified maximum value. Setting the maximum - // allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,11,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // Designated Forwarder (DF) election configuration. + DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3,oneof" json:"df_election,omitempty"` + // This contains the list of EVIs. + Evis []*BgpV6EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` + // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero + // ESI is '10000000000000000000' . + // default = 00000000000000000000 + Esi *string `protobuf:"bytes,3,opt,name=esi,proto3,oneof" json:"esi,omitempty"` + // Single Active or All Active mode Redundancy mode selection for Multi-home. + // default = ActiveMode.Enum.all_active + ActiveMode *BgpV6EthernetSegment_ActiveMode_Enum `protobuf:"varint,4,opt,name=active_mode,json=activeMode,proto3,enum=otg.BgpV6EthernetSegment_ActiveMode_Enum,oneof" json:"active_mode,omitempty"` + // The label value to be advertised as ESI Label in ESI Label Extended Community. This + // is included in Ethernet Auto-discovery per ES Routes advertised by a router. + // default = 0 + EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` } -func (x *RsvpIpv4Interface) Reset() { - *x = RsvpIpv4Interface{} +func (x *BgpV6EthernetSegment) Reset() { + *x = BgpV6EthernetSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[130] + mi := &file_otg_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpIpv4Interface) String() string { +func (x *BgpV6EthernetSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpIpv4Interface) ProtoMessage() {} +func (*BgpV6EthernetSegment) ProtoMessage() {} -func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[130] +func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28936,132 +29230,107 @@ func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpIpv4Interface.ProtoReflect.Descriptor instead. -func (*RsvpIpv4Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{130} +// Deprecated: Use BgpV6EthernetSegment.ProtoReflect.Descriptor instead. +func (*BgpV6EthernetSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{131} } -func (x *RsvpIpv4Interface) GetIpv4Name() string { +func (x *BgpV6EthernetSegment) GetDfElection() *BgpEthernetSegmentDfElection { if x != nil { - return x.Ipv4Name + return x.DfElection } - return "" + return nil } -func (x *RsvpIpv4Interface) GetNeighborIp() string { +func (x *BgpV6EthernetSegment) GetEvis() []*BgpV6EvpnEvis { if x != nil { - return x.NeighborIp - } - return "" -} - -func (x *RsvpIpv4Interface) GetLabelSpaceStart() uint32 { - if x != nil && x.LabelSpaceStart != nil { - return *x.LabelSpaceStart + return x.Evis } - return 0 + return nil } -func (x *RsvpIpv4Interface) GetLabelSpaceEnd() uint32 { - if x != nil && x.LabelSpaceEnd != nil { - return *x.LabelSpaceEnd +func (x *BgpV6EthernetSegment) GetEsi() string { + if x != nil && x.Esi != nil { + return *x.Esi } - return 0 + return "" } -func (x *RsvpIpv4Interface) GetEnableRefreshReduction() bool { - if x != nil && x.EnableRefreshReduction != nil { - return *x.EnableRefreshReduction +func (x *BgpV6EthernetSegment) GetActiveMode() BgpV6EthernetSegment_ActiveMode_Enum { + if x != nil && x.ActiveMode != nil { + return *x.ActiveMode } - return false + return BgpV6EthernetSegment_ActiveMode_unspecified } -func (x *RsvpIpv4Interface) GetSummaryRefreshInterval() uint32 { - if x != nil && x.SummaryRefreshInterval != nil { - return *x.SummaryRefreshInterval +func (x *BgpV6EthernetSegment) GetEsiLabel() uint32 { + if x != nil && x.EsiLabel != nil { + return *x.EsiLabel } return 0 } -func (x *RsvpIpv4Interface) GetSendBundle() bool { - if x != nil && x.SendBundle != nil { - return *x.SendBundle - } - return false -} - -func (x *RsvpIpv4Interface) GetBundleThreshold() uint32 { - if x != nil && x.BundleThreshold != nil { - return *x.BundleThreshold +func (x *BgpV6EthernetSegment) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced } - return 0 + return nil } -func (x *RsvpIpv4Interface) GetEnableHello() bool { - if x != nil && x.EnableHello != nil { - return *x.EnableHello +func (x *BgpV6EthernetSegment) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities } - return false + return nil } -func (x *RsvpIpv4Interface) GetHelloInterval() uint32 { - if x != nil && x.HelloInterval != nil { - return *x.HelloInterval +func (x *BgpV6EthernetSegment) GetExtCommunities() []*BgpExtCommunity { + if x != nil { + return x.ExtCommunities } - return 0 + return nil } -func (x *RsvpIpv4Interface) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier +func (x *BgpV6EthernetSegment) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath } - return 0 + return nil } -// Configuration for RSVP LSP IPv4 Interface. -type RsvpLspIpv4Interface struct { +// This contains a list of different flavors of EVPN. +// For example EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment. +// +// Need to instantiate correct type of EVPN instance as per requirement. +type BgpV6EvpnEvis struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP - // ingress and egress endpoint for the LSPs configured on this interface. This must - // match the name field of either ipv4_addresses or ipv4_loopbacks on which this LSP - // interface is configured. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // required = true - Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` - // Contains properties of Tail(Egress) LSPs. - P2PEgressIpv4Lsps *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp `protobuf:"bytes,2,opt,name=p2p_egress_ipv4_lsps,json=p2pEgressIpv4Lsps,proto3,oneof" json:"p2p_egress_ipv4_lsps,omitempty"` - // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. - P2PIngressIpv4Lsps []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp `protobuf:"bytes,3,rep,name=p2p_ingress_ipv4_lsps,json=p2pIngressIpv4Lsps,proto3" json:"p2p_ingress_ipv4_lsps,omitempty"` + // Description missing in models + // default = Choice.Enum.evi_vxlan + Choice *BgpV6EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV6EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` + // EVPN VXLAN instance to be configured per Ethernet Segment. + EviVxlan *BgpV6EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3,oneof" json:"evi_vxlan,omitempty"` } -func (x *RsvpLspIpv4Interface) Reset() { - *x = RsvpLspIpv4Interface{} +func (x *BgpV6EvpnEvis) Reset() { + *x = BgpV6EvpnEvis{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[131] + mi := &file_otg_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4Interface) String() string { +func (x *BgpV6EvpnEvis) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Interface) ProtoMessage() {} +func (*BgpV6EvpnEvis) ProtoMessage() {} -func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[131] +func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29072,88 +29341,115 @@ func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Interface.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{131} -} - -func (x *RsvpLspIpv4Interface) GetIpv4Name() string { - if x != nil { - return x.Ipv4Name - } - return "" +// Deprecated: Use BgpV6EvpnEvis.ProtoReflect.Descriptor instead. +func (*BgpV6EvpnEvis) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{132} } -func (x *RsvpLspIpv4Interface) GetP2PEgressIpv4Lsps() *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { - if x != nil { - return x.P2PEgressIpv4Lsps +func (x *BgpV6EvpnEvis) GetChoice() BgpV6EvpnEvis_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpV6EvpnEvis_Choice_unspecified } -func (x *RsvpLspIpv4Interface) GetP2PIngressIpv4Lsps() []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { +func (x *BgpV6EvpnEvis) GetEviVxlan() *BgpV6EviVxlan { if x != nil { - return x.P2PIngressIpv4Lsps + return x.EviVxlan } return nil } -// Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs. -type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp struct { +// Configuration for BGP EVPN EVI. Advertises following routes - +// +// # Type 3 - Inclusive Multicast Ethernet Tag Route +// +// Type 1 - Ethernet Auto-discovery Route (Per EVI) +// +// Type 1 - Ethernet Auto-discovery Route (Per ES) +type BgpV6EviVxlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // The time in seconds between successive transmissions of RESV Refreshes. The actual - // refresh interval is jittered by upto 50%. There is no specification specified maximum - // value. For clarity, setting the maximum to 1 hour. - // default = 30 - RefreshInterval *uint32 `protobuf:"varint,2,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` - // The number of missed PATH refreshes after which a recieving node should consider - // the LSP state to have timed out. There is no specification specified maximum value. - // Setting the maximum allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,3,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` - // It determines how RSVP-TE enabled network devices set up reservations along the path - // between an end-to-end QOS-enabled connection. If 'auto' is enabled, the style is - // chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the - // style is chosen based on the value selected for this attribute. - // default = ReservationStyle.Enum.shared_explicit - ReservationStyle *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum `protobuf:"varint,4,opt,name=reservation_style,json=reservationStyle,proto3,enum=otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum,oneof" json:"reservation_style,omitempty"` - // If enabled, a specific fixed label will be advertised by the egress or tail end for - // all Path messages received by this egress. This can be leveraged to advertise Explicit - // or Implicit null labels. - // default = False - EnableFixedLabel *bool `protobuf:"varint,5,opt,name=enable_fixed_label,json=enableFixedLabel,proto3,oneof" json:"enable_fixed_label,omitempty"` - // The fixed label value as advertised by egress in RESV message. Applicable only if - // 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - - // IPv6 Explicit NULL' and '3 - Implicit NULL'. Outside of this, labels are expected - // to have a minimum value of 16. + // This contains the list of Broadcast Domains to be configured per EVI. + BroadcastDomains []*BgpV6EviVxlanBroadcastDomain `protobuf:"bytes,1,rep,name=broadcast_domains,json=broadcastDomains,proto3" json:"broadcast_domains,omitempty"` + // This model only supports Ingress Replication + // default = ReplicationType.Enum.ingress_replication + ReplicationType *BgpV6EviVxlan_ReplicationType_Enum `protobuf:"varint,2,opt,name=replication_type,json=replicationType,proto3,enum=otg.BgpV6EviVxlan_ReplicationType_Enum,oneof" json:"replication_type,omitempty"` + // Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel + // attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. + // default = 16 + PmsiLabel *uint32 `protobuf:"varint,3,opt,name=pmsi_label,json=pmsiLabel,proto3,oneof" json:"pmsi_label,omitempty"` + // The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet + // Auto-discovery Route per // default = 0 - FixedLabelValue *uint32 `protobuf:"varint,6,opt,name=fixed_label_value,json=fixedLabelValue,proto3,oneof" json:"fixed_label_value,omitempty"` + AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` + // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying + // an EVI. Example - for the as_2octet 60005:100. + RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3,oneof" json:"route_distinguisher,omitempty"` + // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with + // this EVI. + RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` + // List of L2VNI import targets associated with this EVI. + RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,7,rep,name=route_target_import,json=routeTargetImport,proto3" json:"route_target_import,omitempty"` + // List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. + L3RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,8,rep,name=l3_route_target_export,json=l3RouteTargetExport,proto3" json:"l3_route_target_export,omitempty"` + // List of L3VNI Import Route Targets. + L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3,oneof" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an 8-Bytes value. It is + // divided into two main parts. The first 2 Bytes of the community encode a type and + // sub-type fields and the last 6 Bytes carry a unique set of data in a format defined + // by the type and sub-type field. Extended communities provide a larger range for + // grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, + // the valid sub types are route target and origin. The valid value for administrator_as_2octet + // and administrator_as_4octet type is either two byte AS followed by four byte local + // administrator id or four byte AS followed by two byte local administrator id. When + // type is administrator_ipv4_address the valid sub types are route target and origin. + // The valid value for administrator_ipv4_address is a four byte IPv4 address followed + // by a two byte local administrator id. When type is opaque, valid sub types are color + // and encapsulation. When sub type is color, first two bytes of the value field contain + // flags and last four bytes contains the value of the color. When sub type is encapsulation + // the first four bytes of value field are reserved and last two bytes carries the tunnel + // type from IANA's ETHER TYPES registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol + // type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth + // the valid sub type is extended_bandwidth. The first two bytes of the value field + // contains the AS number and the last four bytes contains the bandwidth in IEEE floating + // point format. When type is evpn the valid subtype is mac_address. In the value field + // the low-order bit of the first byte(Flags) is defined as the Sticky/static flag and + // may be set to 1, indicating the MAC address is static and cannot move. The second + // byte is reserved and the last four bytes contain the sequence number which is used + // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates + // occur for the same MAC address. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Reset() { - *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp{} +func (x *BgpV6EviVxlan) Reset() { + *x = BgpV6EviVxlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[132] + mi := &file_otg_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) String() string { +func (x *BgpV6EviVxlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoMessage() {} +func (*BgpV6EviVxlan) ProtoMessage() {} -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[132] +func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29164,300 +29460,123 @@ func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{132} +// Deprecated: Use BgpV6EviVxlan.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{133} } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetName() string { +func (x *BgpV6EviVxlan) GetBroadcastDomains() []*BgpV6EviVxlanBroadcastDomain { if x != nil { - return x.Name + return x.BroadcastDomains } - return "" + return nil } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetRefreshInterval() uint32 { - if x != nil && x.RefreshInterval != nil { - return *x.RefreshInterval +func (x *BgpV6EviVxlan) GetReplicationType() BgpV6EviVxlan_ReplicationType_Enum { + if x != nil && x.ReplicationType != nil { + return *x.ReplicationType + } + return BgpV6EviVxlan_ReplicationType_unspecified +} + +func (x *BgpV6EviVxlan) GetPmsiLabel() uint32 { + if x != nil && x.PmsiLabel != nil { + return *x.PmsiLabel } return 0 } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier +func (x *BgpV6EviVxlan) GetAdLabel() uint32 { + if x != nil && x.AdLabel != nil { + return *x.AdLabel } return 0 } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetReservationStyle() RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum { - if x != nil && x.ReservationStyle != nil { - return *x.ReservationStyle +func (x *BgpV6EviVxlan) GetRouteDistinguisher() *BgpRouteDistinguisher { + if x != nil { + return x.RouteDistinguisher } - return RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_unspecified + return nil } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetEnableFixedLabel() bool { - if x != nil && x.EnableFixedLabel != nil { - return *x.EnableFixedLabel +func (x *BgpV6EviVxlan) GetRouteTargetExport() []*BgpRouteTarget { + if x != nil { + return x.RouteTargetExport } - return false + return nil } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetFixedLabelValue() uint32 { - if x != nil && x.FixedLabelValue != nil { - return *x.FixedLabelValue +func (x *BgpV6EviVxlan) GetRouteTargetImport() []*BgpRouteTarget { + if x != nil { + return x.RouteTargetImport } - return 0 + return nil } -// Configuration for an RSVP Ingress point-to-point LSP. -type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpV6EviVxlan) GetL3RouteTargetExport() []*BgpRouteTarget { + if x != nil { + return x.L3RouteTargetExport + } + return nil +} - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // IPv4 address of the remote endpoint of the LSP. - // required = true - RemoteAddress string `protobuf:"bytes,2,opt,name=remote_address,json=remoteAddress,proto3" json:"remote_address,omitempty"` - // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. - // default = 1 - TunnelId *uint32 `protobuf:"varint,3,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` - // The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages. - // default = 1 - LspId *uint32 `protobuf:"varint,4,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` - // The time in seconds between successive transmissions of PATH Refreshes. The actual - // refresh interval is jittered by upto 50%. There is no specification specified maximum - // value. For clarity, setting the maximum to 1 hour. - // default = 30 - RefreshInterval *uint32 `protobuf:"varint,5,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` - // The number of missed RESV refreshes after which a recieving node should consider - // the LSP state to have timed out. There is no specification specified maximum value. - // Setting the maximum allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,6,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` - // The LSP id that will be used when creating a Make-Before-Break LSP when the active - // LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is - // using the backup_lsp_id, the new LSP created will toggle to use the lsp_id instead. - // default = 2 - BackupLspId *uint32 `protobuf:"varint,7,opt,name=backup_lsp_id,json=backupLspId,proto3,oneof" json:"backup_lsp_id,omitempty"` - // The amount of delay in milliseconds that an implementation should wait for before - // switching traffic to the new LSP created after a Make-Before-Break is done on an - // LSP. The default value is 0 which means to switch immediately. An implementation - // should support a minimum delay value of at least 50ms . There is no specification - // specified maximum value. Setting maximum allowed value to 1 minute. If a delay value - // is supplied which is lesser than the minimum delay value supported, a warning should - // be provided indicating that the minimum value of LSP switchover delay is automatically - // increased to the supported minimum value. This warning should be included in the - // list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' - // Response. - // default = 0 - LspSwitchoverDelay *uint32 `protobuf:"varint,8,opt,name=lsp_switchover_delay,json=lspSwitchoverDelay,proto3,oneof" json:"lsp_switchover_delay,omitempty"` - // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object - // in the Path Message sent for the LSP. - SessionAttribute *RsvpSessionAttribute `protobuf:"bytes,9,opt,name=session_attribute,json=sessionAttribute,proto3,oneof" json:"session_attribute,omitempty"` - // This contains the values of the fields to be included in the TSPEC object in the - // Path Message sent for the LSP. - Tspec *RsvpTspec `protobuf:"bytes,10,opt,name=tspec,proto3,oneof" json:"tspec,omitempty"` - // This contains the values of the fields to be included in the FAST_REROUTE object - // in the Path Message sent for the LSP. - // This is an optional object . If this attribute is not included , the FAST_REROUTE - // object will not be included. - FastReroute *RsvpFastReroute `protobuf:"bytes,11,opt,name=fast_reroute,json=fastReroute,proto3,oneof" json:"fast_reroute,omitempty"` - // This contains the values of the fields to be included in the ERO object in the Path - // Message sent for the LSP. - // This is an optional object . If this attribute is not included , the ERO object will - // not be included. - Ero *RsvpEro `protobuf:"bytes,12,opt,name=ero,proto3,oneof" json:"ero,omitempty"` -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Reset() { - *x = RsvpLspIpv4InterfaceP2PIngressIpv4Lsp{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoMessage() {} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[133] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{133} -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRemoteAddress() string { +func (x *BgpV6EviVxlan) GetL3RouteTargetImport() []*BgpRouteTarget { if x != nil { - return x.RemoteAddress - } - return "" -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTunnelId() uint32 { - if x != nil && x.TunnelId != nil { - return *x.TunnelId - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspId() uint32 { - if x != nil && x.LspId != nil { - return *x.LspId - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRefreshInterval() uint32 { - if x != nil && x.RefreshInterval != nil { - return *x.RefreshInterval - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetBackupLspId() uint32 { - if x != nil && x.BackupLspId != nil { - return *x.BackupLspId - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspSwitchoverDelay() uint32 { - if x != nil && x.LspSwitchoverDelay != nil { - return *x.LspSwitchoverDelay + return x.L3RouteTargetImport } - return 0 + return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetSessionAttribute() *RsvpSessionAttribute { +func (x *BgpV6EviVxlan) GetAdvanced() *BgpRouteAdvanced { if x != nil { - return x.SessionAttribute + return x.Advanced } return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTspec() *RsvpTspec { +func (x *BgpV6EviVxlan) GetCommunities() []*BgpCommunity { if x != nil { - return x.Tspec + return x.Communities } return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetFastReroute() *RsvpFastReroute { +func (x *BgpV6EviVxlan) GetExtCommunities() []*BgpExtCommunity { if x != nil { - return x.FastReroute + return x.ExtCommunities } return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetEro() *RsvpEro { +func (x *BgpV6EviVxlan) GetAsPath() *BgpAsPath { if x != nil { - return x.Ero + return x.AsPath } return nil } -// Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined -// in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are -// defined in RFC4090 (Fast Reroute). -type RsvpSessionAttribute struct { +// Configuration for Broadcast Domains per EVI. +type BgpV6EviVxlanBroadcastDomain struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE - // object in the Path Message for this LSP. - // default = True - AutoGenerateSessionName *bool `protobuf:"varint,1,opt,name=auto_generate_session_name,json=autoGenerateSessionName,proto3,oneof" json:"auto_generate_session_name,omitempty"` - // If auto_generate_session_name is set to 'false', then the value of this field is - // used to fill the Session Name field of the SESSION_ATTRIBUTE object in the Path Message - // for this LSP. It is suggested to include the Local IP, Remote IP, Tunnel ID and LSP - // ID in the auto-generated Session Name to ensure uniqueness of the name in the test. - // The maximum length of session name is 254 bytes. - SessionName *string `protobuf:"bytes,2,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` - // Specifies the value of the Setup Priority field. This controls whether the LSP should - // pre-empt existing LSP setup with certain Holding Priority if resource limitation - // is encountered when setting up the LSP. (e.g. bandwidth availability). The value - // 0 is the highest priority while 7 is the lowest. - // default = 7 - SetupPriority *uint32 `protobuf:"varint,3,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` - // Specifies the value of the Holding Priority field. This controls whether a new LSP - // being created with certain Setup Priority should pre-empt this LSP if resource limitation - // is encountered when setting up the LSP. (e.g. bandwidth availability). The value - // 0 is the highest priority while 7 is the lowest. - // default = 7 - HoldingPriority *uint32 `protobuf:"varint,4,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` - // This flag permits transit routers to use a local repair mechanism which may result - // in violation of the explicit route object. When a fault is detected on an adjacent - // downstream link or node, a transit router can reroute traffic for fast service restoration. - // default = False - LocalProtectionDesired *bool `protobuf:"varint,5,opt,name=local_protection_desired,json=localProtectionDesired,proto3,oneof" json:"local_protection_desired,omitempty"` - // This flag indicates that label information should be included when doing a route - // record. - // default = False - LabelRecordingDesired *bool `protobuf:"varint,6,opt,name=label_recording_desired,json=labelRecordingDesired,proto3,oneof" json:"label_recording_desired,omitempty"` - // This flag indicates that the tunnel ingress node may choose to reroute this tunnel - // without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) - // Style when responding with a Resv message. - // default = False - SeStyleDesired *bool `protobuf:"varint,7,opt,name=se_style_desired,json=seStyleDesired,proto3,oneof" json:"se_style_desired,omitempty"` - // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs - // along the protected LSP path that a backup path with a bandwidth guarantee is desired. - // This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object - // is included in the PATH message. If a FAST_REROUTE object is present in the Path - // message, then the bandwidth specified therein is to be guaranteed. - // default = False - BandwidthProtectionDesired *bool `protobuf:"varint,8,opt,name=bandwidth_protection_desired,json=bandwidthProtectionDesired,proto3,oneof" json:"bandwidth_protection_desired,omitempty"` - // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs - // along a protected LSP path that it is desired to have a backup path that bypasses - // at least the next node of the protected LSP. + // This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. + // + // Advertises following route - + // Type 2 - MAC/IP Advertisement Route. + CmacIpRange []*BgpCMacIpRange `protobuf:"bytes,1,rep,name=cmac_ip_range,json=cmacIpRange,proto3" json:"cmac_ip_range,omitempty"` + // The Ethernet Tag ID of the Broadcast Domain. + // default = 0 + EthernetTagId *uint32 `protobuf:"varint,2,opt,name=ethernet_tag_id,json=ethernetTagId,proto3,oneof" json:"ethernet_tag_id,omitempty"` + // VLAN-Aware service to be enabled or disabled. // default = False - NodeProtectionDesired *bool `protobuf:"varint,9,opt,name=node_protection_desired,json=nodeProtectionDesired,proto3,oneof" json:"node_protection_desired,omitempty"` - // This is an optional object. If included the extended SESSION_ATTRIBUTE object is - // sent in the Path message containing - // the additional fields included in this object. This contains a set of three bitmaps - // using which further constraints can be - // set on the path calculated for the LSP based on the Admin Group settings in the IGP - // (e.g ISIS or OSPF interface). - ResourceAffinities *RsvpResourceAffinities `protobuf:"bytes,10,opt,name=resource_affinities,json=resourceAffinities,proto3,oneof" json:"resource_affinities,omitempty"` + VlanAwareService *bool `protobuf:"varint,3,opt,name=vlan_aware_service,json=vlanAwareService,proto3,oneof" json:"vlan_aware_service,omitempty"` } -func (x *RsvpSessionAttribute) Reset() { - *x = RsvpSessionAttribute{} +func (x *BgpV6EviVxlanBroadcastDomain) Reset() { + *x = BgpV6EviVxlanBroadcastDomain{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29465,13 +29584,13 @@ func (x *RsvpSessionAttribute) Reset() { } } -func (x *RsvpSessionAttribute) String() string { +func (x *BgpV6EviVxlanBroadcastDomain) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpSessionAttribute) ProtoMessage() {} +func (*BgpV6EviVxlanBroadcastDomain) ProtoMessage() {} -func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { +func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29483,132 +29602,139 @@ func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpSessionAttribute.ProtoReflect.Descriptor instead. -func (*RsvpSessionAttribute) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpV6EviVxlanBroadcastDomain.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlanBroadcastDomain) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{134} } -func (x *RsvpSessionAttribute) GetAutoGenerateSessionName() bool { - if x != nil && x.AutoGenerateSessionName != nil { - return *x.AutoGenerateSessionName +func (x *BgpV6EviVxlanBroadcastDomain) GetCmacIpRange() []*BgpCMacIpRange { + if x != nil { + return x.CmacIpRange } - return false + return nil } -func (x *RsvpSessionAttribute) GetSessionName() string { - if x != nil && x.SessionName != nil { - return *x.SessionName +func (x *BgpV6EviVxlanBroadcastDomain) GetEthernetTagId() uint32 { + if x != nil && x.EthernetTagId != nil { + return *x.EthernetTagId } - return "" + return 0 } -func (x *RsvpSessionAttribute) GetSetupPriority() uint32 { - if x != nil && x.SetupPriority != nil { - return *x.SetupPriority +func (x *BgpV6EviVxlanBroadcastDomain) GetVlanAwareService() bool { + if x != nil && x.VlanAwareService != nil { + return *x.VlanAwareService } - return 0 + return false } -func (x *RsvpSessionAttribute) GetHoldingPriority() uint32 { - if x != nil && x.HoldingPriority != nil { - return *x.HoldingPriority - } - return 0 +// Description missing in models +type DeviceVxlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // IPv4 VXLAN Tunnels + V4Tunnels []*VxlanV4Tunnel `protobuf:"bytes,1,rep,name=v4_tunnels,json=v4Tunnels,proto3" json:"v4_tunnels,omitempty"` + // IPv6 VXLAN Tunnels + V6Tunnels []*VxlanV6Tunnel `protobuf:"bytes,2,rep,name=v6_tunnels,json=v6Tunnels,proto3" json:"v6_tunnels,omitempty"` } -func (x *RsvpSessionAttribute) GetLocalProtectionDesired() bool { - if x != nil && x.LocalProtectionDesired != nil { - return *x.LocalProtectionDesired +func (x *DeviceVxlan) Reset() { + *x = DeviceVxlan{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -func (x *RsvpSessionAttribute) GetLabelRecordingDesired() bool { - if x != nil && x.LabelRecordingDesired != nil { - return *x.LabelRecordingDesired - } - return false +func (x *DeviceVxlan) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *RsvpSessionAttribute) GetSeStyleDesired() bool { - if x != nil && x.SeStyleDesired != nil { - return *x.SeStyleDesired +func (*DeviceVxlan) ProtoMessage() {} + +func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[135] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *RsvpSessionAttribute) GetBandwidthProtectionDesired() bool { - if x != nil && x.BandwidthProtectionDesired != nil { - return *x.BandwidthProtectionDesired - } - return false +// Deprecated: Use DeviceVxlan.ProtoReflect.Descriptor instead. +func (*DeviceVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{135} } -func (x *RsvpSessionAttribute) GetNodeProtectionDesired() bool { - if x != nil && x.NodeProtectionDesired != nil { - return *x.NodeProtectionDesired +func (x *DeviceVxlan) GetV4Tunnels() []*VxlanV4Tunnel { + if x != nil { + return x.V4Tunnels } - return false + return nil } -func (x *RsvpSessionAttribute) GetResourceAffinities() *RsvpResourceAffinities { +func (x *DeviceVxlan) GetV6Tunnels() []*VxlanV6Tunnel { if x != nil { - return x.ResourceAffinities + return x.V6Tunnels } return nil } -// This is an optional object. If included, the extended SESSION_ATTRIBUTE object is -// sent in the Path message containing -// the additional fields included in this object. This contains a set of three bitmaps -// using which further constraints can be -// set on the path calculated for the LSP based on the Admin Group settings in the IGP -// (e.g ISIS or OSPF interface). -type RsvpResourceAffinities struct { +// Configuration and operational state parameters relating to IPv4 VXLAN tunnel end-point +// interface. +type VxlanV4Tunnel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - ExcludeAny *string `protobuf:"bytes,1,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. - // default = 0 - IncludeAny *string `protobuf:"bytes,2,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - IncludeAll *string `protobuf:"bytes,3,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` + // Determines the source interface. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // + // required = true + SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` + // Description missing in models + DestinationIpMode *VxlanV4TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` + // VXLAN Network Identifier (VNI) to distinguish network instances on the wire + // required = true + Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` } -func (x *RsvpResourceAffinities) Reset() { - *x = RsvpResourceAffinities{} +func (x *VxlanV4Tunnel) Reset() { + *x = VxlanV4Tunnel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[135] + mi := &file_otg_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpResourceAffinities) String() string { +func (x *VxlanV4Tunnel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpResourceAffinities) ProtoMessage() {} +func (*VxlanV4Tunnel) ProtoMessage() {} -func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[135] +func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29619,78 +29745,88 @@ func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpResourceAffinities.ProtoReflect.Descriptor instead. -func (*RsvpResourceAffinities) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{135} +// Deprecated: Use VxlanV4Tunnel.ProtoReflect.Descriptor instead. +func (*VxlanV4Tunnel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{136} } -func (x *RsvpResourceAffinities) GetExcludeAny() string { - if x != nil && x.ExcludeAny != nil { - return *x.ExcludeAny +func (x *VxlanV4Tunnel) GetSourceInterface() string { + if x != nil { + return x.SourceInterface } return "" } -func (x *RsvpResourceAffinities) GetIncludeAny() string { - if x != nil && x.IncludeAny != nil { - return *x.IncludeAny +func (x *VxlanV4Tunnel) GetDestinationIpMode() *VxlanV4TunnelDestinationIPMode { + if x != nil { + return x.DestinationIpMode } - return "" + return nil } -func (x *RsvpResourceAffinities) GetIncludeAll() string { - if x != nil && x.IncludeAll != nil { - return *x.IncludeAll +func (x *VxlanV4Tunnel) GetVni() uint32 { + if x != nil { + return x.Vni + } + return 0 +} + +func (x *VxlanV4Tunnel) GetName() string { + if x != nil { + return x.Name } return "" } -// Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these -// parameters is defined in RFC2215. -type RsvpTspec struct { +// Configuration and operational state parameters relating to IPv6 VXLAN tunnel end-point +// interface. +type VxlanV6Tunnel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The rate of the traffic to be carried in this LSP in bytes per second. This is part - // of the Token Bucket specification defined for a traffic flow defined in RFC2215. - // default = 0 - TokenBucketRate *float32 `protobuf:"fixed32,1,opt,name=token_bucket_rate,json=tokenBucketRate,proto3,oneof" json:"token_bucket_rate,omitempty"` - // The depth of the token bucket in bytes used to specify the Token Bucket characteristics - // of the traffic to be carried in the LSP. This is part of the Token Bucket specification - // defined for a traffic flow defined in RFC2215. - // default = 0 - TokenBucketSize *float32 `protobuf:"fixed32,2,opt,name=token_bucket_size,json=tokenBucketSize,proto3,oneof" json:"token_bucket_size,omitempty"` - // The peak data rate of the traffic in bytes per second used to specify the Token Bucket - // characteristics of the traffic to be carried in the LSP. This is part of the Token - // Bucket specification defined for a traffic flow defined in RFC2215. - // default = 0 - PeakDataRate *float32 `protobuf:"fixed32,3,opt,name=peak_data_rate,json=peakDataRate,proto3,oneof" json:"peak_data_rate,omitempty"` - // Specifies the minium length of packet frames that will be policed. - // default = 0 - MinimumPolicedUnit *uint32 `protobuf:"varint,4,opt,name=minimum_policed_unit,json=minimumPolicedUnit,proto3,oneof" json:"minimum_policed_unit,omitempty"` - // Specifies the maximum length of packet frames that will be policed. - // default = 0 - MaximumPolicedUnit *uint32 `protobuf:"varint,5,opt,name=maximum_policed_unit,json=maximumPolicedUnit,proto3,oneof" json:"maximum_policed_unit,omitempty"` + // Determines the source interface. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // required = true + SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` + // Description missing in models + DestinationIpMode *VxlanV6TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3,oneof" json:"destination_ip_mode,omitempty"` + // VXLAN Network Identifier (VNI) to distinguish network instances on the wire + // required = true + Vni uint32 `protobuf:"varint,3,opt,name=vni,proto3" json:"vni,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` } -func (x *RsvpTspec) Reset() { - *x = RsvpTspec{} +func (x *VxlanV6Tunnel) Reset() { + *x = VxlanV6Tunnel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[136] + mi := &file_otg_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpTspec) String() string { +func (x *VxlanV6Tunnel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpTspec) ProtoMessage() {} +func (*VxlanV6Tunnel) ProtoMessage() {} -func (x *RsvpTspec) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[136] +func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29701,119 +29837,71 @@ func (x *RsvpTspec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpTspec.ProtoReflect.Descriptor instead. -func (*RsvpTspec) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{136} +// Deprecated: Use VxlanV6Tunnel.ProtoReflect.Descriptor instead. +func (*VxlanV6Tunnel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{137} } -func (x *RsvpTspec) GetTokenBucketRate() float32 { - if x != nil && x.TokenBucketRate != nil { - return *x.TokenBucketRate +func (x *VxlanV6Tunnel) GetSourceInterface() string { + if x != nil { + return x.SourceInterface } - return 0 + return "" } -func (x *RsvpTspec) GetTokenBucketSize() float32 { - if x != nil && x.TokenBucketSize != nil { - return *x.TokenBucketSize +func (x *VxlanV6Tunnel) GetDestinationIpMode() *VxlanV6TunnelDestinationIPMode { + if x != nil { + return x.DestinationIpMode } - return 0 + return nil } -func (x *RsvpTspec) GetPeakDataRate() float32 { - if x != nil && x.PeakDataRate != nil { - return *x.PeakDataRate +func (x *VxlanV6Tunnel) GetVni() uint32 { + if x != nil { + return x.Vni } return 0 } -func (x *RsvpTspec) GetMinimumPolicedUnit() uint32 { - if x != nil && x.MinimumPolicedUnit != nil { - return *x.MinimumPolicedUnit - } - return 0 -} - -func (x *RsvpTspec) GetMaximumPolicedUnit() uint32 { - if x != nil && x.MaximumPolicedUnit != nil { - return *x.MaximumPolicedUnit +func (x *VxlanV6Tunnel) GetName() string { + if x != nil { + return x.Name } - return 0 + return "" } -// Configuration for the optional RSVP-TE FAST_REROUTE object included in Path Messages -// as defined in RFC4090. -type RsvpFastReroute struct { +// Communication mode between the VTEPs, either unicast or multicast. +type VxlanV4TunnelDestinationIPMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Specifies the value of the Setup Priority field. This controls whether the backup - // LSP should pre-empt existing LSP that is setup with certain Holding Priority. While - // setting up a backup LSP, preemption of existing LSP can happen if resource limitation - // is encountered (e.g bandwidth availability). - // default = 7 - SetupPriority *uint32 `protobuf:"varint,1,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` - // Specifies the value of the Holding Priority field. This controls whether a new LSP - // being created with certain Setup Priority should pre-empt this LSP set up with this - // Holding Priority. While setting up a new LSP, preemption of existing LSP can happen - // if resource limitation is encountered (e.g bandwidth availability). - // default = 7 - HoldingPriority *uint32 `protobuf:"varint,2,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` - // Specifies the value of the Hop Limit field. This controls the maximum number of hops - // the LSP should traverse to reach the LSP end-point. - // default = 3 - HopLimit *uint32 `protobuf:"varint,3,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` - // Specifies the value of the Bandwidth field as a 32-bit IEEE floating point integer, - // in bytes per second, as desired for the LSP. - // default = 0 - Bandwidth *float32 `protobuf:"fixed32,4,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - ExcludeAny *string `protobuf:"bytes,5,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. - // default = 0 - IncludeAny *string `protobuf:"bytes,6,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - IncludeAll *string `protobuf:"bytes,7,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` - // Requests protection via the one-to-one backup method. - // default = False - OneToOneBackupDesired *bool `protobuf:"varint,8,opt,name=one_to_one_backup_desired,json=oneToOneBackupDesired,proto3,oneof" json:"one_to_one_backup_desired,omitempty"` - // Requests protection via the facility backup method. - // default = False - FacilityBackupDesired *bool `protobuf:"varint,9,opt,name=facility_backup_desired,json=facilityBackupDesired,proto3,oneof" json:"facility_backup_desired,omitempty"` + // unicast or multicast + // default = Choice.Enum.multicast + Choice *VxlanV4TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV4TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Unicast *VxlanV4TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` + // Description missing in models + Multicast *VxlanV4TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` } -func (x *RsvpFastReroute) Reset() { - *x = RsvpFastReroute{} +func (x *VxlanV4TunnelDestinationIPMode) Reset() { + *x = VxlanV4TunnelDestinationIPMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[137] + mi := &file_otg_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpFastReroute) String() string { +func (x *VxlanV4TunnelDestinationIPMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpFastReroute) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPMode) ProtoMessage() {} -func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[137] +func (x *VxlanV4TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29824,115 +29912,64 @@ func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpFastReroute.ProtoReflect.Descriptor instead. -func (*RsvpFastReroute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{137} -} - -func (x *RsvpFastReroute) GetSetupPriority() uint32 { - if x != nil && x.SetupPriority != nil { - return *x.SetupPriority - } - return 0 -} - -func (x *RsvpFastReroute) GetHoldingPriority() uint32 { - if x != nil && x.HoldingPriority != nil { - return *x.HoldingPriority - } - return 0 -} - -func (x *RsvpFastReroute) GetHopLimit() uint32 { - if x != nil && x.HopLimit != nil { - return *x.HopLimit - } - return 0 -} - -func (x *RsvpFastReroute) GetBandwidth() float32 { - if x != nil && x.Bandwidth != nil { - return *x.Bandwidth - } - return 0 -} - -func (x *RsvpFastReroute) GetExcludeAny() string { - if x != nil && x.ExcludeAny != nil { - return *x.ExcludeAny - } - return "" -} - -func (x *RsvpFastReroute) GetIncludeAny() string { - if x != nil && x.IncludeAny != nil { - return *x.IncludeAny - } - return "" +// Deprecated: Use VxlanV4TunnelDestinationIPMode.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{138} } -func (x *RsvpFastReroute) GetIncludeAll() string { - if x != nil && x.IncludeAll != nil { - return *x.IncludeAll +func (x *VxlanV4TunnelDestinationIPMode) GetChoice() VxlanV4TunnelDestinationIPMode_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return VxlanV4TunnelDestinationIPMode_Choice_unspecified } -func (x *RsvpFastReroute) GetOneToOneBackupDesired() bool { - if x != nil && x.OneToOneBackupDesired != nil { - return *x.OneToOneBackupDesired +func (x *VxlanV4TunnelDestinationIPMode) GetUnicast() *VxlanV4TunnelDestinationIPModeUnicast { + if x != nil { + return x.Unicast } - return false + return nil } -func (x *RsvpFastReroute) GetFacilityBackupDesired() bool { - if x != nil && x.FacilityBackupDesired != nil { - return *x.FacilityBackupDesired +func (x *VxlanV4TunnelDestinationIPMode) GetMulticast() *VxlanV4TunnelDestinationIPModeMulticast { + if x != nil { + return x.Multicast } - return false + return nil } -// Configuration for the optional RSVP-TE explicit route object(ERO) object included -// in Path Messages. -type RsvpEro struct { +// Communication mode between the VTEPs, either unicast or multicast. +type VxlanV6TunnelDestinationIPMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines whether the IP address of the RSVP neighbor should be added as an ERO - // sub-object. If it is to be included, it can be included as a Loose hop or as a Strict - // hop. - // default = PrependNeighborIp.Enum.prepend_loose - PrependNeighborIp *RsvpEro_PrependNeighborIp_Enum `protobuf:"varint,1,opt,name=prepend_neighbor_ip,json=prependNeighborIp,proto3,enum=otg.RsvpEro_PrependNeighborIp_Enum,oneof" json:"prepend_neighbor_ip,omitempty"` - // If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict', then set - // this value as the prefix length of the ERO sub-object containing egress IP address. - // - // default = 32 - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate - // hops to be traversed by the LSP while being forwarded towards the egress endpoint. - // These sub-objects are included after the optional sub-object containing IP address - // of egress endpoint of the LSP (when present). - Subobjects []*RsvpEroSubobject `protobuf:"bytes,3,rep,name=subobjects,proto3" json:"subobjects,omitempty"` + // unicast or multicast + // default = Choice.Enum.multicast + Choice *VxlanV6TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV6TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Unicast *VxlanV6TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3,oneof" json:"unicast,omitempty"` + // Description missing in models + Multicast *VxlanV6TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3,oneof" json:"multicast,omitempty"` } -func (x *RsvpEro) Reset() { - *x = RsvpEro{} +func (x *VxlanV6TunnelDestinationIPMode) Reset() { + *x = VxlanV6TunnelDestinationIPMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[138] + mi := &file_otg_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEro) String() string { +func (x *VxlanV6TunnelDestinationIPMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEro) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPMode) ProtoMessage() {} -func (x *RsvpEro) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[138] +func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29943,76 +29980,59 @@ func (x *RsvpEro) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEro.ProtoReflect.Descriptor instead. -func (*RsvpEro) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{138} +// Deprecated: Use VxlanV6TunnelDestinationIPMode.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{139} } -func (x *RsvpEro) GetPrependNeighborIp() RsvpEro_PrependNeighborIp_Enum { - if x != nil && x.PrependNeighborIp != nil { - return *x.PrependNeighborIp +func (x *VxlanV6TunnelDestinationIPMode) GetChoice() VxlanV6TunnelDestinationIPMode_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return RsvpEro_PrependNeighborIp_unspecified + return VxlanV6TunnelDestinationIPMode_Choice_unspecified } -func (x *RsvpEro) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *VxlanV6TunnelDestinationIPMode) GetUnicast() *VxlanV6TunnelDestinationIPModeUnicast { + if x != nil { + return x.Unicast } - return 0 + return nil } -func (x *RsvpEro) GetSubobjects() []*RsvpEroSubobject { +func (x *VxlanV6TunnelDestinationIPMode) GetMulticast() *VxlanV6TunnelDestinationIPModeMulticast { if x != nil { - return x.Subobjects + return x.Multicast } return nil } -// Configuration for the ERO sub-object. -type RsvpEroSubobject struct { +// Description missing in models +type VxlanV4TunnelDestinationIPModeUnicast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of the ERO sub-object, one of IPv4 Address or AS Number. - // default = Type.Enum.ipv4 - Type *RsvpEroSubobject_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.RsvpEroSubobject_Type_Enum,oneof" json:"type,omitempty"` - // IPv4 address that this LSP should traverse through. This field is applicable only - // if the value of 'type' is set to 'ipv4'. - // default = 0.0.0.0 - Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // Prefix length for the IPv4 address in the ERO sub-object. This field is applicable - // only if the value of 'type' is set to 'ipv4'. - // default = 32 - PrefixLength *uint32 `protobuf:"varint,3,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // Autonomous System number to be set in the ERO sub-object that this LSP should traverse - // through. This field is applicable only if the value of 'type' is set to 'as_number'. - // Note that as per RFC3209, 4-byte AS encoding is not supported. - // default = 0 - AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // The hop type of the ERO sub-object, one of Strict or Loose. - // default = HopType.Enum.loose - HopType *RsvpEroSubobject_HopType_Enum `protobuf:"varint,5,opt,name=hop_type,json=hopType,proto3,enum=otg.RsvpEroSubobject_HopType_Enum,oneof" json:"hop_type,omitempty"` + // List of VTEPs for member VNI(VXLAN Network Identifier) + Vteps []*VxlanV4TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` } -func (x *RsvpEroSubobject) Reset() { - *x = RsvpEroSubobject{} +func (x *VxlanV4TunnelDestinationIPModeUnicast) Reset() { + *x = VxlanV4TunnelDestinationIPModeUnicast{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[139] + mi := &file_otg_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject) String() string { +func (x *VxlanV4TunnelDestinationIPModeUnicast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeUnicast) ProtoMessage() {} -func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[139] +func (x *VxlanV4TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30023,115 +30043,45 @@ func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139} -} - -func (x *RsvpEroSubobject) GetType() RsvpEroSubobject_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type - } - return RsvpEroSubobject_Type_unspecified -} - -func (x *RsvpEroSubobject) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address - } - return "" -} - -func (x *RsvpEroSubobject) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 -} - -func (x *RsvpEroSubobject) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber - } - return 0 +// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{140} } -func (x *RsvpEroSubobject) GetHopType() RsvpEroSubobject_HopType_Enum { - if x != nil && x.HopType != nil { - return *x.HopType +func (x *VxlanV4TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV4TunnelDestinationIPModeUnicastVtep { + if x != nil { + return x.Vteps } - return RsvpEroSubobject_HopType_unspecified + return nil } -// A high level data plane traffic flow. -type Flow struct { +// Description missing in models +type VxlanV6TunnelDestinationIPModeUnicast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The transmit and receive endpoints. - // required = true - TxRx *FlowTxRx `protobuf:"bytes,1,opt,name=tx_rx,json=txRx,proto3" json:"tx_rx,omitempty"` - // The list of protocol headers defining the shape of all - // intended packets in corresponding flow as it is transmitted - // by traffic-generator port. - // - // The order of protocol headers assigned to the list is the - // order they will appear on the wire. - // - // In the case of an empty list the keyword/value of minItems: 1 - // indicates that an implementation MUST provide at least one - // Flow.Header object. - // - // The default value for the Flow.Header choice property is ethernet - // which will result in an implementation by default providing at least - // one ethernet packet header. - Packet []*FlowHeader `protobuf:"bytes,2,rep,name=packet,proto3" json:"packet,omitempty"` - // Under Review: The packet header schema for egress tracking currently exposes unwanted - // fields. The query structure for tagged metrics inside flows metrics requires documenting - // expected response format. - // - // Under Review: The packet header schema for egress tracking currently exposes unwanted - // fields. The query structure for tagged metrics inside flows metrics requires documenting - // expected response format. - // - // The list of protocol headers defining the shape of all - // intended packets in corresponding flow as it is received - // by traffic-generator port. - // - // For all protocol headers, only the `metric_tags` property is configurable. - EgressPacket []*FlowHeader `protobuf:"bytes,9,rep,name=egress_packet,json=egressPacket,proto3" json:"egress_packet,omitempty"` - // The size of the packets. - Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3,oneof" json:"size,omitempty"` - // The transmit rate of the packets. - Rate *FlowRate `protobuf:"bytes,4,opt,name=rate,proto3,oneof" json:"rate,omitempty"` - // The transmit duration of the packets. - Duration *FlowDuration `protobuf:"bytes,5,opt,name=duration,proto3,oneof" json:"duration,omitempty"` - // Flow metrics. - Metrics *FlowMetrics `protobuf:"bytes,6,opt,name=metrics,proto3,oneof" json:"metrics,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + // List of VTEPs for member VNI(VXLAN Network Identifier) + Vteps []*VxlanV6TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` } -func (x *Flow) Reset() { - *x = Flow{} +func (x *VxlanV6TunnelDestinationIPModeUnicast) Reset() { + *x = VxlanV6TunnelDestinationIPModeUnicast{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[140] + mi := &file_otg_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Flow) String() string { +func (x *VxlanV6TunnelDestinationIPModeUnicast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Flow) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeUnicast) ProtoMessage() {} -func (x *Flow) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[140] +func (x *VxlanV6TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30142,100 +30092,113 @@ func (x *Flow) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Flow.ProtoReflect.Descriptor instead. -func (*Flow) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{140} +// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{141} } -func (x *Flow) GetTxRx() *FlowTxRx { +func (x *VxlanV6TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV6TunnelDestinationIPModeUnicastVtep { if x != nil { - return x.TxRx + return x.Vteps } return nil } -func (x *Flow) GetPacket() []*FlowHeader { - if x != nil { - return x.Packet - } - return nil +// Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated +// MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request +// for another end-host IP address, its local VTEP intercepts the ARP request and checks +// for the ARP-resolved IP address in its ARP suppression cache table. If it finds +// a match, the local VTEP sends an ARP response on behalf of the remote end host. +type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Remote VM MAC address bound to Remote VM IPv4 address + RemoteVmMac *string `protobuf:"bytes,1,opt,name=remote_vm_mac,json=remoteVmMac,proto3,oneof" json:"remote_vm_mac,omitempty"` + // Remote VM IPv4 address + RemoteVmIpv4 *string `protobuf:"bytes,2,opt,name=remote_vm_ipv4,json=remoteVmIpv4,proto3,oneof" json:"remote_vm_ipv4,omitempty"` } -func (x *Flow) GetEgressPacket() []*FlowHeader { - if x != nil { - return x.EgressPacket +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Reset() { + *x = VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *Flow) GetSize() *FlowSize { - if x != nil { - return x.Size - } - return nil +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *Flow) GetRate() *FlowRate { - if x != nil { - return x.Rate +func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoMessage() {} + +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[142] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *Flow) GetDuration() *FlowDuration { - if x != nil { - return x.Duration - } - return nil +// Deprecated: Use VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.ProtoReflect.Descriptor instead. +func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{142} } -func (x *Flow) GetMetrics() *FlowMetrics { - if x != nil { - return x.Metrics +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmMac() string { + if x != nil && x.RemoteVmMac != nil { + return *x.RemoteVmMac } - return nil + return "" } -func (x *Flow) GetName() string { - if x != nil { - return x.Name +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmIpv4() string { + if x != nil && x.RemoteVmIpv4 != nil { + return *x.RemoteVmIpv4 } return "" } -// A container for different types of transmit and receive -// endpoint containers. -type FlowTxRx struct { +// VTEP (VXLAN Tunnel End Point (VTEP)) parameters +type VxlanV4TunnelDestinationIPModeUnicastVtep struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of transmit and receive container used by the flow. - // default = Choice.Enum.port - Choice *FlowTxRx_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowTxRx_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Port *FlowPort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` - // Description missing in models - Device *FlowRouter `protobuf:"bytes,3,opt,name=device,proto3,oneof" json:"device,omitempty"` + // Remote VXLAN Tunnel End Point address + RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` + // Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated + // MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request + // for another end-host IP address, its local VTEP intercepts the ARP request and checks + // for the ARP-resolved IP address in its ARP suppression cache table. If it finds + // a match, the local VTEP sends an ARP response on behalf of the remote end host. + ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` } -func (x *FlowTxRx) Reset() { - *x = FlowTxRx{} +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) Reset() { + *x = VxlanV4TunnelDestinationIPModeUnicastVtep{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[141] + mi := &file_otg_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTxRx) String() string { +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTxRx) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} -func (x *FlowTxRx) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[141] +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30246,99 +30209,58 @@ func (x *FlowTxRx) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTxRx.ProtoReflect.Descriptor instead. -func (*FlowTxRx) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141} -} - -func (x *FlowTxRx) GetChoice() FlowTxRx_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowTxRx_Choice_unspecified +// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{143} } -func (x *FlowTxRx) GetPort() *FlowPort { - if x != nil { - return x.Port +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { + if x != nil && x.RemoteVtepAddress != nil { + return *x.RemoteVtepAddress } - return nil + return "" } -func (x *FlowTxRx) GetDevice() *FlowRouter { +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { if x != nil { - return x.Device + return x.ArpSuppressionCache } return nil } -// A container for a transmit port and 0..n intended receive ports. -// When assigning this container to a flow the flows's -// packet headers will not be populated with any address resolution -// information such as source and/or destination addresses. -// For example Flow.Ethernet dst mac address values will be defaulted to 0. -// For full control over the Flow.properties.packet header contents use this -// container. -type FlowPort struct { +// VTEP (VXLAN Tunnel End Point (VTEP)) parameters +type VxlanV6TunnelDestinationIPModeUnicastVtep struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of a port that is the transmit port. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // required = true - TxName string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3" json:"tx_name,omitempty"` - // Deprecated: This property is deprecated in favor of property rx_names - // - // Deprecated: This property is deprecated in favor of property rx_names - // - // The unique name of a port that is the intended receive port. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - RxName *string `protobuf:"bytes,2,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` - // Unique name of ports or lags that are intended receive endpoints. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` + // Remote VXLAN Tunnel End Point address + RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` + // Each VTEP maintains an ARP suppression cache table for known IP hosts and their associated + // MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request + // for another end-host IP address, its local VTEP intercepts the ARP request and checks + // for the ARP-resolved IP address in its ARP suppression cache table. If it finds + // a match, the local VTEP sends an ARP response on behalf of the remote end host. + ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` } -func (x *FlowPort) Reset() { - *x = FlowPort{} +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) Reset() { + *x = VxlanV6TunnelDestinationIPModeUnicastVtep{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[142] + mi := &file_otg_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPort) String() string { +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPort) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} -func (x *FlowPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[142] +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30349,149 +30271,52 @@ func (x *FlowPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPort.ProtoReflect.Descriptor instead. -func (*FlowPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{142} -} - -func (x *FlowPort) GetTxName() string { - if x != nil { - return x.TxName - } - return "" +// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{144} } -func (x *FlowPort) GetRxName() string { - if x != nil && x.RxName != nil { - return *x.RxName +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { + if x != nil && x.RemoteVtepAddress != nil { + return *x.RemoteVtepAddress } return "" } -func (x *FlowPort) GetRxNames() []string { +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { if x != nil { - return x.RxNames + return x.ArpSuppressionCache } return nil } -// A container for declaring a map of 1..n transmit devices to 1..n receive devices. -// This allows for a single flow to have different tx to rx device flows such as a -// single one to one map or a many to many map. -type FlowRouter struct { +// Multicast Group address for member VNI(VXLAN Network Identifier) +type VxlanV4TunnelDestinationIPModeMulticast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the intent of creating traffic sub-flow(s) between the device - // endpoints, from the entities of tx_names to the entities of rx_names - // - // to derive how auto packet fields can be populated with - // the actual value(s) by the implementation. - // - // The one_to_one mode creates traffic sub-flow(s) between each device endpoint - // pair in - // tx_names to rx_names by index. - // The length of tx_names and rx_names MUST be the same. - // The same device name can be repeated multiple times in tx_names or rx_names, in any - // order to create desired meshing between device(s). - // For 2 values in tx_names and 2 values in rx_names, 2 device endpoint pairs would - // be generated (each pair representing a traffic sub-flow). - // - // The mesh mode creates traffic sub-flow(s) between each value in tx_names to - // every value in rx_names, forming the device endpoint pair(s). - // For 2 values in tx_names and 3 values in rx_names, generated device endpoint pairs - // would be 2x3=6. - // - // A generated device endpoint pair with same device endpoint name for both transmit - // & receive device endpoint MUST raise an error. - // - // Packet fields of type auto would be populated with one value for each device - // endpoint pair (representing the traffic sub-flow). - // The value would be determined considering transmit & receive device of the sub-flow. - // And the sequence of the populated value(s) - // would be in the order of generated device endpoint pair(s). - // If 2 device endpoint pairs are generated (based on mode, tx_names and rx_names), - // say (d1 to d3) and (d2 to d3), and ethernet.dst is set as auto, then - // the auto field would be replaced by the implementation with a sequence of - // 2 values, [v1,v2] where - // v1 is determined using context (d1,d3) and v2 using context (d2,d3). - // The final outcome is that packets generated on the wire will contain the values v1,v2,v1,... - // for ethernet.dst field. Any non-auto packet fields - // should be configured accordingly. For example, non-auto packet field ethernet.src - // can be configured with values [u1, u2], where - // u1 & u2 are source MAC of the connected interface of device d1 and d2 respectively. - // Then packets on the wire will contain correct value pairs - // (u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst) fields. - // default = Mode.Enum.mesh - Mode *FlowRouter_Mode_Enum `protobuf:"varint,1,opt,name=mode,proto3,enum=otg.FlowRouter_Mode_Enum,oneof" json:"mode,omitempty"` - // TBD - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - TxNames []string `protobuf:"bytes,2,rep,name=tx_names,json=txNames,proto3" json:"tx_names,omitempty"` - // TBD - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` + // IPv4 Multicast address + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` } -func (x *FlowRouter) Reset() { - *x = FlowRouter{} +func (x *VxlanV4TunnelDestinationIPModeMulticast) Reset() { + *x = VxlanV4TunnelDestinationIPModeMulticast{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[143] + mi := &file_otg_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRouter) String() string { +func (x *VxlanV4TunnelDestinationIPModeMulticast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRouter) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeMulticast) ProtoMessage() {} -func (x *FlowRouter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[143] +func (x *VxlanV4TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30502,99 +30327,45 @@ func (x *FlowRouter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRouter.ProtoReflect.Descriptor instead. -func (*FlowRouter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143} -} - -func (x *FlowRouter) GetMode() FlowRouter_Mode_Enum { - if x != nil && x.Mode != nil { - return *x.Mode - } - return FlowRouter_Mode_unspecified -} - -func (x *FlowRouter) GetTxNames() []string { - if x != nil { - return x.TxNames - } - return nil +// Deprecated: Use VxlanV4TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{145} } -func (x *FlowRouter) GetRxNames() []string { - if x != nil { - return x.RxNames +func (x *VxlanV4TunnelDestinationIPModeMulticast) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return nil + return "" } -// Configuration for all traffic packet headers -type FlowHeader struct { +// Multicast Group address for member VNI(VXLAN Network Identifier) +type VxlanV6TunnelDestinationIPModeMulticast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The available types of flow headers. If one is not provided the - // default ethernet packet header MUST be provided. - // default = Choice.Enum.ethernet - Choice *FlowHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowHeader_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Custom *FlowCustom `protobuf:"bytes,2,opt,name=custom,proto3,oneof" json:"custom,omitempty"` - // Description missing in models - Ethernet *FlowEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3,oneof" json:"ethernet,omitempty"` - // Description missing in models - Vlan *FlowVlan `protobuf:"bytes,4,opt,name=vlan,proto3,oneof" json:"vlan,omitempty"` - // Description missing in models - Vxlan *FlowVxlan `protobuf:"bytes,5,opt,name=vxlan,proto3,oneof" json:"vxlan,omitempty"` - // Description missing in models - Ipv4 *FlowIpv4 `protobuf:"bytes,6,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *FlowIpv6 `protobuf:"bytes,7,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` - // Description missing in models - Pfcpause *FlowPfcPause `protobuf:"bytes,8,opt,name=pfcpause,proto3,oneof" json:"pfcpause,omitempty"` - // Description missing in models - Ethernetpause *FlowEthernetPause `protobuf:"bytes,9,opt,name=ethernetpause,proto3,oneof" json:"ethernetpause,omitempty"` - // Description missing in models - Tcp *FlowTcp `protobuf:"bytes,10,opt,name=tcp,proto3,oneof" json:"tcp,omitempty"` - // Description missing in models - Udp *FlowUdp `protobuf:"bytes,11,opt,name=udp,proto3,oneof" json:"udp,omitempty"` - // Description missing in models - Gre *FlowGre `protobuf:"bytes,12,opt,name=gre,proto3,oneof" json:"gre,omitempty"` - // Description missing in models - Gtpv1 *FlowGtpv1 `protobuf:"bytes,13,opt,name=gtpv1,proto3,oneof" json:"gtpv1,omitempty"` - // Description missing in models - Gtpv2 *FlowGtpv2 `protobuf:"bytes,14,opt,name=gtpv2,proto3,oneof" json:"gtpv2,omitempty"` - // Description missing in models - Arp *FlowArp `protobuf:"bytes,15,opt,name=arp,proto3,oneof" json:"arp,omitempty"` - // Description missing in models - Icmp *FlowIcmp `protobuf:"bytes,16,opt,name=icmp,proto3,oneof" json:"icmp,omitempty"` - // Description missing in models - Icmpv6 *FlowIcmpv6 `protobuf:"bytes,17,opt,name=icmpv6,proto3,oneof" json:"icmpv6,omitempty"` - // Description missing in models - Ppp *FlowPpp `protobuf:"bytes,18,opt,name=ppp,proto3,oneof" json:"ppp,omitempty"` - // Description missing in models - Igmpv1 *FlowIgmpv1 `protobuf:"bytes,19,opt,name=igmpv1,proto3,oneof" json:"igmpv1,omitempty"` - // Description missing in models - Mpls *FlowMpls `protobuf:"bytes,20,opt,name=mpls,proto3,oneof" json:"mpls,omitempty"` + // IPv6 Multicast address + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` } -func (x *FlowHeader) Reset() { - *x = FlowHeader{} +func (x *VxlanV6TunnelDestinationIPModeMulticast) Reset() { + *x = VxlanV6TunnelDestinationIPModeMulticast{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[144] + mi := &file_otg_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowHeader) String() string { +func (x *VxlanV6TunnelDestinationIPModeMulticast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowHeader) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeMulticast) ProtoMessage() {} -func (x *FlowHeader) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[144] +func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30605,185 +30376,302 @@ func (x *FlowHeader) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowHeader.ProtoReflect.Descriptor instead. -func (*FlowHeader) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{144} +// Deprecated: Use VxlanV6TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{146} } -func (x *FlowHeader) GetChoice() FlowHeader_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *VxlanV6TunnelDestinationIPModeMulticast) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return FlowHeader_Choice_unspecified + return "" } -func (x *FlowHeader) GetCustom() *FlowCustom { - if x != nil { - return x.Custom - } - return nil -} +// Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, +// currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related +// specifications. +type DeviceRsvp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowHeader) GetEthernet() *FlowEthernet { - if x != nil { - return x.Ethernet - } - return nil + // List of IPv4 RSVP connected interfaces. At least one interface should be present + // for device connected to the DUT. For unconnected devices, this array must be empty. + Ipv4Interfaces []*RsvpIpv4Interface `protobuf:"bytes,1,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` + // List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress + // endpoints. + LspIpv4Interfaces []*RsvpLspIpv4Interface `protobuf:"bytes,2,rep,name=lsp_ipv4_interfaces,json=lspIpv4Interfaces,proto3" json:"lsp_ipv4_interfaces,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *FlowHeader) GetVlan() *FlowVlan { - if x != nil { - return x.Vlan +func (x *DeviceRsvp) Reset() { + *x = DeviceRsvp{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowHeader) GetVxlan() *FlowVxlan { - if x != nil { - return x.Vxlan - } - return nil +func (x *DeviceRsvp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowHeader) GetIpv4() *FlowIpv4 { - if x != nil { - return x.Ipv4 +func (*DeviceRsvp) ProtoMessage() {} + +func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[147] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowHeader) GetIpv6() *FlowIpv6 { - if x != nil { - return x.Ipv6 - } - return nil +// Deprecated: Use DeviceRsvp.ProtoReflect.Descriptor instead. +func (*DeviceRsvp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{147} } -func (x *FlowHeader) GetPfcpause() *FlowPfcPause { +func (x *DeviceRsvp) GetIpv4Interfaces() []*RsvpIpv4Interface { if x != nil { - return x.Pfcpause + return x.Ipv4Interfaces } return nil } -func (x *FlowHeader) GetEthernetpause() *FlowEthernetPause { +func (x *DeviceRsvp) GetLspIpv4Interfaces() []*RsvpLspIpv4Interface { if x != nil { - return x.Ethernetpause + return x.LspIpv4Interfaces } return nil } -func (x *FlowHeader) GetTcp() *FlowTcp { - if x != nil { - return x.Tcp +func (x *DeviceRsvp) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *FlowHeader) GetUdp() *FlowUdp { - if x != nil { - return x.Udp - } - return nil +// Configuration for RSVP Interface. +type RsvpIpv4Interface struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The globally unique name of the IPv4 interface connected to the DUT. This name must + // match the name field of the ipv4_addresses on top which this RSVP interface is configured. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // required = true + Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` + // IPv4 address of the RSVP neighbor on this interface. + // required = true + NeighborIp string `protobuf:"bytes,2,opt,name=neighbor_ip,json=neighborIp,proto3" json:"neighbor_ip,omitempty"` + // The user-defined label space start value. The LSPs for which this router acts as + // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end + // together defines this label-pool. + // default = 1000 + LabelSpaceStart *uint32 `protobuf:"varint,3,opt,name=label_space_start,json=labelSpaceStart,proto3,oneof" json:"label_space_start,omitempty"` + // The user-defined label space end value.The last label value that can be assigned + // to the LSPs for which this router acts as egress. + // default = 100000 + LabelSpaceEnd *uint32 `protobuf:"varint,4,opt,name=label_space_end,json=labelSpaceEnd,proto3,oneof" json:"label_space_end,omitempty"` + // Enables sending of Refresh Reduction as described in RFC2961. + // default = False + EnableRefreshReduction *bool `protobuf:"varint,5,opt,name=enable_refresh_reduction,json=enableRefreshReduction,proto3,oneof" json:"enable_refresh_reduction,omitempty"` + // The number of seconds between transmissions of successive Summary Refreshes. There + // is no specification specified maximum value. For clarity, setting the maximum to + // 1 hour. + // default = 30 + SummaryRefreshInterval *uint32 `protobuf:"varint,6,opt,name=summary_refresh_interval,json=summaryRefreshInterval,proto3,oneof" json:"summary_refresh_interval,omitempty"` + // Enables aggregration of different RSVP messages within a single PDU. + // default = False + SendBundle *bool `protobuf:"varint,7,opt,name=send_bundle,json=sendBundle,proto3,oneof" json:"send_bundle,omitempty"` + // The number of milliseconds to wait after which RSVP will bundle different RSVP messages + // and transmit Bundle messages. + // default = 50 + BundleThreshold *uint32 `protobuf:"varint,8,opt,name=bundle_threshold,json=bundleThreshold,proto3,oneof" json:"bundle_threshold,omitempty"` + // Enables sending of Hello Messages as per RFC3209. + // default = False + EnableHello *bool `protobuf:"varint,9,opt,name=enable_hello,json=enableHello,proto3,oneof" json:"enable_hello,omitempty"` + // If enable_hello is set to 'true', this specifies the minimum hello interval in seconds + // at which successive Hello Messages are sent as per RFC3209. There is no specification + // specified maximum value. For clarity, setting the maximum to 1 hour. + // default = 9 + HelloInterval *uint32 `protobuf:"varint,10,opt,name=hello_interval,json=helloInterval,proto3,oneof" json:"hello_interval,omitempty"` + // The number of missed hellos after which the node should consider RSVP Neighbor to + // have timed out. There is no specification specified maximum value. Setting the maximum + // allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,11,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` } -func (x *FlowHeader) GetGre() *FlowGre { - if x != nil { - return x.Gre +func (x *RsvpIpv4Interface) Reset() { + *x = RsvpIpv4Interface{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowHeader) GetGtpv1() *FlowGtpv1 { - if x != nil { - return x.Gtpv1 - } - return nil +func (x *RsvpIpv4Interface) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowHeader) GetGtpv2() *FlowGtpv2 { - if x != nil { - return x.Gtpv2 +func (*RsvpIpv4Interface) ProtoMessage() {} + +func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[148] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowHeader) GetArp() *FlowArp { - if x != nil { - return x.Arp - } - return nil +// Deprecated: Use RsvpIpv4Interface.ProtoReflect.Descriptor instead. +func (*RsvpIpv4Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{148} } -func (x *FlowHeader) GetIcmp() *FlowIcmp { +func (x *RsvpIpv4Interface) GetIpv4Name() string { if x != nil { - return x.Icmp + return x.Ipv4Name } - return nil + return "" } -func (x *FlowHeader) GetIcmpv6() *FlowIcmpv6 { +func (x *RsvpIpv4Interface) GetNeighborIp() string { if x != nil { - return x.Icmpv6 + return x.NeighborIp } - return nil + return "" } -func (x *FlowHeader) GetPpp() *FlowPpp { - if x != nil { - return x.Ppp +func (x *RsvpIpv4Interface) GetLabelSpaceStart() uint32 { + if x != nil && x.LabelSpaceStart != nil { + return *x.LabelSpaceStart } - return nil + return 0 } -func (x *FlowHeader) GetIgmpv1() *FlowIgmpv1 { - if x != nil { - return x.Igmpv1 +func (x *RsvpIpv4Interface) GetLabelSpaceEnd() uint32 { + if x != nil && x.LabelSpaceEnd != nil { + return *x.LabelSpaceEnd } - return nil + return 0 } -func (x *FlowHeader) GetMpls() *FlowMpls { - if x != nil { - return x.Mpls +func (x *RsvpIpv4Interface) GetEnableRefreshReduction() bool { + if x != nil && x.EnableRefreshReduction != nil { + return *x.EnableRefreshReduction } - return nil + return false } -// Custom packet header -type FlowCustom struct { +func (x *RsvpIpv4Interface) GetSummaryRefreshInterval() uint32 { + if x != nil && x.SummaryRefreshInterval != nil { + return *x.SummaryRefreshInterval + } + return 0 +} + +func (x *RsvpIpv4Interface) GetSendBundle() bool { + if x != nil && x.SendBundle != nil { + return *x.SendBundle + } + return false +} + +func (x *RsvpIpv4Interface) GetBundleThreshold() uint32 { + if x != nil && x.BundleThreshold != nil { + return *x.BundleThreshold + } + return 0 +} + +func (x *RsvpIpv4Interface) GetEnableHello() bool { + if x != nil && x.EnableHello != nil { + return *x.EnableHello + } + return false +} + +func (x *RsvpIpv4Interface) GetHelloInterval() uint32 { + if x != nil && x.HelloInterval != nil { + return *x.HelloInterval + } + return 0 +} + +func (x *RsvpIpv4Interface) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier + } + return 0 +} + +// Configuration for RSVP LSP IPv4 Interface. +type RsvpLspIpv4Interface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A custom packet header defined as a string of hex bytes. The string MUST contain - // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be - // discarded. This packet header can be used in multiple places in the packet. + // The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP + // ingress and egress endpoint for the LSPs configured on this interface. This must + // match the name field of either ipv4_addresses or ipv4_loopbacks on which this LSP + // interface is configured. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // // required = true - Bytes string `protobuf:"bytes,1,opt,name=bytes,proto3" json:"bytes,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits - // in a corresponding header field for metrics per each applicable value. - // These would appear as tagged metrics in corresponding flow metrics. - MetricTags []*FlowCustomMetricTag `protobuf:"bytes,2,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` + // Contains properties of Tail(Egress) LSPs. + P2PEgressIpv4Lsps *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp `protobuf:"bytes,2,opt,name=p2p_egress_ipv4_lsps,json=p2pEgressIpv4Lsps,proto3,oneof" json:"p2p_egress_ipv4_lsps,omitempty"` + // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. + P2PIngressIpv4Lsps []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp `protobuf:"bytes,3,rep,name=p2p_ingress_ipv4_lsps,json=p2pIngressIpv4Lsps,proto3" json:"p2p_ingress_ipv4_lsps,omitempty"` } -func (x *FlowCustom) Reset() { - *x = FlowCustom{} +func (x *RsvpLspIpv4Interface) Reset() { + *x = RsvpLspIpv4Interface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[145] + mi := &file_otg_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowCustom) String() string { +func (x *RsvpLspIpv4Interface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowCustom) ProtoMessage() {} +func (*RsvpLspIpv4Interface) ProtoMessage() {} -func (x *FlowCustom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[145] +func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30794,63 +30682,88 @@ func (x *FlowCustom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowCustom.ProtoReflect.Descriptor instead. -func (*FlowCustom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{145} +// Deprecated: Use RsvpLspIpv4Interface.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{149} } -func (x *FlowCustom) GetBytes() string { +func (x *RsvpLspIpv4Interface) GetIpv4Name() string { if x != nil { - return x.Bytes + return x.Ipv4Name } return "" } -func (x *FlowCustom) GetMetricTags() []*FlowCustomMetricTag { +func (x *RsvpLspIpv4Interface) GetP2PEgressIpv4Lsps() *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { if x != nil { - return x.MetricTags + return x.P2PEgressIpv4Lsps } return nil } -// Metric Tag can be used to enable tracking portion of or all bits -// in a corresponding header field for metrics per each applicable value. -// These would appear as tagged metrics in corresponding flow metrics. -type FlowCustomMetricTag struct { +func (x *RsvpLspIpv4Interface) GetP2PIngressIpv4Lsps() []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { + if x != nil { + return x.P2PIngressIpv4Lsps + } + return nil +} + +// Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs. +type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable - // for configured offset and length inside corresponding header field + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field + // The time in seconds between successive transmissions of RESV Refreshes. The actual + // refresh interval is jittered by upto 50%. There is no specification specified maximum + // value. For clarity, setting the maximum to 1 hour. + // default = 30 + RefreshInterval *uint32 `protobuf:"varint,2,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` + // The number of missed PATH refreshes after which a recieving node should consider + // the LSP state to have timed out. There is no specification specified maximum value. + // Setting the maximum allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,3,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // It determines how RSVP-TE enabled network devices set up reservations along the path + // between an end-to-end QOS-enabled connection. If 'auto' is enabled, the style is + // chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the + // style is chosen based on the value selected for this attribute. + // default = ReservationStyle.Enum.shared_explicit + ReservationStyle *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum `protobuf:"varint,4,opt,name=reservation_style,json=reservationStyle,proto3,enum=otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum,oneof" json:"reservation_style,omitempty"` + // If enabled, a specific fixed label will be advertised by the egress or tail end for + // all Path messages received by this egress. This can be leveraged to advertise Explicit + // or Implicit null labels. + // default = False + EnableFixedLabel *bool `protobuf:"varint,5,opt,name=enable_fixed_label,json=enableFixedLabel,proto3,oneof" json:"enable_fixed_label,omitempty"` + // The fixed label value as advertised by egress in RESV message. Applicable only if + // 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - + // IPv6 Explicit NULL' and '3 - Implicit NULL'. Outside of this, labels are expected + // to have a minimum value of 16. // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset - // of corresponding header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + FixedLabelValue *uint32 `protobuf:"varint,6,opt,name=fixed_label_value,json=fixedLabelValue,proto3,oneof" json:"fixed_label_value,omitempty"` } -func (x *FlowCustomMetricTag) Reset() { - *x = FlowCustomMetricTag{} +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Reset() { + *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[146] + mi := &file_otg_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowCustomMetricTag) String() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowCustomMetricTag) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoMessage() {} -func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[146] +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30861,65 +30774,134 @@ func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowCustomMetricTag.ProtoReflect.Descriptor instead. -func (*FlowCustomMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{146} +// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{150} } -func (x *FlowCustomMetricTag) GetName() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetName() string { if x != nil { return x.Name } return "" } -func (x *FlowCustomMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetRefreshInterval() uint32 { + if x != nil && x.RefreshInterval != nil { + return *x.RefreshInterval } return 0 } -func (x *FlowCustomMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier } return 0 } -// Ethernet packet header -type FlowEthernet struct { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetReservationStyle() RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum { + if x != nil && x.ReservationStyle != nil { + return *x.ReservationStyle + } + return RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_unspecified +} + +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetEnableFixedLabel() bool { + if x != nil && x.EnableFixedLabel != nil { + return *x.EnableFixedLabel + } + return false +} + +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetFixedLabelValue() uint32 { + if x != nil && x.FixedLabelValue != nil { + return *x.FixedLabelValue + } + return 0 +} + +// Configuration for an RSVP Ingress point-to-point LSP. +type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Dst *PatternFlowEthernetDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowEthernetSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowEthernetEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` - // Description missing in models - PfcQueue *PatternFlowEthernetPfcQueue `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3,oneof" json:"pfc_queue,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // IPv4 address of the remote endpoint of the LSP. + // required = true + RemoteAddress string `protobuf:"bytes,2,opt,name=remote_address,json=remoteAddress,proto3" json:"remote_address,omitempty"` + // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. + // default = 1 + TunnelId *uint32 `protobuf:"varint,3,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + // The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages. + // default = 1 + LspId *uint32 `protobuf:"varint,4,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` + // The time in seconds between successive transmissions of PATH Refreshes. The actual + // refresh interval is jittered by upto 50%. There is no specification specified maximum + // value. For clarity, setting the maximum to 1 hour. + // default = 30 + RefreshInterval *uint32 `protobuf:"varint,5,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` + // The number of missed RESV refreshes after which a recieving node should consider + // the LSP state to have timed out. There is no specification specified maximum value. + // Setting the maximum allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,6,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // The LSP id that will be used when creating a Make-Before-Break LSP when the active + // LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is + // using the backup_lsp_id, the new LSP created will toggle to use the lsp_id instead. + // default = 2 + BackupLspId *uint32 `protobuf:"varint,7,opt,name=backup_lsp_id,json=backupLspId,proto3,oneof" json:"backup_lsp_id,omitempty"` + // The amount of delay in milliseconds that an implementation should wait for before + // switching traffic to the new LSP created after a Make-Before-Break is done on an + // LSP. The default value is 0 which means to switch immediately. An implementation + // should support a minimum delay value of at least 50ms . There is no specification + // specified maximum value. Setting maximum allowed value to 1 minute. If a delay value + // is supplied which is lesser than the minimum delay value supported, a warning should + // be provided indicating that the minimum value of LSP switchover delay is automatically + // increased to the supported minimum value. This warning should be included in the + // list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' + // Response. + // default = 0 + LspSwitchoverDelay *uint32 `protobuf:"varint,8,opt,name=lsp_switchover_delay,json=lspSwitchoverDelay,proto3,oneof" json:"lsp_switchover_delay,omitempty"` + // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object + // in the Path Message sent for the LSP. + SessionAttribute *RsvpSessionAttribute `protobuf:"bytes,9,opt,name=session_attribute,json=sessionAttribute,proto3,oneof" json:"session_attribute,omitempty"` + // This contains the values of the fields to be included in the TSPEC object in the + // Path Message sent for the LSP. + Tspec *RsvpTspec `protobuf:"bytes,10,opt,name=tspec,proto3,oneof" json:"tspec,omitempty"` + // This contains the values of the fields to be included in the FAST_REROUTE object + // in the Path Message sent for the LSP. + // This is an optional object . If this attribute is not included , the FAST_REROUTE + // object will not be included. + FastReroute *RsvpFastReroute `protobuf:"bytes,11,opt,name=fast_reroute,json=fastReroute,proto3,oneof" json:"fast_reroute,omitempty"` + // This contains the values of the fields to be included in the ERO object in the Path + // Message sent for the LSP. + // This is an optional object . If this attribute is not included , the ERO object will + // not be included. + Ero *RsvpEro `protobuf:"bytes,12,opt,name=ero,proto3,oneof" json:"ero,omitempty"` } -func (x *FlowEthernet) Reset() { - *x = FlowEthernet{} +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Reset() { + *x = RsvpLspIpv4InterfaceP2PIngressIpv4Lsp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[147] + mi := &file_otg_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowEthernet) String() string { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowEthernet) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoMessage() {} -func (x *FlowEthernet) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[147] +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30930,148 +30912,177 @@ func (x *FlowEthernet) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowEthernet.ProtoReflect.Descriptor instead. -func (*FlowEthernet) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{147} +// Deprecated: Use RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{151} } -func (x *FlowEthernet) GetDst() *PatternFlowEthernetDst { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetName() string { if x != nil { - return x.Dst + return x.Name } - return nil + return "" } -func (x *FlowEthernet) GetSrc() *PatternFlowEthernetSrc { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRemoteAddress() string { if x != nil { - return x.Src + return x.RemoteAddress } - return nil + return "" } -func (x *FlowEthernet) GetEtherType() *PatternFlowEthernetEtherType { - if x != nil { - return x.EtherType +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTunnelId() uint32 { + if x != nil && x.TunnelId != nil { + return *x.TunnelId } - return nil + return 0 } -func (x *FlowEthernet) GetPfcQueue() *PatternFlowEthernetPfcQueue { - if x != nil { - return x.PfcQueue +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspId() uint32 { + if x != nil && x.LspId != nil { + return *x.LspId } - return nil -} - -// VLAN packet header -type FlowVlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Priority *PatternFlowVlanPriority `protobuf:"bytes,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` - // Description missing in models - Cfi *PatternFlowVlanCfi `protobuf:"bytes,2,opt,name=cfi,proto3,oneof" json:"cfi,omitempty"` - // Description missing in models - Id *PatternFlowVlanId `protobuf:"bytes,3,opt,name=id,proto3,oneof" json:"id,omitempty"` - // Description missing in models - Tpid *PatternFlowVlanTpid `protobuf:"bytes,4,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` + return 0 } -func (x *FlowVlan) Reset() { - *x = FlowVlan{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[148] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRefreshInterval() uint32 { + if x != nil && x.RefreshInterval != nil { + return *x.RefreshInterval } + return 0 } -func (x *FlowVlan) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier + } + return 0 } -func (*FlowVlan) ProtoMessage() {} - -func (x *FlowVlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[148] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetBackupLspId() uint32 { + if x != nil && x.BackupLspId != nil { + return *x.BackupLspId } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use FlowVlan.ProtoReflect.Descriptor instead. -func (*FlowVlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{148} +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspSwitchoverDelay() uint32 { + if x != nil && x.LspSwitchoverDelay != nil { + return *x.LspSwitchoverDelay + } + return 0 } -func (x *FlowVlan) GetPriority() *PatternFlowVlanPriority { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetSessionAttribute() *RsvpSessionAttribute { if x != nil { - return x.Priority + return x.SessionAttribute } return nil } -func (x *FlowVlan) GetCfi() *PatternFlowVlanCfi { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTspec() *RsvpTspec { if x != nil { - return x.Cfi + return x.Tspec } return nil } -func (x *FlowVlan) GetId() *PatternFlowVlanId { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetFastReroute() *RsvpFastReroute { if x != nil { - return x.Id + return x.FastReroute } return nil } -func (x *FlowVlan) GetTpid() *PatternFlowVlanTpid { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetEro() *RsvpEro { if x != nil { - return x.Tpid + return x.Ero } return nil } -// VXLAN packet header -type FlowVxlan struct { +// Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined +// in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are +// defined in RFC4090 (Fast Reroute). +type RsvpSessionAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *PatternFlowVxlanFlags `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Description missing in models - Reserved0 *PatternFlowVxlanReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` - // Description missing in models - Vni *PatternFlowVxlanVni `protobuf:"bytes,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` - // Description missing in models - Reserved1 *PatternFlowVxlanReserved1 `protobuf:"bytes,4,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` + // If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE + // object in the Path Message for this LSP. + // default = True + AutoGenerateSessionName *bool `protobuf:"varint,1,opt,name=auto_generate_session_name,json=autoGenerateSessionName,proto3,oneof" json:"auto_generate_session_name,omitempty"` + // If auto_generate_session_name is set to 'false', then the value of this field is + // used to fill the Session Name field of the SESSION_ATTRIBUTE object in the Path Message + // for this LSP. It is suggested to include the Local IP, Remote IP, Tunnel ID and LSP + // ID in the auto-generated Session Name to ensure uniqueness of the name in the test. + // The maximum length of session name is 254 bytes. + SessionName *string `protobuf:"bytes,2,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` + // Specifies the value of the Setup Priority field. This controls whether the LSP should + // pre-empt existing LSP setup with certain Holding Priority if resource limitation + // is encountered when setting up the LSP. (e.g. bandwidth availability). The value + // 0 is the highest priority while 7 is the lowest. + // default = 7 + SetupPriority *uint32 `protobuf:"varint,3,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` + // Specifies the value of the Holding Priority field. This controls whether a new LSP + // being created with certain Setup Priority should pre-empt this LSP if resource limitation + // is encountered when setting up the LSP. (e.g. bandwidth availability). The value + // 0 is the highest priority while 7 is the lowest. + // default = 7 + HoldingPriority *uint32 `protobuf:"varint,4,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` + // This flag permits transit routers to use a local repair mechanism which may result + // in violation of the explicit route object. When a fault is detected on an adjacent + // downstream link or node, a transit router can reroute traffic for fast service restoration. + // default = False + LocalProtectionDesired *bool `protobuf:"varint,5,opt,name=local_protection_desired,json=localProtectionDesired,proto3,oneof" json:"local_protection_desired,omitempty"` + // This flag indicates that label information should be included when doing a route + // record. + // default = False + LabelRecordingDesired *bool `protobuf:"varint,6,opt,name=label_recording_desired,json=labelRecordingDesired,proto3,oneof" json:"label_recording_desired,omitempty"` + // This flag indicates that the tunnel ingress node may choose to reroute this tunnel + // without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) + // Style when responding with a Resv message. + // default = False + SeStyleDesired *bool `protobuf:"varint,7,opt,name=se_style_desired,json=seStyleDesired,proto3,oneof" json:"se_style_desired,omitempty"` + // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs + // along the protected LSP path that a backup path with a bandwidth guarantee is desired. + // This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object + // is included in the PATH message. If a FAST_REROUTE object is present in the Path + // message, then the bandwidth specified therein is to be guaranteed. + // default = False + BandwidthProtectionDesired *bool `protobuf:"varint,8,opt,name=bandwidth_protection_desired,json=bandwidthProtectionDesired,proto3,oneof" json:"bandwidth_protection_desired,omitempty"` + // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs + // along a protected LSP path that it is desired to have a backup path that bypasses + // at least the next node of the protected LSP. + // default = False + NodeProtectionDesired *bool `protobuf:"varint,9,opt,name=node_protection_desired,json=nodeProtectionDesired,proto3,oneof" json:"node_protection_desired,omitempty"` + // This is an optional object. If included the extended SESSION_ATTRIBUTE object is + // sent in the Path message containing + // the additional fields included in this object. This contains a set of three bitmaps + // using which further constraints can be + // set on the path calculated for the LSP based on the Admin Group settings in the IGP + // (e.g ISIS or OSPF interface). + ResourceAffinities *RsvpResourceAffinities `protobuf:"bytes,10,opt,name=resource_affinities,json=resourceAffinities,proto3,oneof" json:"resource_affinities,omitempty"` } -func (x *FlowVxlan) Reset() { - *x = FlowVxlan{} +func (x *RsvpSessionAttribute) Reset() { + *x = RsvpSessionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[149] + mi := &file_otg_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowVxlan) String() string { +func (x *RsvpSessionAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowVxlan) ProtoMessage() {} +func (*RsvpSessionAttribute) ProtoMessage() {} -func (x *FlowVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[149] +func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31082,92 +31093,132 @@ func (x *FlowVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowVxlan.ProtoReflect.Descriptor instead. -func (*FlowVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{149} +// Deprecated: Use RsvpSessionAttribute.ProtoReflect.Descriptor instead. +func (*RsvpSessionAttribute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{152} } -func (x *FlowVxlan) GetFlags() *PatternFlowVxlanFlags { - if x != nil { - return x.Flags +func (x *RsvpSessionAttribute) GetAutoGenerateSessionName() bool { + if x != nil && x.AutoGenerateSessionName != nil { + return *x.AutoGenerateSessionName } - return nil + return false } -func (x *FlowVxlan) GetReserved0() *PatternFlowVxlanReserved0 { - if x != nil { - return x.Reserved0 +func (x *RsvpSessionAttribute) GetSessionName() string { + if x != nil && x.SessionName != nil { + return *x.SessionName } - return nil + return "" } -func (x *FlowVxlan) GetVni() *PatternFlowVxlanVni { - if x != nil { - return x.Vni +func (x *RsvpSessionAttribute) GetSetupPriority() uint32 { + if x != nil && x.SetupPriority != nil { + return *x.SetupPriority } - return nil + return 0 } -func (x *FlowVxlan) GetReserved1() *PatternFlowVxlanReserved1 { +func (x *RsvpSessionAttribute) GetHoldingPriority() uint32 { + if x != nil && x.HoldingPriority != nil { + return *x.HoldingPriority + } + return 0 +} + +func (x *RsvpSessionAttribute) GetLocalProtectionDesired() bool { + if x != nil && x.LocalProtectionDesired != nil { + return *x.LocalProtectionDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetLabelRecordingDesired() bool { + if x != nil && x.LabelRecordingDesired != nil { + return *x.LabelRecordingDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetSeStyleDesired() bool { + if x != nil && x.SeStyleDesired != nil { + return *x.SeStyleDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetBandwidthProtectionDesired() bool { + if x != nil && x.BandwidthProtectionDesired != nil { + return *x.BandwidthProtectionDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetNodeProtectionDesired() bool { + if x != nil && x.NodeProtectionDesired != nil { + return *x.NodeProtectionDesired + } + return false +} + +func (x *RsvpSessionAttribute) GetResourceAffinities() *RsvpResourceAffinities { if x != nil { - return x.Reserved1 + return x.ResourceAffinities } return nil } -// IPv4 packet header -type FlowIpv4 struct { +// This is an optional object. If included, the extended SESSION_ATTRIBUTE object is +// sent in the Path message containing +// the additional fields included in this object. This contains a set of three bitmaps +// using which further constraints can be +// set on the path calculated for the LSP based on the Admin Group settings in the IGP +// (e.g ISIS or OSPF interface). +type RsvpResourceAffinities struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowIpv4Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Description missing in models - HeaderLength *PatternFlowIpv4HeaderLength `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3,oneof" json:"header_length,omitempty"` - // Description missing in models - Priority *FlowIpv4Priority `protobuf:"bytes,3,opt,name=priority,proto3,oneof" json:"priority,omitempty"` - // Description missing in models - TotalLength *PatternFlowIpv4TotalLength `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3,oneof" json:"total_length,omitempty"` - // Description missing in models - Identification *PatternFlowIpv4Identification `protobuf:"bytes,5,opt,name=identification,proto3,oneof" json:"identification,omitempty"` - // Description missing in models - Reserved *PatternFlowIpv4Reserved `protobuf:"bytes,6,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` - // Description missing in models - DontFragment *PatternFlowIpv4DontFragment `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3,oneof" json:"dont_fragment,omitempty"` - // Description missing in models - MoreFragments *PatternFlowIpv4MoreFragments `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3,oneof" json:"more_fragments,omitempty"` - // Description missing in models - FragmentOffset *PatternFlowIpv4FragmentOffset `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3,oneof" json:"fragment_offset,omitempty"` - // Description missing in models - TimeToLive *PatternFlowIpv4TimeToLive `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` - // Description missing in models - Protocol *PatternFlowIpv4Protocol `protobuf:"bytes,11,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` - // Description missing in models - HeaderChecksum *PatternFlowIpv4HeaderChecksum `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3,oneof" json:"header_checksum,omitempty"` - // Description missing in models - Src *PatternFlowIpv4Src `protobuf:"bytes,13,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - Dst *PatternFlowIpv4Dst `protobuf:"bytes,14,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't + // render the link unacceptable. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + ExcludeAny *string `protobuf:"bytes,1,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link acceptable. A null set (all bits set to zero) automatically + // passes. The most significant byte in the hex-string is the farthest to the left + // in the byte sequence. Leading zero bytes in the configured value may be omitted + // for brevity. + // default = 0 + IncludeAny *string `protobuf:"bytes,2,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // all of which must be present for a link to be acceptable. A null set (all bits set + // to zero) automatically passes. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + IncludeAll *string `protobuf:"bytes,3,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` } -func (x *FlowIpv4) Reset() { - *x = FlowIpv4{} +func (x *RsvpResourceAffinities) Reset() { + *x = RsvpResourceAffinities{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[150] + mi := &file_otg_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4) String() string { +func (x *RsvpResourceAffinities) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4) ProtoMessage() {} +func (*RsvpResourceAffinities) ProtoMessage() {} -func (x *FlowIpv4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[150] +func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31178,143 +31229,201 @@ func (x *FlowIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4.ProtoReflect.Descriptor instead. -func (*FlowIpv4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{150} +// Deprecated: Use RsvpResourceAffinities.ProtoReflect.Descriptor instead. +func (*RsvpResourceAffinities) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{153} } -func (x *FlowIpv4) GetVersion() *PatternFlowIpv4Version { - if x != nil { - return x.Version +func (x *RsvpResourceAffinities) GetExcludeAny() string { + if x != nil && x.ExcludeAny != nil { + return *x.ExcludeAny } - return nil + return "" } -func (x *FlowIpv4) GetHeaderLength() *PatternFlowIpv4HeaderLength { - if x != nil { - return x.HeaderLength +func (x *RsvpResourceAffinities) GetIncludeAny() string { + if x != nil && x.IncludeAny != nil { + return *x.IncludeAny } - return nil + return "" } -func (x *FlowIpv4) GetPriority() *FlowIpv4Priority { - if x != nil { - return x.Priority +func (x *RsvpResourceAffinities) GetIncludeAll() string { + if x != nil && x.IncludeAll != nil { + return *x.IncludeAll } - return nil + return "" } -func (x *FlowIpv4) GetTotalLength() *PatternFlowIpv4TotalLength { - if x != nil { - return x.TotalLength - } - return nil -} +// Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these +// parameters is defined in RFC2215. +type RsvpTspec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowIpv4) GetIdentification() *PatternFlowIpv4Identification { - if x != nil { - return x.Identification - } - return nil + // The rate of the traffic to be carried in this LSP in bytes per second. This is part + // of the Token Bucket specification defined for a traffic flow defined in RFC2215. + // default = 0 + TokenBucketRate *float32 `protobuf:"fixed32,1,opt,name=token_bucket_rate,json=tokenBucketRate,proto3,oneof" json:"token_bucket_rate,omitempty"` + // The depth of the token bucket in bytes used to specify the Token Bucket characteristics + // of the traffic to be carried in the LSP. This is part of the Token Bucket specification + // defined for a traffic flow defined in RFC2215. + // default = 0 + TokenBucketSize *float32 `protobuf:"fixed32,2,opt,name=token_bucket_size,json=tokenBucketSize,proto3,oneof" json:"token_bucket_size,omitempty"` + // The peak data rate of the traffic in bytes per second used to specify the Token Bucket + // characteristics of the traffic to be carried in the LSP. This is part of the Token + // Bucket specification defined for a traffic flow defined in RFC2215. + // default = 0 + PeakDataRate *float32 `protobuf:"fixed32,3,opt,name=peak_data_rate,json=peakDataRate,proto3,oneof" json:"peak_data_rate,omitempty"` + // Specifies the minium length of packet frames that will be policed. + // default = 0 + MinimumPolicedUnit *uint32 `protobuf:"varint,4,opt,name=minimum_policed_unit,json=minimumPolicedUnit,proto3,oneof" json:"minimum_policed_unit,omitempty"` + // Specifies the maximum length of packet frames that will be policed. + // default = 0 + MaximumPolicedUnit *uint32 `protobuf:"varint,5,opt,name=maximum_policed_unit,json=maximumPolicedUnit,proto3,oneof" json:"maximum_policed_unit,omitempty"` } -func (x *FlowIpv4) GetReserved() *PatternFlowIpv4Reserved { - if x != nil { - return x.Reserved +func (x *RsvpTspec) Reset() { + *x = RsvpTspec{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowIpv4) GetDontFragment() *PatternFlowIpv4DontFragment { - if x != nil { - return x.DontFragment - } - return nil +func (x *RsvpTspec) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowIpv4) GetMoreFragments() *PatternFlowIpv4MoreFragments { - if x != nil { - return x.MoreFragments +func (*RsvpTspec) ProtoMessage() {} + +func (x *RsvpTspec) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[154] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowIpv4) GetFragmentOffset() *PatternFlowIpv4FragmentOffset { - if x != nil { - return x.FragmentOffset - } - return nil +// Deprecated: Use RsvpTspec.ProtoReflect.Descriptor instead. +func (*RsvpTspec) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{154} } -func (x *FlowIpv4) GetTimeToLive() *PatternFlowIpv4TimeToLive { - if x != nil { - return x.TimeToLive +func (x *RsvpTspec) GetTokenBucketRate() float32 { + if x != nil && x.TokenBucketRate != nil { + return *x.TokenBucketRate } - return nil + return 0 } -func (x *FlowIpv4) GetProtocol() *PatternFlowIpv4Protocol { - if x != nil { - return x.Protocol +func (x *RsvpTspec) GetTokenBucketSize() float32 { + if x != nil && x.TokenBucketSize != nil { + return *x.TokenBucketSize } - return nil + return 0 } -func (x *FlowIpv4) GetHeaderChecksum() *PatternFlowIpv4HeaderChecksum { - if x != nil { - return x.HeaderChecksum +func (x *RsvpTspec) GetPeakDataRate() float32 { + if x != nil && x.PeakDataRate != nil { + return *x.PeakDataRate } - return nil + return 0 } -func (x *FlowIpv4) GetSrc() *PatternFlowIpv4Src { - if x != nil { - return x.Src +func (x *RsvpTspec) GetMinimumPolicedUnit() uint32 { + if x != nil && x.MinimumPolicedUnit != nil { + return *x.MinimumPolicedUnit } - return nil + return 0 } -func (x *FlowIpv4) GetDst() *PatternFlowIpv4Dst { - if x != nil { - return x.Dst +func (x *RsvpTspec) GetMaximumPolicedUnit() uint32 { + if x != nil && x.MaximumPolicedUnit != nil { + return *x.MaximumPolicedUnit } - return nil + return 0 } -// A container for ipv4 raw, tos, dscp ip priorities. -type FlowIpv4Priority struct { +// Configuration for the optional RSVP-TE FAST_REROUTE object included in Path Messages +// as defined in RFC4090. +type RsvpFastReroute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.dscp - Choice *FlowIpv4Priority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Priority_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Raw *PatternFlowIpv4PriorityRaw `protobuf:"bytes,2,opt,name=raw,proto3,oneof" json:"raw,omitempty"` - // Description missing in models - Tos *FlowIpv4Tos `protobuf:"bytes,3,opt,name=tos,proto3,oneof" json:"tos,omitempty"` - // Description missing in models - Dscp *FlowIpv4Dscp `protobuf:"bytes,4,opt,name=dscp,proto3,oneof" json:"dscp,omitempty"` + // Specifies the value of the Setup Priority field. This controls whether the backup + // LSP should pre-empt existing LSP that is setup with certain Holding Priority. While + // setting up a backup LSP, preemption of existing LSP can happen if resource limitation + // is encountered (e.g bandwidth availability). + // default = 7 + SetupPriority *uint32 `protobuf:"varint,1,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` + // Specifies the value of the Holding Priority field. This controls whether a new LSP + // being created with certain Setup Priority should pre-empt this LSP set up with this + // Holding Priority. While setting up a new LSP, preemption of existing LSP can happen + // if resource limitation is encountered (e.g bandwidth availability). + // default = 7 + HoldingPriority *uint32 `protobuf:"varint,2,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` + // Specifies the value of the Hop Limit field. This controls the maximum number of hops + // the LSP should traverse to reach the LSP end-point. + // default = 3 + HopLimit *uint32 `protobuf:"varint,3,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` + // Specifies the value of the Bandwidth field as a 32-bit IEEE floating point integer, + // in bytes per second, as desired for the LSP. + // default = 0 + Bandwidth *float32 `protobuf:"fixed32,4,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't + // render the link unacceptable. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + ExcludeAny *string `protobuf:"bytes,5,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link acceptable. A null set (all bits set to zero) automatically + // passes. The most significant byte in the hex-string is the farthest to the left + // in the byte sequence. Leading zero bytes in the configured value may be omitted + // for brevity. + // default = 0 + IncludeAny *string `protobuf:"bytes,6,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // all of which must be present for a link to be acceptable. A null set (all bits set + // to zero) automatically passes. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + IncludeAll *string `protobuf:"bytes,7,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` + // Requests protection via the one-to-one backup method. + // default = False + OneToOneBackupDesired *bool `protobuf:"varint,8,opt,name=one_to_one_backup_desired,json=oneToOneBackupDesired,proto3,oneof" json:"one_to_one_backup_desired,omitempty"` + // Requests protection via the facility backup method. + // default = False + FacilityBackupDesired *bool `protobuf:"varint,9,opt,name=facility_backup_desired,json=facilityBackupDesired,proto3,oneof" json:"facility_backup_desired,omitempty"` } -func (x *FlowIpv4Priority) Reset() { - *x = FlowIpv4Priority{} +func (x *RsvpFastReroute) Reset() { + *x = RsvpFastReroute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[151] + mi := &file_otg_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Priority) String() string { +func (x *RsvpFastReroute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Priority) ProtoMessage() {} +func (*RsvpFastReroute) ProtoMessage() {} -func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[151] +func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31325,134 +31434,115 @@ func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Priority.ProtoReflect.Descriptor instead. -func (*FlowIpv4Priority) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{151} +// Deprecated: Use RsvpFastReroute.ProtoReflect.Descriptor instead. +func (*RsvpFastReroute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{155} } -func (x *FlowIpv4Priority) GetChoice() FlowIpv4Priority_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpFastReroute) GetSetupPriority() uint32 { + if x != nil && x.SetupPriority != nil { + return *x.SetupPriority } - return FlowIpv4Priority_Choice_unspecified + return 0 } -func (x *FlowIpv4Priority) GetRaw() *PatternFlowIpv4PriorityRaw { - if x != nil { - return x.Raw +func (x *RsvpFastReroute) GetHoldingPriority() uint32 { + if x != nil && x.HoldingPriority != nil { + return *x.HoldingPriority } - return nil + return 0 } -func (x *FlowIpv4Priority) GetTos() *FlowIpv4Tos { - if x != nil { - return x.Tos +func (x *RsvpFastReroute) GetHopLimit() uint32 { + if x != nil && x.HopLimit != nil { + return *x.HopLimit } - return nil + return 0 } -func (x *FlowIpv4Priority) GetDscp() *FlowIpv4Dscp { - if x != nil { - return x.Dscp +func (x *RsvpFastReroute) GetBandwidth() float32 { + if x != nil && x.Bandwidth != nil { + return *x.Bandwidth } - return nil -} - -// Differentiated services code point (DSCP) packet field. -type FlowIpv4Dscp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Phb *PatternFlowIpv4DscpPhb `protobuf:"bytes,1,opt,name=phb,proto3,oneof" json:"phb,omitempty"` - // Description missing in models - Ecn *PatternFlowIpv4DscpEcn `protobuf:"bytes,2,opt,name=ecn,proto3,oneof" json:"ecn,omitempty"` + return 0 } -func (x *FlowIpv4Dscp) Reset() { - *x = FlowIpv4Dscp{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[152] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpFastReroute) GetExcludeAny() string { + if x != nil && x.ExcludeAny != nil { + return *x.ExcludeAny } + return "" } -func (x *FlowIpv4Dscp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowIpv4Dscp) ProtoMessage() {} - -func (x *FlowIpv4Dscp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[152] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpFastReroute) GetIncludeAny() string { + if x != nil && x.IncludeAny != nil { + return *x.IncludeAny } - return mi.MessageOf(x) + return "" } -// Deprecated: Use FlowIpv4Dscp.ProtoReflect.Descriptor instead. -func (*FlowIpv4Dscp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{152} +func (x *RsvpFastReroute) GetIncludeAll() string { + if x != nil && x.IncludeAll != nil { + return *x.IncludeAll + } + return "" } -func (x *FlowIpv4Dscp) GetPhb() *PatternFlowIpv4DscpPhb { - if x != nil { - return x.Phb +func (x *RsvpFastReroute) GetOneToOneBackupDesired() bool { + if x != nil && x.OneToOneBackupDesired != nil { + return *x.OneToOneBackupDesired } - return nil + return false } -func (x *FlowIpv4Dscp) GetEcn() *PatternFlowIpv4DscpEcn { - if x != nil { - return x.Ecn +func (x *RsvpFastReroute) GetFacilityBackupDesired() bool { + if x != nil && x.FacilityBackupDesired != nil { + return *x.FacilityBackupDesired } - return nil + return false } -// Type of service (TOS) packet field. -type FlowIpv4Tos struct { +// Configuration for the optional RSVP-TE explicit route object(ERO) object included +// in Path Messages. +type RsvpEro struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Precedence *PatternFlowIpv4TosPrecedence `protobuf:"bytes,1,opt,name=precedence,proto3,oneof" json:"precedence,omitempty"` - // Description missing in models - Delay *PatternFlowIpv4TosDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` - // Description missing in models - Throughput *PatternFlowIpv4TosThroughput `protobuf:"bytes,3,opt,name=throughput,proto3,oneof" json:"throughput,omitempty"` - // Description missing in models - Reliability *PatternFlowIpv4TosReliability `protobuf:"bytes,4,opt,name=reliability,proto3,oneof" json:"reliability,omitempty"` - // Description missing in models - Monetary *PatternFlowIpv4TosMonetary `protobuf:"bytes,5,opt,name=monetary,proto3,oneof" json:"monetary,omitempty"` - // Description missing in models - Unused *PatternFlowIpv4TosUnused `protobuf:"bytes,6,opt,name=unused,proto3,oneof" json:"unused,omitempty"` + // Determines whether the IP address of the RSVP neighbor should be added as an ERO + // sub-object. If it is to be included, it can be included as a Loose hop or as a Strict + // hop. + // default = PrependNeighborIp.Enum.prepend_loose + PrependNeighborIp *RsvpEro_PrependNeighborIp_Enum `protobuf:"varint,1,opt,name=prepend_neighbor_ip,json=prependNeighborIp,proto3,enum=otg.RsvpEro_PrependNeighborIp_Enum,oneof" json:"prepend_neighbor_ip,omitempty"` + // If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict', then set + // this value as the prefix length of the ERO sub-object containing egress IP address. + // + // default = 32 + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate + // hops to be traversed by the LSP while being forwarded towards the egress endpoint. + // These sub-objects are included after the optional sub-object containing IP address + // of egress endpoint of the LSP (when present). + Subobjects []*RsvpEroSubobject `protobuf:"bytes,3,rep,name=subobjects,proto3" json:"subobjects,omitempty"` } -func (x *FlowIpv4Tos) Reset() { - *x = FlowIpv4Tos{} +func (x *RsvpEro) Reset() { + *x = RsvpEro{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[153] + mi := &file_otg_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Tos) String() string { +func (x *RsvpEro) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Tos) ProtoMessage() {} +func (*RsvpEro) ProtoMessage() {} -func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[153] +func (x *RsvpEro) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31463,94 +31553,76 @@ func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Tos.ProtoReflect.Descriptor instead. -func (*FlowIpv4Tos) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{153} +// Deprecated: Use RsvpEro.ProtoReflect.Descriptor instead. +func (*RsvpEro) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{156} } -func (x *FlowIpv4Tos) GetPrecedence() *PatternFlowIpv4TosPrecedence { - if x != nil { - return x.Precedence +func (x *RsvpEro) GetPrependNeighborIp() RsvpEro_PrependNeighborIp_Enum { + if x != nil && x.PrependNeighborIp != nil { + return *x.PrependNeighborIp } - return nil + return RsvpEro_PrependNeighborIp_unspecified } -func (x *FlowIpv4Tos) GetDelay() *PatternFlowIpv4TosDelay { - if x != nil { - return x.Delay - } - return nil -} - -func (x *FlowIpv4Tos) GetThroughput() *PatternFlowIpv4TosThroughput { - if x != nil { - return x.Throughput - } - return nil -} - -func (x *FlowIpv4Tos) GetReliability() *PatternFlowIpv4TosReliability { - if x != nil { - return x.Reliability - } - return nil -} - -func (x *FlowIpv4Tos) GetMonetary() *PatternFlowIpv4TosMonetary { - if x != nil { - return x.Monetary +func (x *RsvpEro) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return nil + return 0 } -func (x *FlowIpv4Tos) GetUnused() *PatternFlowIpv4TosUnused { +func (x *RsvpEro) GetSubobjects() []*RsvpEroSubobject { if x != nil { - return x.Unused + return x.Subobjects } return nil } -// IPv6 packet header -type FlowIpv6 struct { +// Configuration for the ERO sub-object. +type RsvpEroSubobject struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowIpv6Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Description missing in models - TrafficClass *PatternFlowIpv6TrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` - // Description missing in models - FlowLabel *PatternFlowIpv6FlowLabel `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3,oneof" json:"flow_label,omitempty"` - // Description missing in models - PayloadLength *PatternFlowIpv6PayloadLength `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3,oneof" json:"payload_length,omitempty"` - // Description missing in models - NextHeader *PatternFlowIpv6NextHeader `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3,oneof" json:"next_header,omitempty"` - // Description missing in models - HopLimit *PatternFlowIpv6HopLimit `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` - // Description missing in models - Src *PatternFlowIpv6Src `protobuf:"bytes,7,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - Dst *PatternFlowIpv6Dst `protobuf:"bytes,8,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + // The type of the ERO sub-object, one of IPv4 Address or AS Number. + // default = Type.Enum.ipv4 + Type *RsvpEroSubobject_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.RsvpEroSubobject_Type_Enum,oneof" json:"type,omitempty"` + // IPv4 address that this LSP should traverse through. This field is applicable only + // if the value of 'type' is set to 'ipv4'. + // default = 0.0.0.0 + Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // Prefix length for the IPv4 address in the ERO sub-object. This field is applicable + // only if the value of 'type' is set to 'ipv4'. + // default = 32 + PrefixLength *uint32 `protobuf:"varint,3,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // Autonomous System number to be set in the ERO sub-object that this LSP should traverse + // through. This field is applicable only if the value of 'type' is set to 'as_number'. + // Note that as per RFC3209, 4-byte AS encoding is not supported. + // default = 0 + AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // The hop type of the ERO sub-object, one of Strict or Loose. + // default = HopType.Enum.loose + HopType *RsvpEroSubobject_HopType_Enum `protobuf:"varint,5,opt,name=hop_type,json=hopType,proto3,enum=otg.RsvpEroSubobject_HopType_Enum,oneof" json:"hop_type,omitempty"` } -func (x *FlowIpv6) Reset() { - *x = FlowIpv6{} +func (x *RsvpEroSubobject) Reset() { + *x = RsvpEroSubobject{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[154] + mi := &file_otg_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv6) String() string { +func (x *RsvpEroSubobject) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv6) ProtoMessage() {} +func (*RsvpEroSubobject) ProtoMessage() {} -func (x *FlowIpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[154] +func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31561,118 +31633,115 @@ func (x *FlowIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv6.ProtoReflect.Descriptor instead. -func (*FlowIpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{154} -} - -func (x *FlowIpv6) GetVersion() *PatternFlowIpv6Version { - if x != nil { - return x.Version - } - return nil -} - -func (x *FlowIpv6) GetTrafficClass() *PatternFlowIpv6TrafficClass { - if x != nil { - return x.TrafficClass - } - return nil -} - -func (x *FlowIpv6) GetFlowLabel() *PatternFlowIpv6FlowLabel { - if x != nil { - return x.FlowLabel - } - return nil +// Deprecated: Use RsvpEroSubobject.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157} } -func (x *FlowIpv6) GetPayloadLength() *PatternFlowIpv6PayloadLength { - if x != nil { - return x.PayloadLength +func (x *RsvpEroSubobject) GetType() RsvpEroSubobject_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return nil + return RsvpEroSubobject_Type_unspecified } -func (x *FlowIpv6) GetNextHeader() *PatternFlowIpv6NextHeader { - if x != nil { - return x.NextHeader +func (x *RsvpEroSubobject) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } - return nil + return "" } -func (x *FlowIpv6) GetHopLimit() *PatternFlowIpv6HopLimit { - if x != nil { - return x.HopLimit +func (x *RsvpEroSubobject) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return nil + return 0 } -func (x *FlowIpv6) GetSrc() *PatternFlowIpv6Src { - if x != nil { - return x.Src +func (x *RsvpEroSubobject) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } - return nil + return 0 } -func (x *FlowIpv6) GetDst() *PatternFlowIpv6Dst { - if x != nil { - return x.Dst +func (x *RsvpEroSubobject) GetHopType() RsvpEroSubobject_HopType_Enum { + if x != nil && x.HopType != nil { + return *x.HopType } - return nil + return RsvpEroSubobject_HopType_unspecified } -// IEEE 802.1Qbb PFC Pause packet header. -type FlowPfcPause struct { +// A high level data plane traffic flow. +type Flow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Dst *PatternFlowPfcPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowPfcPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowPfcPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` - // Description missing in models - ControlOpCode *PatternFlowPfcPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` - // Description missing in models - ClassEnableVector *PatternFlowPfcPauseClassEnableVector `protobuf:"bytes,5,opt,name=class_enable_vector,json=classEnableVector,proto3,oneof" json:"class_enable_vector,omitempty"` - // Description missing in models - PauseClass_0 *PatternFlowPfcPausePauseClass0 `protobuf:"bytes,6,opt,name=pause_class_0,json=pauseClass0,proto3,oneof" json:"pause_class_0,omitempty"` - // Description missing in models - PauseClass_1 *PatternFlowPfcPausePauseClass1 `protobuf:"bytes,7,opt,name=pause_class_1,json=pauseClass1,proto3,oneof" json:"pause_class_1,omitempty"` - // Description missing in models - PauseClass_2 *PatternFlowPfcPausePauseClass2 `protobuf:"bytes,8,opt,name=pause_class_2,json=pauseClass2,proto3,oneof" json:"pause_class_2,omitempty"` - // Description missing in models - PauseClass_3 *PatternFlowPfcPausePauseClass3 `protobuf:"bytes,9,opt,name=pause_class_3,json=pauseClass3,proto3,oneof" json:"pause_class_3,omitempty"` - // Description missing in models - PauseClass_4 *PatternFlowPfcPausePauseClass4 `protobuf:"bytes,10,opt,name=pause_class_4,json=pauseClass4,proto3,oneof" json:"pause_class_4,omitempty"` - // Description missing in models - PauseClass_5 *PatternFlowPfcPausePauseClass5 `protobuf:"bytes,11,opt,name=pause_class_5,json=pauseClass5,proto3,oneof" json:"pause_class_5,omitempty"` - // Description missing in models - PauseClass_6 *PatternFlowPfcPausePauseClass6 `protobuf:"bytes,12,opt,name=pause_class_6,json=pauseClass6,proto3,oneof" json:"pause_class_6,omitempty"` - // Description missing in models - PauseClass_7 *PatternFlowPfcPausePauseClass7 `protobuf:"bytes,13,opt,name=pause_class_7,json=pauseClass7,proto3,oneof" json:"pause_class_7,omitempty"` + // The transmit and receive endpoints. + // required = true + TxRx *FlowTxRx `protobuf:"bytes,1,opt,name=tx_rx,json=txRx,proto3" json:"tx_rx,omitempty"` + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is transmitted + // by traffic-generator port. + // + // The order of protocol headers assigned to the list is the + // order they will appear on the wire. + // + // In the case of an empty list the keyword/value of minItems: 1 + // indicates that an implementation MUST provide at least one + // Flow.Header object. + // + // The default value for the Flow.Header choice property is ethernet + // which will result in an implementation by default providing at least + // one ethernet packet header. + Packet []*FlowHeader `protobuf:"bytes,2,rep,name=packet,proto3" json:"packet,omitempty"` + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is received + // by traffic-generator port. + // + // For all protocol headers, only the `metric_tags` property is configurable. + EgressPacket []*FlowHeader `protobuf:"bytes,9,rep,name=egress_packet,json=egressPacket,proto3" json:"egress_packet,omitempty"` + // The size of the packets. + Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3,oneof" json:"size,omitempty"` + // The transmit rate of the packets. + Rate *FlowRate `protobuf:"bytes,4,opt,name=rate,proto3,oneof" json:"rate,omitempty"` + // The transmit duration of the packets. + Duration *FlowDuration `protobuf:"bytes,5,opt,name=duration,proto3,oneof" json:"duration,omitempty"` + // Flow metrics. + Metrics *FlowMetrics `protobuf:"bytes,6,opt,name=metrics,proto3,oneof" json:"metrics,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` } -func (x *FlowPfcPause) Reset() { - *x = FlowPfcPause{} +func (x *Flow) Reset() { + *x = Flow{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[155] + mi := &file_otg_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPfcPause) String() string { +func (x *Flow) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPfcPause) ProtoMessage() {} +func (*Flow) ProtoMessage() {} -func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[155] +func (x *Flow) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31683,137 +31752,100 @@ func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPfcPause.ProtoReflect.Descriptor instead. -func (*FlowPfcPause) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{155} -} - -func (x *FlowPfcPause) GetDst() *PatternFlowPfcPauseDst { - if x != nil { - return x.Dst - } - return nil -} - -func (x *FlowPfcPause) GetSrc() *PatternFlowPfcPauseSrc { - if x != nil { - return x.Src - } - return nil -} - -func (x *FlowPfcPause) GetEtherType() *PatternFlowPfcPauseEtherType { - if x != nil { - return x.EtherType - } - return nil -} - -func (x *FlowPfcPause) GetControlOpCode() *PatternFlowPfcPauseControlOpCode { - if x != nil { - return x.ControlOpCode - } - return nil -} - -func (x *FlowPfcPause) GetClassEnableVector() *PatternFlowPfcPauseClassEnableVector { - if x != nil { - return x.ClassEnableVector - } - return nil +// Deprecated: Use Flow.ProtoReflect.Descriptor instead. +func (*Flow) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{158} } -func (x *FlowPfcPause) GetPauseClass_0() *PatternFlowPfcPausePauseClass0 { +func (x *Flow) GetTxRx() *FlowTxRx { if x != nil { - return x.PauseClass_0 + return x.TxRx } return nil } -func (x *FlowPfcPause) GetPauseClass_1() *PatternFlowPfcPausePauseClass1 { +func (x *Flow) GetPacket() []*FlowHeader { if x != nil { - return x.PauseClass_1 + return x.Packet } return nil } -func (x *FlowPfcPause) GetPauseClass_2() *PatternFlowPfcPausePauseClass2 { +func (x *Flow) GetEgressPacket() []*FlowHeader { if x != nil { - return x.PauseClass_2 + return x.EgressPacket } return nil } -func (x *FlowPfcPause) GetPauseClass_3() *PatternFlowPfcPausePauseClass3 { +func (x *Flow) GetSize() *FlowSize { if x != nil { - return x.PauseClass_3 + return x.Size } return nil } -func (x *FlowPfcPause) GetPauseClass_4() *PatternFlowPfcPausePauseClass4 { +func (x *Flow) GetRate() *FlowRate { if x != nil { - return x.PauseClass_4 + return x.Rate } return nil } -func (x *FlowPfcPause) GetPauseClass_5() *PatternFlowPfcPausePauseClass5 { +func (x *Flow) GetDuration() *FlowDuration { if x != nil { - return x.PauseClass_5 + return x.Duration } return nil } -func (x *FlowPfcPause) GetPauseClass_6() *PatternFlowPfcPausePauseClass6 { +func (x *Flow) GetMetrics() *FlowMetrics { if x != nil { - return x.PauseClass_6 + return x.Metrics } return nil } -func (x *FlowPfcPause) GetPauseClass_7() *PatternFlowPfcPausePauseClass7 { +func (x *Flow) GetName() string { if x != nil { - return x.PauseClass_7 + return x.Name } - return nil + return "" } -// IEEE 802.3x global ethernet pause packet header -type FlowEthernetPause struct { +// A container for different types of transmit and receive +// endpoint containers. +type FlowTxRx struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The type of transmit and receive container used by the flow. + // default = Choice.Enum.port + Choice *FlowTxRx_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowTxRx_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Dst *PatternFlowEthernetPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowEthernetPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowEthernetPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` - // Description missing in models - ControlOpCode *PatternFlowEthernetPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` + Port *FlowPort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` // Description missing in models - Time *PatternFlowEthernetPauseTime `protobuf:"bytes,5,opt,name=time,proto3,oneof" json:"time,omitempty"` + Device *FlowRouter `protobuf:"bytes,3,opt,name=device,proto3,oneof" json:"device,omitempty"` } -func (x *FlowEthernetPause) Reset() { - *x = FlowEthernetPause{} +func (x *FlowTxRx) Reset() { + *x = FlowTxRx{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[156] + mi := &file_otg_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowEthernetPause) String() string { +func (x *FlowTxRx) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowEthernetPause) ProtoMessage() {} +func (*FlowTxRx) ProtoMessage() {} -func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[156] +func (x *FlowTxRx) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31824,101 +31856,99 @@ func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowEthernetPause.ProtoReflect.Descriptor instead. -func (*FlowEthernetPause) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{156} -} - -func (x *FlowEthernetPause) GetDst() *PatternFlowEthernetPauseDst { - if x != nil { - return x.Dst - } - return nil -} - -func (x *FlowEthernetPause) GetSrc() *PatternFlowEthernetPauseSrc { - if x != nil { - return x.Src - } - return nil +// Deprecated: Use FlowTxRx.ProtoReflect.Descriptor instead. +func (*FlowTxRx) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{159} } -func (x *FlowEthernetPause) GetEtherType() *PatternFlowEthernetPauseEtherType { - if x != nil { - return x.EtherType +func (x *FlowTxRx) GetChoice() FlowTxRx_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowTxRx_Choice_unspecified } -func (x *FlowEthernetPause) GetControlOpCode() *PatternFlowEthernetPauseControlOpCode { +func (x *FlowTxRx) GetPort() *FlowPort { if x != nil { - return x.ControlOpCode + return x.Port } return nil } -func (x *FlowEthernetPause) GetTime() *PatternFlowEthernetPauseTime { +func (x *FlowTxRx) GetDevice() *FlowRouter { if x != nil { - return x.Time + return x.Device } return nil } -// TCP packet header -type FlowTcp struct { +// A container for a transmit port and 0..n intended receive ports. +// When assigning this container to a flow the flows's +// packet headers will not be populated with any address resolution +// information such as source and/or destination addresses. +// For example Flow.Ethernet dst mac address values will be defaulted to 0. +// For full control over the Flow.properties.packet header contents use this +// container. +type FlowPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - SrcPort *PatternFlowTcpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` - // Description missing in models - DstPort *PatternFlowTcpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` - // Description missing in models - SeqNum *PatternFlowTcpSeqNum `protobuf:"bytes,3,opt,name=seq_num,json=seqNum,proto3,oneof" json:"seq_num,omitempty"` - // Description missing in models - AckNum *PatternFlowTcpAckNum `protobuf:"bytes,4,opt,name=ack_num,json=ackNum,proto3,oneof" json:"ack_num,omitempty"` - // Description missing in models - DataOffset *PatternFlowTcpDataOffset `protobuf:"bytes,5,opt,name=data_offset,json=dataOffset,proto3,oneof" json:"data_offset,omitempty"` - // Description missing in models - EcnNs *PatternFlowTcpEcnNs `protobuf:"bytes,6,opt,name=ecn_ns,json=ecnNs,proto3,oneof" json:"ecn_ns,omitempty"` - // Description missing in models - EcnCwr *PatternFlowTcpEcnCwr `protobuf:"bytes,7,opt,name=ecn_cwr,json=ecnCwr,proto3,oneof" json:"ecn_cwr,omitempty"` - // Description missing in models - EcnEcho *PatternFlowTcpEcnEcho `protobuf:"bytes,8,opt,name=ecn_echo,json=ecnEcho,proto3,oneof" json:"ecn_echo,omitempty"` - // Description missing in models - CtlUrg *PatternFlowTcpCtlUrg `protobuf:"bytes,9,opt,name=ctl_urg,json=ctlUrg,proto3,oneof" json:"ctl_urg,omitempty"` - // Description missing in models - CtlAck *PatternFlowTcpCtlAck `protobuf:"bytes,10,opt,name=ctl_ack,json=ctlAck,proto3,oneof" json:"ctl_ack,omitempty"` - // Description missing in models - CtlPsh *PatternFlowTcpCtlPsh `protobuf:"bytes,11,opt,name=ctl_psh,json=ctlPsh,proto3,oneof" json:"ctl_psh,omitempty"` - // Description missing in models - CtlRst *PatternFlowTcpCtlRst `protobuf:"bytes,12,opt,name=ctl_rst,json=ctlRst,proto3,oneof" json:"ctl_rst,omitempty"` - // Description missing in models - CtlSyn *PatternFlowTcpCtlSyn `protobuf:"bytes,13,opt,name=ctl_syn,json=ctlSyn,proto3,oneof" json:"ctl_syn,omitempty"` - // Description missing in models - CtlFin *PatternFlowTcpCtlFin `protobuf:"bytes,14,opt,name=ctl_fin,json=ctlFin,proto3,oneof" json:"ctl_fin,omitempty"` - // Description missing in models - Window *PatternFlowTcpWindow `protobuf:"bytes,15,opt,name=window,proto3,oneof" json:"window,omitempty"` + // The unique name of a port that is the transmit port. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // required = true + TxName string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3" json:"tx_name,omitempty"` + // Deprecated: This property is deprecated in favor of property rx_names + // + // Deprecated: This property is deprecated in favor of property rx_names + // + // The unique name of a port that is the intended receive port. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + RxName *string `protobuf:"bytes,2,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` + // Unique name of ports or lags that are intended receive endpoints. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` } -func (x *FlowTcp) Reset() { - *x = FlowTcp{} +func (x *FlowPort) Reset() { + *x = FlowPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[157] + mi := &file_otg_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTcp) String() string { +func (x *FlowPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTcp) ProtoMessage() {} +func (*FlowPort) ProtoMessage() {} -func (x *FlowTcp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[157] +func (x *FlowPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31929,149 +31959,149 @@ func (x *FlowTcp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTcp.ProtoReflect.Descriptor instead. -func (*FlowTcp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{157} +// Deprecated: Use FlowPort.ProtoReflect.Descriptor instead. +func (*FlowPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{160} } -func (x *FlowTcp) GetSrcPort() *PatternFlowTcpSrcPort { +func (x *FlowPort) GetTxName() string { if x != nil { - return x.SrcPort + return x.TxName } - return nil + return "" } -func (x *FlowTcp) GetDstPort() *PatternFlowTcpDstPort { - if x != nil { - return x.DstPort +func (x *FlowPort) GetRxName() string { + if x != nil && x.RxName != nil { + return *x.RxName } - return nil + return "" } -func (x *FlowTcp) GetSeqNum() *PatternFlowTcpSeqNum { +func (x *FlowPort) GetRxNames() []string { if x != nil { - return x.SeqNum + return x.RxNames } return nil } -func (x *FlowTcp) GetAckNum() *PatternFlowTcpAckNum { - if x != nil { - return x.AckNum - } - return nil -} +// A container for declaring a map of 1..n transmit devices to 1..n receive devices. +// This allows for a single flow to have different tx to rx device flows such as a +// single one to one map or a many to many map. +type FlowRouter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowTcp) GetDataOffset() *PatternFlowTcpDataOffset { - if x != nil { - return x.DataOffset - } - return nil -} - -func (x *FlowTcp) GetEcnNs() *PatternFlowTcpEcnNs { - if x != nil { - return x.EcnNs - } - return nil -} - -func (x *FlowTcp) GetEcnCwr() *PatternFlowTcpEcnCwr { - if x != nil { - return x.EcnCwr - } - return nil -} - -func (x *FlowTcp) GetEcnEcho() *PatternFlowTcpEcnEcho { - if x != nil { - return x.EcnEcho - } - return nil -} - -func (x *FlowTcp) GetCtlUrg() *PatternFlowTcpCtlUrg { - if x != nil { - return x.CtlUrg - } - return nil -} - -func (x *FlowTcp) GetCtlAck() *PatternFlowTcpCtlAck { - if x != nil { - return x.CtlAck - } - return nil -} - -func (x *FlowTcp) GetCtlPsh() *PatternFlowTcpCtlPsh { - if x != nil { - return x.CtlPsh - } - return nil -} - -func (x *FlowTcp) GetCtlRst() *PatternFlowTcpCtlRst { - if x != nil { - return x.CtlRst - } - return nil -} - -func (x *FlowTcp) GetCtlSyn() *PatternFlowTcpCtlSyn { - if x != nil { - return x.CtlSyn - } - return nil -} - -func (x *FlowTcp) GetCtlFin() *PatternFlowTcpCtlFin { - if x != nil { - return x.CtlFin - } - return nil -} - -func (x *FlowTcp) GetWindow() *PatternFlowTcpWindow { - if x != nil { - return x.Window - } - return nil -} - -// UDP packet header -type FlowUdp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - SrcPort *PatternFlowUdpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` - // Description missing in models - DstPort *PatternFlowUdpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` - // Description missing in models - Length *PatternFlowUdpLength `protobuf:"bytes,3,opt,name=length,proto3,oneof" json:"length,omitempty"` - // Description missing in models - Checksum *PatternFlowUdpChecksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + // Determines the intent of creating traffic sub-flow(s) between the device + // endpoints, from the entities of tx_names to the entities of rx_names + // + // to derive how auto packet fields can be populated with + // the actual value(s) by the implementation. + // + // The one_to_one mode creates traffic sub-flow(s) between each device endpoint + // pair in + // tx_names to rx_names by index. + // The length of tx_names and rx_names MUST be the same. + // The same device name can be repeated multiple times in tx_names or rx_names, in any + // order to create desired meshing between device(s). + // For 2 values in tx_names and 2 values in rx_names, 2 device endpoint pairs would + // be generated (each pair representing a traffic sub-flow). + // + // The mesh mode creates traffic sub-flow(s) between each value in tx_names to + // every value in rx_names, forming the device endpoint pair(s). + // For 2 values in tx_names and 3 values in rx_names, generated device endpoint pairs + // would be 2x3=6. + // + // A generated device endpoint pair with same device endpoint name for both transmit + // & receive device endpoint MUST raise an error. + // + // Packet fields of type auto would be populated with one value for each device + // endpoint pair (representing the traffic sub-flow). + // The value would be determined considering transmit & receive device of the sub-flow. + // And the sequence of the populated value(s) + // would be in the order of generated device endpoint pair(s). + // If 2 device endpoint pairs are generated (based on mode, tx_names and rx_names), + // say (d1 to d3) and (d2 to d3), and ethernet.dst is set as auto, then + // the auto field would be replaced by the implementation with a sequence of + // 2 values, [v1,v2] where + // v1 is determined using context (d1,d3) and v2 using context (d2,d3). + // The final outcome is that packets generated on the wire will contain the values v1,v2,v1,... + // for ethernet.dst field. Any non-auto packet fields + // should be configured accordingly. For example, non-auto packet field ethernet.src + // can be configured with values [u1, u2], where + // u1 & u2 are source MAC of the connected interface of device d1 and d2 respectively. + // Then packets on the wire will contain correct value pairs + // (u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst) fields. + // default = Mode.Enum.mesh + Mode *FlowRouter_Mode_Enum `protobuf:"varint,1,opt,name=mode,proto3,enum=otg.FlowRouter_Mode_Enum,oneof" json:"mode,omitempty"` + // TBD + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + TxNames []string `protobuf:"bytes,2,rep,name=tx_names,json=txNames,proto3" json:"tx_names,omitempty"` + // TBD + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` } -func (x *FlowUdp) Reset() { - *x = FlowUdp{} +func (x *FlowRouter) Reset() { + *x = FlowRouter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[158] + mi := &file_otg_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowUdp) String() string { +func (x *FlowRouter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowUdp) ProtoMessage() {} +func (*FlowRouter) ProtoMessage() {} -func (x *FlowUdp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[158] +func (x *FlowRouter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32082,76 +32112,99 @@ func (x *FlowUdp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowUdp.ProtoReflect.Descriptor instead. -func (*FlowUdp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{158} -} - -func (x *FlowUdp) GetSrcPort() *PatternFlowUdpSrcPort { - if x != nil { - return x.SrcPort - } - return nil +// Deprecated: Use FlowRouter.ProtoReflect.Descriptor instead. +func (*FlowRouter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{161} } -func (x *FlowUdp) GetDstPort() *PatternFlowUdpDstPort { - if x != nil { - return x.DstPort +func (x *FlowRouter) GetMode() FlowRouter_Mode_Enum { + if x != nil && x.Mode != nil { + return *x.Mode } - return nil + return FlowRouter_Mode_unspecified } -func (x *FlowUdp) GetLength() *PatternFlowUdpLength { +func (x *FlowRouter) GetTxNames() []string { if x != nil { - return x.Length + return x.TxNames } return nil } -func (x *FlowUdp) GetChecksum() *PatternFlowUdpChecksum { +func (x *FlowRouter) GetRxNames() []string { if x != nil { - return x.Checksum + return x.RxNames } return nil } -// Standard GRE packet header (RFC2784) -type FlowGre struct { +// Configuration for all traffic packet headers +type FlowHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The available types of flow headers. If one is not provided the + // default ethernet packet header MUST be provided. + // default = Choice.Enum.ethernet + Choice *FlowHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - ChecksumPresent *PatternFlowGreChecksumPresent `protobuf:"bytes,1,opt,name=checksum_present,json=checksumPresent,proto3,oneof" json:"checksum_present,omitempty"` + Custom *FlowCustom `protobuf:"bytes,2,opt,name=custom,proto3,oneof" json:"custom,omitempty"` // Description missing in models - Reserved0 *PatternFlowGreReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` + Ethernet *FlowEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3,oneof" json:"ethernet,omitempty"` // Description missing in models - Version *PatternFlowGreVersion `protobuf:"bytes,3,opt,name=version,proto3,oneof" json:"version,omitempty"` + Vlan *FlowVlan `protobuf:"bytes,4,opt,name=vlan,proto3,oneof" json:"vlan,omitempty"` // Description missing in models - Protocol *PatternFlowGreProtocol `protobuf:"bytes,4,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + Vxlan *FlowVxlan `protobuf:"bytes,5,opt,name=vxlan,proto3,oneof" json:"vxlan,omitempty"` // Description missing in models - Checksum *PatternFlowGreChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Ipv4 *FlowIpv4 `protobuf:"bytes,6,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` // Description missing in models - Reserved1 *PatternFlowGreReserved1 `protobuf:"bytes,6,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` + Ipv6 *FlowIpv6 `protobuf:"bytes,7,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + // Description missing in models + Pfcpause *FlowPfcPause `protobuf:"bytes,8,opt,name=pfcpause,proto3,oneof" json:"pfcpause,omitempty"` + // Description missing in models + Ethernetpause *FlowEthernetPause `protobuf:"bytes,9,opt,name=ethernetpause,proto3,oneof" json:"ethernetpause,omitempty"` + // Description missing in models + Tcp *FlowTcp `protobuf:"bytes,10,opt,name=tcp,proto3,oneof" json:"tcp,omitempty"` + // Description missing in models + Udp *FlowUdp `protobuf:"bytes,11,opt,name=udp,proto3,oneof" json:"udp,omitempty"` + // Description missing in models + Gre *FlowGre `protobuf:"bytes,12,opt,name=gre,proto3,oneof" json:"gre,omitempty"` + // Description missing in models + Gtpv1 *FlowGtpv1 `protobuf:"bytes,13,opt,name=gtpv1,proto3,oneof" json:"gtpv1,omitempty"` + // Description missing in models + Gtpv2 *FlowGtpv2 `protobuf:"bytes,14,opt,name=gtpv2,proto3,oneof" json:"gtpv2,omitempty"` + // Description missing in models + Arp *FlowArp `protobuf:"bytes,15,opt,name=arp,proto3,oneof" json:"arp,omitempty"` + // Description missing in models + Icmp *FlowIcmp `protobuf:"bytes,16,opt,name=icmp,proto3,oneof" json:"icmp,omitempty"` + // Description missing in models + Icmpv6 *FlowIcmpv6 `protobuf:"bytes,17,opt,name=icmpv6,proto3,oneof" json:"icmpv6,omitempty"` + // Description missing in models + Ppp *FlowPpp `protobuf:"bytes,18,opt,name=ppp,proto3,oneof" json:"ppp,omitempty"` + // Description missing in models + Igmpv1 *FlowIgmpv1 `protobuf:"bytes,19,opt,name=igmpv1,proto3,oneof" json:"igmpv1,omitempty"` + // Description missing in models + Mpls *FlowMpls `protobuf:"bytes,20,opt,name=mpls,proto3,oneof" json:"mpls,omitempty"` } -func (x *FlowGre) Reset() { - *x = FlowGre{} +func (x *FlowHeader) Reset() { + *x = FlowHeader{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[159] + mi := &file_otg_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowGre) String() string { +func (x *FlowHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGre) ProtoMessage() {} +func (*FlowHeader) ProtoMessage() {} -func (x *FlowGre) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[159] +func (x *FlowHeader) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32162,241 +32215,185 @@ func (x *FlowGre) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGre.ProtoReflect.Descriptor instead. -func (*FlowGre) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{159} +// Deprecated: Use FlowHeader.ProtoReflect.Descriptor instead. +func (*FlowHeader) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{162} } -func (x *FlowGre) GetChecksumPresent() *PatternFlowGreChecksumPresent { - if x != nil { - return x.ChecksumPresent +func (x *FlowHeader) GetChoice() FlowHeader_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowHeader_Choice_unspecified } -func (x *FlowGre) GetReserved0() *PatternFlowGreReserved0 { +func (x *FlowHeader) GetCustom() *FlowCustom { if x != nil { - return x.Reserved0 + return x.Custom } return nil } -func (x *FlowGre) GetVersion() *PatternFlowGreVersion { +func (x *FlowHeader) GetEthernet() *FlowEthernet { if x != nil { - return x.Version + return x.Ethernet } return nil } -func (x *FlowGre) GetProtocol() *PatternFlowGreProtocol { +func (x *FlowHeader) GetVlan() *FlowVlan { if x != nil { - return x.Protocol + return x.Vlan } return nil } -func (x *FlowGre) GetChecksum() *PatternFlowGreChecksum { +func (x *FlowHeader) GetVxlan() *FlowVxlan { if x != nil { - return x.Checksum + return x.Vxlan } return nil } -func (x *FlowGre) GetReserved1() *PatternFlowGreReserved1 { +func (x *FlowHeader) GetIpv4() *FlowIpv4 { if x != nil { - return x.Reserved1 + return x.Ipv4 } return nil } -// GTPv1 packet header -type FlowGtpv1 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Version *PatternFlowGtpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Description missing in models - ProtocolType *PatternFlowGtpv1ProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` - // Description missing in models - Reserved *PatternFlowGtpv1Reserved `protobuf:"bytes,3,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` - // Description missing in models - EFlag *PatternFlowGtpv1EFlag `protobuf:"bytes,4,opt,name=e_flag,json=eFlag,proto3,oneof" json:"e_flag,omitempty"` - // Description missing in models - SFlag *PatternFlowGtpv1SFlag `protobuf:"bytes,5,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` - // Description missing in models - PnFlag *PatternFlowGtpv1PnFlag `protobuf:"bytes,6,opt,name=pn_flag,json=pnFlag,proto3,oneof" json:"pn_flag,omitempty"` - // Description missing in models - MessageType *PatternFlowGtpv1MessageType `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` - // Description missing in models - MessageLength *PatternFlowGtpv1MessageLength `protobuf:"bytes,8,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` - // Description missing in models - Teid *PatternFlowGtpv1Teid `protobuf:"bytes,9,opt,name=teid,proto3,oneof" json:"teid,omitempty"` - // Description missing in models - SquenceNumber *PatternFlowGtpv1SquenceNumber `protobuf:"bytes,10,opt,name=squence_number,json=squenceNumber,proto3,oneof" json:"squence_number,omitempty"` - // Description missing in models - NPduNumber *PatternFlowGtpv1NPduNumber `protobuf:"bytes,11,opt,name=n_pdu_number,json=nPduNumber,proto3,oneof" json:"n_pdu_number,omitempty"` - // Description missing in models - NextExtensionHeaderType *PatternFlowGtpv1NextExtensionHeaderType `protobuf:"bytes,12,opt,name=next_extension_header_type,json=nextExtensionHeaderType,proto3,oneof" json:"next_extension_header_type,omitempty"` - // A list of optional extension headers. - ExtensionHeaders []*FlowGtpExtension `protobuf:"bytes,13,rep,name=extension_headers,json=extensionHeaders,proto3" json:"extension_headers,omitempty"` -} - -func (x *FlowGtpv1) Reset() { - *x = FlowGtpv1{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[160] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FlowGtpv1) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowGtpv1) ProtoMessage() {} - -func (x *FlowGtpv1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[160] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowHeader) GetIpv6() *FlowIpv6 { + if x != nil { + return x.Ipv6 } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowGtpv1.ProtoReflect.Descriptor instead. -func (*FlowGtpv1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{160} + return nil } -func (x *FlowGtpv1) GetVersion() *PatternFlowGtpv1Version { +func (x *FlowHeader) GetPfcpause() *FlowPfcPause { if x != nil { - return x.Version + return x.Pfcpause } return nil } -func (x *FlowGtpv1) GetProtocolType() *PatternFlowGtpv1ProtocolType { +func (x *FlowHeader) GetEthernetpause() *FlowEthernetPause { if x != nil { - return x.ProtocolType + return x.Ethernetpause } return nil } -func (x *FlowGtpv1) GetReserved() *PatternFlowGtpv1Reserved { +func (x *FlowHeader) GetTcp() *FlowTcp { if x != nil { - return x.Reserved + return x.Tcp } return nil } -func (x *FlowGtpv1) GetEFlag() *PatternFlowGtpv1EFlag { +func (x *FlowHeader) GetUdp() *FlowUdp { if x != nil { - return x.EFlag + return x.Udp } return nil } -func (x *FlowGtpv1) GetSFlag() *PatternFlowGtpv1SFlag { +func (x *FlowHeader) GetGre() *FlowGre { if x != nil { - return x.SFlag + return x.Gre } return nil } -func (x *FlowGtpv1) GetPnFlag() *PatternFlowGtpv1PnFlag { +func (x *FlowHeader) GetGtpv1() *FlowGtpv1 { if x != nil { - return x.PnFlag + return x.Gtpv1 } return nil } -func (x *FlowGtpv1) GetMessageType() *PatternFlowGtpv1MessageType { +func (x *FlowHeader) GetGtpv2() *FlowGtpv2 { if x != nil { - return x.MessageType + return x.Gtpv2 } return nil } -func (x *FlowGtpv1) GetMessageLength() *PatternFlowGtpv1MessageLength { +func (x *FlowHeader) GetArp() *FlowArp { if x != nil { - return x.MessageLength + return x.Arp } return nil } -func (x *FlowGtpv1) GetTeid() *PatternFlowGtpv1Teid { +func (x *FlowHeader) GetIcmp() *FlowIcmp { if x != nil { - return x.Teid + return x.Icmp } return nil } -func (x *FlowGtpv1) GetSquenceNumber() *PatternFlowGtpv1SquenceNumber { +func (x *FlowHeader) GetIcmpv6() *FlowIcmpv6 { if x != nil { - return x.SquenceNumber + return x.Icmpv6 } return nil } -func (x *FlowGtpv1) GetNPduNumber() *PatternFlowGtpv1NPduNumber { +func (x *FlowHeader) GetPpp() *FlowPpp { if x != nil { - return x.NPduNumber + return x.Ppp } return nil } -func (x *FlowGtpv1) GetNextExtensionHeaderType() *PatternFlowGtpv1NextExtensionHeaderType { +func (x *FlowHeader) GetIgmpv1() *FlowIgmpv1 { if x != nil { - return x.NextExtensionHeaderType + return x.Igmpv1 } return nil } -func (x *FlowGtpv1) GetExtensionHeaders() []*FlowGtpExtension { +func (x *FlowHeader) GetMpls() *FlowMpls { if x != nil { - return x.ExtensionHeaders + return x.Mpls } return nil } -// Description missing in models -type FlowGtpExtension struct { +// Custom packet header +type FlowCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - ExtensionLength *PatternFlowGtpExtensionExtensionLength `protobuf:"bytes,1,opt,name=extension_length,json=extensionLength,proto3,oneof" json:"extension_length,omitempty"` - // Description missing in models - Contents *PatternFlowGtpExtensionContents `protobuf:"bytes,2,opt,name=contents,proto3,oneof" json:"contents,omitempty"` - // Description missing in models - NextExtensionHeader *PatternFlowGtpExtensionNextExtensionHeader `protobuf:"bytes,3,opt,name=next_extension_header,json=nextExtensionHeader,proto3,oneof" json:"next_extension_header,omitempty"` + // A custom packet header defined as a string of hex bytes. The string MUST contain + // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be + // discarded. This packet header can be used in multiple places in the packet. + // required = true + Bytes string `protobuf:"bytes,1,opt,name=bytes,proto3" json:"bytes,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits + // in a corresponding header field for metrics per each applicable value. + // These would appear as tagged metrics in corresponding flow metrics. + MetricTags []*FlowCustomMetricTag `protobuf:"bytes,2,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *FlowGtpExtension) Reset() { - *x = FlowGtpExtension{} +func (x *FlowCustom) Reset() { + *x = FlowCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[161] + mi := &file_otg_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowGtpExtension) String() string { +func (x *FlowCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGtpExtension) ProtoMessage() {} +func (*FlowCustom) ProtoMessage() {} -func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[161] +func (x *FlowCustom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32407,75 +32404,63 @@ func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGtpExtension.ProtoReflect.Descriptor instead. -func (*FlowGtpExtension) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{161} -} - -func (x *FlowGtpExtension) GetExtensionLength() *PatternFlowGtpExtensionExtensionLength { - if x != nil { - return x.ExtensionLength - } - return nil +// Deprecated: Use FlowCustom.ProtoReflect.Descriptor instead. +func (*FlowCustom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{163} } -func (x *FlowGtpExtension) GetContents() *PatternFlowGtpExtensionContents { +func (x *FlowCustom) GetBytes() string { if x != nil { - return x.Contents + return x.Bytes } - return nil + return "" } -func (x *FlowGtpExtension) GetNextExtensionHeader() *PatternFlowGtpExtensionNextExtensionHeader { +func (x *FlowCustom) GetMetricTags() []*FlowCustomMetricTag { if x != nil { - return x.NextExtensionHeader + return x.MetricTags } return nil } -// GTPv2 packet header -type FlowGtpv2 struct { +// Metric Tag can be used to enable tracking portion of or all bits +// in a corresponding header field for metrics per each applicable value. +// These would appear as tagged metrics in corresponding flow metrics. +type FlowCustomMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowGtpv2Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Description missing in models - PiggybackingFlag *PatternFlowGtpv2PiggybackingFlag `protobuf:"bytes,2,opt,name=piggybacking_flag,json=piggybackingFlag,proto3,oneof" json:"piggybacking_flag,omitempty"` - // Description missing in models - TeidFlag *PatternFlowGtpv2TeidFlag `protobuf:"bytes,3,opt,name=teid_flag,json=teidFlag,proto3,oneof" json:"teid_flag,omitempty"` - // Description missing in models - Spare1 *PatternFlowGtpv2Spare1 `protobuf:"bytes,4,opt,name=spare1,proto3,oneof" json:"spare1,omitempty"` - // Description missing in models - MessageType *PatternFlowGtpv2MessageType `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` - // Description missing in models - MessageLength *PatternFlowGtpv2MessageLength `protobuf:"bytes,6,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` - // Description missing in models - Teid *PatternFlowGtpv2Teid `protobuf:"bytes,7,opt,name=teid,proto3,oneof" json:"teid,omitempty"` - // Description missing in models - SequenceNumber *PatternFlowGtpv2SequenceNumber `protobuf:"bytes,8,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` - // Description missing in models - Spare2 *PatternFlowGtpv2Spare2 `protobuf:"bytes,9,opt,name=spare2,proto3,oneof" json:"spare2,omitempty"` + // Name used to identify the metrics associated with the values applicable + // for configured offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset + // of corresponding header field + // default = 1 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *FlowGtpv2) Reset() { - *x = FlowGtpv2{} +func (x *FlowCustomMetricTag) Reset() { + *x = FlowCustomMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[162] + mi := &file_otg_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowGtpv2) String() string { +func (x *FlowCustomMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGtpv2) ProtoMessage() {} +func (*FlowCustomMetricTag) ProtoMessage() {} -func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[162] +func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32486,117 +32471,141 @@ func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGtpv2.ProtoReflect.Descriptor instead. -func (*FlowGtpv2) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{162} +// Deprecated: Use FlowCustomMetricTag.ProtoReflect.Descriptor instead. +func (*FlowCustomMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{164} } -func (x *FlowGtpv2) GetVersion() *PatternFlowGtpv2Version { +func (x *FlowCustomMetricTag) GetName() string { if x != nil { - return x.Version + return x.Name } - return nil + return "" } -func (x *FlowGtpv2) GetPiggybackingFlag() *PatternFlowGtpv2PiggybackingFlag { - if x != nil { - return x.PiggybackingFlag +func (x *FlowCustomMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } - return nil + return 0 } -func (x *FlowGtpv2) GetTeidFlag() *PatternFlowGtpv2TeidFlag { - if x != nil { - return x.TeidFlag +func (x *FlowCustomMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } - return nil + return 0 } -func (x *FlowGtpv2) GetSpare1() *PatternFlowGtpv2Spare1 { - if x != nil { - return x.Spare1 +// Ethernet packet header +type FlowEthernet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + Dst *PatternFlowEthernetDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` + // Description missing in models + Src *PatternFlowEthernetSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` + // Description missing in models + EtherType *PatternFlowEthernetEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` + // Description missing in models + PfcQueue *PatternFlowEthernetPfcQueue `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3,oneof" json:"pfc_queue,omitempty"` +} + +func (x *FlowEthernet) Reset() { + *x = FlowEthernet{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[165] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowGtpv2) GetMessageType() *PatternFlowGtpv2MessageType { - if x != nil { - return x.MessageType +func (x *FlowEthernet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowEthernet) ProtoMessage() {} + +func (x *FlowEthernet) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[165] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowGtpv2) GetMessageLength() *PatternFlowGtpv2MessageLength { +// Deprecated: Use FlowEthernet.ProtoReflect.Descriptor instead. +func (*FlowEthernet) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{165} +} + +func (x *FlowEthernet) GetDst() *PatternFlowEthernetDst { if x != nil { - return x.MessageLength + return x.Dst } return nil } -func (x *FlowGtpv2) GetTeid() *PatternFlowGtpv2Teid { +func (x *FlowEthernet) GetSrc() *PatternFlowEthernetSrc { if x != nil { - return x.Teid + return x.Src } return nil } -func (x *FlowGtpv2) GetSequenceNumber() *PatternFlowGtpv2SequenceNumber { +func (x *FlowEthernet) GetEtherType() *PatternFlowEthernetEtherType { if x != nil { - return x.SequenceNumber + return x.EtherType } return nil } -func (x *FlowGtpv2) GetSpare2() *PatternFlowGtpv2Spare2 { +func (x *FlowEthernet) GetPfcQueue() *PatternFlowEthernetPfcQueue { if x != nil { - return x.Spare2 + return x.PfcQueue } return nil } -// ARP packet header -type FlowArp struct { +// VLAN packet header +type FlowVlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - HardwareType *PatternFlowArpHardwareType `protobuf:"bytes,1,opt,name=hardware_type,json=hardwareType,proto3,oneof" json:"hardware_type,omitempty"` - // Description missing in models - ProtocolType *PatternFlowArpProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` - // Description missing in models - HardwareLength *PatternFlowArpHardwareLength `protobuf:"bytes,3,opt,name=hardware_length,json=hardwareLength,proto3,oneof" json:"hardware_length,omitempty"` - // Description missing in models - ProtocolLength *PatternFlowArpProtocolLength `protobuf:"bytes,4,opt,name=protocol_length,json=protocolLength,proto3,oneof" json:"protocol_length,omitempty"` - // Description missing in models - Operation *PatternFlowArpOperation `protobuf:"bytes,5,opt,name=operation,proto3,oneof" json:"operation,omitempty"` - // Description missing in models - SenderHardwareAddr *PatternFlowArpSenderHardwareAddr `protobuf:"bytes,6,opt,name=sender_hardware_addr,json=senderHardwareAddr,proto3,oneof" json:"sender_hardware_addr,omitempty"` + Priority *PatternFlowVlanPriority `protobuf:"bytes,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` // Description missing in models - SenderProtocolAddr *PatternFlowArpSenderProtocolAddr `protobuf:"bytes,7,opt,name=sender_protocol_addr,json=senderProtocolAddr,proto3,oneof" json:"sender_protocol_addr,omitempty"` + Cfi *PatternFlowVlanCfi `protobuf:"bytes,2,opt,name=cfi,proto3,oneof" json:"cfi,omitempty"` // Description missing in models - TargetHardwareAddr *PatternFlowArpTargetHardwareAddr `protobuf:"bytes,8,opt,name=target_hardware_addr,json=targetHardwareAddr,proto3,oneof" json:"target_hardware_addr,omitempty"` + Id *PatternFlowVlanId `protobuf:"bytes,3,opt,name=id,proto3,oneof" json:"id,omitempty"` // Description missing in models - TargetProtocolAddr *PatternFlowArpTargetProtocolAddr `protobuf:"bytes,9,opt,name=target_protocol_addr,json=targetProtocolAddr,proto3,oneof" json:"target_protocol_addr,omitempty"` + Tpid *PatternFlowVlanTpid `protobuf:"bytes,4,opt,name=tpid,proto3,oneof" json:"tpid,omitempty"` } -func (x *FlowArp) Reset() { - *x = FlowArp{} +func (x *FlowVlan) Reset() { + *x = FlowVlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[163] + mi := &file_otg_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowArp) String() string { +func (x *FlowVlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowArp) ProtoMessage() {} +func (*FlowVlan) ProtoMessage() {} -func (x *FlowArp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[163] +func (x *FlowVlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32607,104 +32616,72 @@ func (x *FlowArp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowArp.ProtoReflect.Descriptor instead. -func (*FlowArp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{163} -} - -func (x *FlowArp) GetHardwareType() *PatternFlowArpHardwareType { - if x != nil { - return x.HardwareType - } - return nil -} - -func (x *FlowArp) GetProtocolType() *PatternFlowArpProtocolType { - if x != nil { - return x.ProtocolType - } - return nil -} - -func (x *FlowArp) GetHardwareLength() *PatternFlowArpHardwareLength { - if x != nil { - return x.HardwareLength - } - return nil -} - -func (x *FlowArp) GetProtocolLength() *PatternFlowArpProtocolLength { - if x != nil { - return x.ProtocolLength - } - return nil -} - -func (x *FlowArp) GetOperation() *PatternFlowArpOperation { - if x != nil { - return x.Operation - } - return nil +// Deprecated: Use FlowVlan.ProtoReflect.Descriptor instead. +func (*FlowVlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{166} } -func (x *FlowArp) GetSenderHardwareAddr() *PatternFlowArpSenderHardwareAddr { +func (x *FlowVlan) GetPriority() *PatternFlowVlanPriority { if x != nil { - return x.SenderHardwareAddr + return x.Priority } return nil } -func (x *FlowArp) GetSenderProtocolAddr() *PatternFlowArpSenderProtocolAddr { +func (x *FlowVlan) GetCfi() *PatternFlowVlanCfi { if x != nil { - return x.SenderProtocolAddr + return x.Cfi } return nil } -func (x *FlowArp) GetTargetHardwareAddr() *PatternFlowArpTargetHardwareAddr { +func (x *FlowVlan) GetId() *PatternFlowVlanId { if x != nil { - return x.TargetHardwareAddr + return x.Id } return nil } -func (x *FlowArp) GetTargetProtocolAddr() *PatternFlowArpTargetProtocolAddr { +func (x *FlowVlan) GetTpid() *PatternFlowVlanTpid { if x != nil { - return x.TargetProtocolAddr + return x.Tpid } return nil } -// ICMP packet header -type FlowIcmp struct { +// VXLAN packet header +type FlowVxlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.echo - Choice *FlowIcmp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmp_Choice_Enum,oneof" json:"choice,omitempty"` + Flags *PatternFlowVxlanFlags `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` // Description missing in models - Echo *FlowIcmpEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` + Reserved0 *PatternFlowVxlanReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` + // Description missing in models + Vni *PatternFlowVxlanVni `protobuf:"bytes,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` + // Description missing in models + Reserved1 *PatternFlowVxlanReserved1 `protobuf:"bytes,4,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` } -func (x *FlowIcmp) Reset() { - *x = FlowIcmp{} +func (x *FlowVxlan) Reset() { + *x = FlowVxlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[164] + mi := &file_otg_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmp) String() string { +func (x *FlowVxlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmp) ProtoMessage() {} +func (*FlowVxlan) ProtoMessage() {} -func (x *FlowIcmp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[164] +func (x *FlowVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32715,60 +32692,92 @@ func (x *FlowIcmp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmp.ProtoReflect.Descriptor instead. -func (*FlowIcmp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{164} +// Deprecated: Use FlowVxlan.ProtoReflect.Descriptor instead. +func (*FlowVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{167} } -func (x *FlowIcmp) GetChoice() FlowIcmp_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowVxlan) GetFlags() *PatternFlowVxlanFlags { + if x != nil { + return x.Flags } - return FlowIcmp_Choice_unspecified + return nil } -func (x *FlowIcmp) GetEcho() *FlowIcmpEcho { +func (x *FlowVxlan) GetReserved0() *PatternFlowVxlanReserved0 { if x != nil { - return x.Echo + return x.Reserved0 } return nil } -// Packet Header for ICMP echo request -type FlowIcmpEcho struct { +func (x *FlowVxlan) GetVni() *PatternFlowVxlanVni { + if x != nil { + return x.Vni + } + return nil +} + +func (x *FlowVxlan) GetReserved1() *PatternFlowVxlanReserved1 { + if x != nil { + return x.Reserved1 + } + return nil +} + +// IPv4 packet header +type FlowIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Type *PatternFlowIcmpEchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + Version *PatternFlowIpv4Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` // Description missing in models - Code *PatternFlowIcmpEchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + HeaderLength *PatternFlowIpv4HeaderLength `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3,oneof" json:"header_length,omitempty"` // Description missing in models - Checksum *PatternFlowIcmpEchoChecksum `protobuf:"bytes,3,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Priority *FlowIpv4Priority `protobuf:"bytes,3,opt,name=priority,proto3,oneof" json:"priority,omitempty"` // Description missing in models - Identifier *PatternFlowIcmpEchoIdentifier `protobuf:"bytes,4,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + TotalLength *PatternFlowIpv4TotalLength `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3,oneof" json:"total_length,omitempty"` // Description missing in models - SequenceNumber *PatternFlowIcmpEchoSequenceNumber `protobuf:"bytes,5,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + Identification *PatternFlowIpv4Identification `protobuf:"bytes,5,opt,name=identification,proto3,oneof" json:"identification,omitempty"` + // Description missing in models + Reserved *PatternFlowIpv4Reserved `protobuf:"bytes,6,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + // Description missing in models + DontFragment *PatternFlowIpv4DontFragment `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3,oneof" json:"dont_fragment,omitempty"` + // Description missing in models + MoreFragments *PatternFlowIpv4MoreFragments `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3,oneof" json:"more_fragments,omitempty"` + // Description missing in models + FragmentOffset *PatternFlowIpv4FragmentOffset `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3,oneof" json:"fragment_offset,omitempty"` + // Description missing in models + TimeToLive *PatternFlowIpv4TimeToLive `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + // Description missing in models + Protocol *PatternFlowIpv4Protocol `protobuf:"bytes,11,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // Description missing in models + HeaderChecksum *PatternFlowIpv4HeaderChecksum `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3,oneof" json:"header_checksum,omitempty"` + // Description missing in models + Src *PatternFlowIpv4Src `protobuf:"bytes,13,opt,name=src,proto3,oneof" json:"src,omitempty"` + // Description missing in models + Dst *PatternFlowIpv4Dst `protobuf:"bytes,14,opt,name=dst,proto3,oneof" json:"dst,omitempty"` } -func (x *FlowIcmpEcho) Reset() { - *x = FlowIcmpEcho{} +func (x *FlowIpv4) Reset() { + *x = FlowIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[165] + mi := &file_otg_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmpEcho) String() string { +func (x *FlowIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpEcho) ProtoMessage() {} +func (*FlowIpv4) ProtoMessage() {} -func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[165] +func (x *FlowIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32779,140 +32788,143 @@ func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpEcho.ProtoReflect.Descriptor instead. -func (*FlowIcmpEcho) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{165} +// Deprecated: Use FlowIpv4.ProtoReflect.Descriptor instead. +func (*FlowIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{168} } -func (x *FlowIcmpEcho) GetType() *PatternFlowIcmpEchoType { +func (x *FlowIpv4) GetVersion() *PatternFlowIpv4Version { if x != nil { - return x.Type + return x.Version } return nil } -func (x *FlowIcmpEcho) GetCode() *PatternFlowIcmpEchoCode { +func (x *FlowIpv4) GetHeaderLength() *PatternFlowIpv4HeaderLength { if x != nil { - return x.Code + return x.HeaderLength } return nil } -func (x *FlowIcmpEcho) GetChecksum() *PatternFlowIcmpEchoChecksum { +func (x *FlowIpv4) GetPriority() *FlowIpv4Priority { if x != nil { - return x.Checksum + return x.Priority } return nil } -func (x *FlowIcmpEcho) GetIdentifier() *PatternFlowIcmpEchoIdentifier { +func (x *FlowIpv4) GetTotalLength() *PatternFlowIpv4TotalLength { if x != nil { - return x.Identifier + return x.TotalLength } return nil } -func (x *FlowIcmpEcho) GetSequenceNumber() *PatternFlowIcmpEchoSequenceNumber { +func (x *FlowIpv4) GetIdentification() *PatternFlowIpv4Identification { if x != nil { - return x.SequenceNumber + return x.Identification } return nil } -// ICMPv6 packet header -type FlowIcmpv6 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *FlowIpv4) GetReserved() *PatternFlowIpv4Reserved { + if x != nil { + return x.Reserved + } + return nil +} - // Description missing in models - // default = Choice.Enum.echo - Choice *FlowIcmpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmpv6_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Echo *FlowIcmpv6Echo `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` +func (x *FlowIpv4) GetDontFragment() *PatternFlowIpv4DontFragment { + if x != nil { + return x.DontFragment + } + return nil } -func (x *FlowIcmpv6) Reset() { - *x = FlowIcmpv6{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[166] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowIpv4) GetMoreFragments() *PatternFlowIpv4MoreFragments { + if x != nil { + return x.MoreFragments } + return nil } -func (x *FlowIcmpv6) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowIpv4) GetFragmentOffset() *PatternFlowIpv4FragmentOffset { + if x != nil { + return x.FragmentOffset + } + return nil } -func (*FlowIcmpv6) ProtoMessage() {} +func (x *FlowIpv4) GetTimeToLive() *PatternFlowIpv4TimeToLive { + if x != nil { + return x.TimeToLive + } + return nil +} -func (x *FlowIcmpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[166] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowIpv4) GetProtocol() *PatternFlowIpv4Protocol { + if x != nil { + return x.Protocol } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowIcmpv6.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{166} +func (x *FlowIpv4) GetHeaderChecksum() *PatternFlowIpv4HeaderChecksum { + if x != nil { + return x.HeaderChecksum + } + return nil } -func (x *FlowIcmpv6) GetChoice() FlowIcmpv6_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowIpv4) GetSrc() *PatternFlowIpv4Src { + if x != nil { + return x.Src } - return FlowIcmpv6_Choice_unspecified + return nil } -func (x *FlowIcmpv6) GetEcho() *FlowIcmpv6Echo { +func (x *FlowIpv4) GetDst() *PatternFlowIpv4Dst { if x != nil { - return x.Echo + return x.Dst } return nil } -// Packet Header for ICMPv6 Echo -type FlowIcmpv6Echo struct { +// A container for ipv4 raw, tos, dscp ip priorities. +type FlowIpv4Priority struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Type *PatternFlowIcmpv6EchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` - // Description missing in models - Code *PatternFlowIcmpv6EchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + // default = Choice.Enum.dscp + Choice *FlowIpv4Priority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Priority_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Identifier *PatternFlowIcmpv6EchoIdentifier `protobuf:"bytes,3,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + Raw *PatternFlowIpv4PriorityRaw `protobuf:"bytes,2,opt,name=raw,proto3,oneof" json:"raw,omitempty"` // Description missing in models - SequenceNumber *PatternFlowIcmpv6EchoSequenceNumber `protobuf:"bytes,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + Tos *FlowIpv4Tos `protobuf:"bytes,3,opt,name=tos,proto3,oneof" json:"tos,omitempty"` // Description missing in models - Checksum *PatternFlowIcmpv6EchoChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Dscp *FlowIpv4Dscp `protobuf:"bytes,4,opt,name=dscp,proto3,oneof" json:"dscp,omitempty"` } -func (x *FlowIcmpv6Echo) Reset() { - *x = FlowIcmpv6Echo{} +func (x *FlowIpv4Priority) Reset() { + *x = FlowIpv4Priority{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[167] + mi := &file_otg_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmpv6Echo) String() string { +func (x *FlowIpv4Priority) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpv6Echo) ProtoMessage() {} +func (*FlowIpv4Priority) ProtoMessage() {} -func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[167] +func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32923,77 +32935,68 @@ func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpv6Echo.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6Echo) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{167} -} - -func (x *FlowIcmpv6Echo) GetType() *PatternFlowIcmpv6EchoType { - if x != nil { - return x.Type - } - return nil +// Deprecated: Use FlowIpv4Priority.ProtoReflect.Descriptor instead. +func (*FlowIpv4Priority) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{169} } -func (x *FlowIcmpv6Echo) GetCode() *PatternFlowIcmpv6EchoCode { - if x != nil { - return x.Code +func (x *FlowIpv4Priority) GetChoice() FlowIpv4Priority_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowIpv4Priority_Choice_unspecified } -func (x *FlowIcmpv6Echo) GetIdentifier() *PatternFlowIcmpv6EchoIdentifier { +func (x *FlowIpv4Priority) GetRaw() *PatternFlowIpv4PriorityRaw { if x != nil { - return x.Identifier + return x.Raw } return nil } -func (x *FlowIcmpv6Echo) GetSequenceNumber() *PatternFlowIcmpv6EchoSequenceNumber { +func (x *FlowIpv4Priority) GetTos() *FlowIpv4Tos { if x != nil { - return x.SequenceNumber + return x.Tos } return nil } -func (x *FlowIcmpv6Echo) GetChecksum() *PatternFlowIcmpv6EchoChecksum { +func (x *FlowIpv4Priority) GetDscp() *FlowIpv4Dscp { if x != nil { - return x.Checksum + return x.Dscp } return nil } -// PPP packet header -type FlowPpp struct { +// Differentiated services code point (DSCP) packet field. +type FlowIpv4Dscp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Address *PatternFlowPppAddress `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // Description missing in models - Control *PatternFlowPppControl `protobuf:"bytes,2,opt,name=control,proto3,oneof" json:"control,omitempty"` + Phb *PatternFlowIpv4DscpPhb `protobuf:"bytes,1,opt,name=phb,proto3,oneof" json:"phb,omitempty"` // Description missing in models - ProtocolType *PatternFlowPppProtocolType `protobuf:"bytes,3,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + Ecn *PatternFlowIpv4DscpEcn `protobuf:"bytes,2,opt,name=ecn,proto3,oneof" json:"ecn,omitempty"` } -func (x *FlowPpp) Reset() { - *x = FlowPpp{} +func (x *FlowIpv4Dscp) Reset() { + *x = FlowIpv4Dscp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[168] + mi := &file_otg_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPpp) String() string { +func (x *FlowIpv4Dscp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPpp) ProtoMessage() {} +func (*FlowIpv4Dscp) ProtoMessage() {} -func (x *FlowPpp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[168] +func (x *FlowIpv4Dscp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33004,67 +33007,62 @@ func (x *FlowPpp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPpp.ProtoReflect.Descriptor instead. -func (*FlowPpp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{168} -} - -func (x *FlowPpp) GetAddress() *PatternFlowPppAddress { - if x != nil { - return x.Address - } - return nil +// Deprecated: Use FlowIpv4Dscp.ProtoReflect.Descriptor instead. +func (*FlowIpv4Dscp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{170} } -func (x *FlowPpp) GetControl() *PatternFlowPppControl { +func (x *FlowIpv4Dscp) GetPhb() *PatternFlowIpv4DscpPhb { if x != nil { - return x.Control + return x.Phb } return nil } -func (x *FlowPpp) GetProtocolType() *PatternFlowPppProtocolType { +func (x *FlowIpv4Dscp) GetEcn() *PatternFlowIpv4DscpEcn { if x != nil { - return x.ProtocolType + return x.Ecn } return nil } -// IGMPv1 packet header -type FlowIgmpv1 struct { +// Type of service (TOS) packet field. +type FlowIpv4Tos struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Version *PatternFlowIgmpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + Precedence *PatternFlowIpv4TosPrecedence `protobuf:"bytes,1,opt,name=precedence,proto3,oneof" json:"precedence,omitempty"` // Description missing in models - Type *PatternFlowIgmpv1Type `protobuf:"bytes,2,opt,name=type,proto3,oneof" json:"type,omitempty"` + Delay *PatternFlowIpv4TosDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` // Description missing in models - Unused *PatternFlowIgmpv1Unused `protobuf:"bytes,3,opt,name=unused,proto3,oneof" json:"unused,omitempty"` + Throughput *PatternFlowIpv4TosThroughput `protobuf:"bytes,3,opt,name=throughput,proto3,oneof" json:"throughput,omitempty"` // Description missing in models - Checksum *PatternFlowIgmpv1Checksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + Reliability *PatternFlowIpv4TosReliability `protobuf:"bytes,4,opt,name=reliability,proto3,oneof" json:"reliability,omitempty"` // Description missing in models - GroupAddress *PatternFlowIgmpv1GroupAddress `protobuf:"bytes,5,opt,name=group_address,json=groupAddress,proto3,oneof" json:"group_address,omitempty"` + Monetary *PatternFlowIpv4TosMonetary `protobuf:"bytes,5,opt,name=monetary,proto3,oneof" json:"monetary,omitempty"` + // Description missing in models + Unused *PatternFlowIpv4TosUnused `protobuf:"bytes,6,opt,name=unused,proto3,oneof" json:"unused,omitempty"` } -func (x *FlowIgmpv1) Reset() { - *x = FlowIgmpv1{} +func (x *FlowIpv4Tos) Reset() { + *x = FlowIpv4Tos{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[169] + mi := &file_otg_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIgmpv1) String() string { +func (x *FlowIpv4Tos) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIgmpv1) ProtoMessage() {} +func (*FlowIpv4Tos) ProtoMessage() {} -func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[169] +func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33075,80 +33073,94 @@ func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIgmpv1.ProtoReflect.Descriptor instead. -func (*FlowIgmpv1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{169} +// Deprecated: Use FlowIpv4Tos.ProtoReflect.Descriptor instead. +func (*FlowIpv4Tos) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{171} } -func (x *FlowIgmpv1) GetVersion() *PatternFlowIgmpv1Version { +func (x *FlowIpv4Tos) GetPrecedence() *PatternFlowIpv4TosPrecedence { if x != nil { - return x.Version + return x.Precedence } return nil } -func (x *FlowIgmpv1) GetType() *PatternFlowIgmpv1Type { +func (x *FlowIpv4Tos) GetDelay() *PatternFlowIpv4TosDelay { if x != nil { - return x.Type + return x.Delay } return nil } -func (x *FlowIgmpv1) GetUnused() *PatternFlowIgmpv1Unused { +func (x *FlowIpv4Tos) GetThroughput() *PatternFlowIpv4TosThroughput { if x != nil { - return x.Unused + return x.Throughput } return nil } -func (x *FlowIgmpv1) GetChecksum() *PatternFlowIgmpv1Checksum { +func (x *FlowIpv4Tos) GetReliability() *PatternFlowIpv4TosReliability { if x != nil { - return x.Checksum + return x.Reliability } return nil } -func (x *FlowIgmpv1) GetGroupAddress() *PatternFlowIgmpv1GroupAddress { +func (x *FlowIpv4Tos) GetMonetary() *PatternFlowIpv4TosMonetary { if x != nil { - return x.GroupAddress + return x.Monetary } return nil } -// MPLS packet header; When configuring multiple such headers, the count shall not exceed -// 20. -type FlowMpls struct { +func (x *FlowIpv4Tos) GetUnused() *PatternFlowIpv4TosUnused { + if x != nil { + return x.Unused + } + return nil +} + +// IPv6 packet header +type FlowIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Label *PatternFlowMplsLabel `protobuf:"bytes,1,opt,name=label,proto3,oneof" json:"label,omitempty"` + Version *PatternFlowIpv6Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` // Description missing in models - TrafficClass *PatternFlowMplsTrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` + TrafficClass *PatternFlowIpv6TrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` // Description missing in models - BottomOfStack *PatternFlowMplsBottomOfStack `protobuf:"bytes,3,opt,name=bottom_of_stack,json=bottomOfStack,proto3,oneof" json:"bottom_of_stack,omitempty"` + FlowLabel *PatternFlowIpv6FlowLabel `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3,oneof" json:"flow_label,omitempty"` // Description missing in models - TimeToLive *PatternFlowMplsTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + PayloadLength *PatternFlowIpv6PayloadLength `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3,oneof" json:"payload_length,omitempty"` + // Description missing in models + NextHeader *PatternFlowIpv6NextHeader `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3,oneof" json:"next_header,omitempty"` + // Description missing in models + HopLimit *PatternFlowIpv6HopLimit `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` + // Description missing in models + Src *PatternFlowIpv6Src `protobuf:"bytes,7,opt,name=src,proto3,oneof" json:"src,omitempty"` + // Description missing in models + Dst *PatternFlowIpv6Dst `protobuf:"bytes,8,opt,name=dst,proto3,oneof" json:"dst,omitempty"` } -func (x *FlowMpls) Reset() { - *x = FlowMpls{} +func (x *FlowIpv6) Reset() { + *x = FlowIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[170] + mi := &file_otg_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMpls) String() string { +func (x *FlowIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMpls) ProtoMessage() {} +func (*FlowIpv6) ProtoMessage() {} -func (x *FlowMpls) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[170] +func (x *FlowIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33159,76 +33171,118 @@ func (x *FlowMpls) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMpls.ProtoReflect.Descriptor instead. -func (*FlowMpls) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{170} +// Deprecated: Use FlowIpv6.ProtoReflect.Descriptor instead. +func (*FlowIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{172} } -func (x *FlowMpls) GetLabel() *PatternFlowMplsLabel { +func (x *FlowIpv6) GetVersion() *PatternFlowIpv6Version { if x != nil { - return x.Label + return x.Version } return nil } -func (x *FlowMpls) GetTrafficClass() *PatternFlowMplsTrafficClass { +func (x *FlowIpv6) GetTrafficClass() *PatternFlowIpv6TrafficClass { if x != nil { return x.TrafficClass } return nil } -func (x *FlowMpls) GetBottomOfStack() *PatternFlowMplsBottomOfStack { +func (x *FlowIpv6) GetFlowLabel() *PatternFlowIpv6FlowLabel { if x != nil { - return x.BottomOfStack + return x.FlowLabel } return nil } -func (x *FlowMpls) GetTimeToLive() *PatternFlowMplsTimeToLive { +func (x *FlowIpv6) GetPayloadLength() *PatternFlowIpv6PayloadLength { if x != nil { - return x.TimeToLive + return x.PayloadLength } return nil } -// The frame size which overrides the total length of the packet -type FlowSize struct { +func (x *FlowIpv6) GetNextHeader() *PatternFlowIpv6NextHeader { + if x != nil { + return x.NextHeader + } + return nil +} + +func (x *FlowIpv6) GetHopLimit() *PatternFlowIpv6HopLimit { + if x != nil { + return x.HopLimit + } + return nil +} + +func (x *FlowIpv6) GetSrc() *PatternFlowIpv6Src { + if x != nil { + return x.Src + } + return nil +} + +func (x *FlowIpv6) GetDst() *PatternFlowIpv6Dst { + if x != nil { + return x.Dst + } + return nil +} + +// IEEE 802.1Qbb PFC Pause packet header. +type FlowPfcPause struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.fixed - Choice *FlowSize_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSize_Choice_Enum,oneof" json:"choice,omitempty"` + Dst *PatternFlowPfcPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` // Description missing in models - // default = 64 - Fixed *uint32 `protobuf:"varint,2,opt,name=fixed,proto3,oneof" json:"fixed,omitempty"` + Src *PatternFlowPfcPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` // Description missing in models - Increment *FlowSizeIncrement `protobuf:"bytes,3,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + EtherType *PatternFlowPfcPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` // Description missing in models - Random *FlowSizeRandom `protobuf:"bytes,4,opt,name=random,proto3,oneof" json:"random,omitempty"` + ControlOpCode *PatternFlowPfcPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` // Description missing in models - WeightPairs *FlowSizeWeightPairs `protobuf:"bytes,5,opt,name=weight_pairs,json=weightPairs,proto3,oneof" json:"weight_pairs,omitempty"` + ClassEnableVector *PatternFlowPfcPauseClassEnableVector `protobuf:"bytes,5,opt,name=class_enable_vector,json=classEnableVector,proto3,oneof" json:"class_enable_vector,omitempty"` + // Description missing in models + PauseClass_0 *PatternFlowPfcPausePauseClass0 `protobuf:"bytes,6,opt,name=pause_class_0,json=pauseClass0,proto3,oneof" json:"pause_class_0,omitempty"` + // Description missing in models + PauseClass_1 *PatternFlowPfcPausePauseClass1 `protobuf:"bytes,7,opt,name=pause_class_1,json=pauseClass1,proto3,oneof" json:"pause_class_1,omitempty"` + // Description missing in models + PauseClass_2 *PatternFlowPfcPausePauseClass2 `protobuf:"bytes,8,opt,name=pause_class_2,json=pauseClass2,proto3,oneof" json:"pause_class_2,omitempty"` + // Description missing in models + PauseClass_3 *PatternFlowPfcPausePauseClass3 `protobuf:"bytes,9,opt,name=pause_class_3,json=pauseClass3,proto3,oneof" json:"pause_class_3,omitempty"` + // Description missing in models + PauseClass_4 *PatternFlowPfcPausePauseClass4 `protobuf:"bytes,10,opt,name=pause_class_4,json=pauseClass4,proto3,oneof" json:"pause_class_4,omitempty"` + // Description missing in models + PauseClass_5 *PatternFlowPfcPausePauseClass5 `protobuf:"bytes,11,opt,name=pause_class_5,json=pauseClass5,proto3,oneof" json:"pause_class_5,omitempty"` + // Description missing in models + PauseClass_6 *PatternFlowPfcPausePauseClass6 `protobuf:"bytes,12,opt,name=pause_class_6,json=pauseClass6,proto3,oneof" json:"pause_class_6,omitempty"` + // Description missing in models + PauseClass_7 *PatternFlowPfcPausePauseClass7 `protobuf:"bytes,13,opt,name=pause_class_7,json=pauseClass7,proto3,oneof" json:"pause_class_7,omitempty"` } -func (x *FlowSize) Reset() { - *x = FlowSize{} +func (x *FlowPfcPause) Reset() { + *x = FlowPfcPause{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[171] + mi := &file_otg_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSize) String() string { +func (x *FlowPfcPause) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSize) ProtoMessage() {} +func (*FlowPfcPause) ProtoMessage() {} -func (x *FlowSize) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[171] +func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33239,148 +33293,137 @@ func (x *FlowSize) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSize.ProtoReflect.Descriptor instead. -func (*FlowSize) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{171} +// Deprecated: Use FlowPfcPause.ProtoReflect.Descriptor instead. +func (*FlowPfcPause) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{173} } -func (x *FlowSize) GetChoice() FlowSize_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowPfcPause) GetDst() *PatternFlowPfcPauseDst { + if x != nil { + return x.Dst } - return FlowSize_Choice_unspecified + return nil } -func (x *FlowSize) GetFixed() uint32 { - if x != nil && x.Fixed != nil { - return *x.Fixed +func (x *FlowPfcPause) GetSrc() *PatternFlowPfcPauseSrc { + if x != nil { + return x.Src } - return 0 + return nil } -func (x *FlowSize) GetIncrement() *FlowSizeIncrement { +func (x *FlowPfcPause) GetEtherType() *PatternFlowPfcPauseEtherType { if x != nil { - return x.Increment + return x.EtherType } return nil } -func (x *FlowSize) GetRandom() *FlowSizeRandom { +func (x *FlowPfcPause) GetControlOpCode() *PatternFlowPfcPauseControlOpCode { if x != nil { - return x.Random + return x.ControlOpCode } return nil } -func (x *FlowSize) GetWeightPairs() *FlowSizeWeightPairs { +func (x *FlowPfcPause) GetClassEnableVector() *PatternFlowPfcPauseClassEnableVector { if x != nil { - return x.WeightPairs + return x.ClassEnableVector } return nil } -// Frame size that increments from a starting size to -// an ending size incrementing by a step size. -type FlowSizeIncrement struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Starting frame size in bytes - // default = 64 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Ending frame size in bytes - // default = 1518 - End *uint32 `protobuf:"varint,2,opt,name=end,proto3,oneof" json:"end,omitempty"` - // Step frame size in bytes - // default = 1 - Step *uint32 `protobuf:"varint,3,opt,name=step,proto3,oneof" json:"step,omitempty"` +func (x *FlowPfcPause) GetPauseClass_0() *PatternFlowPfcPausePauseClass0 { + if x != nil { + return x.PauseClass_0 + } + return nil } -func (x *FlowSizeIncrement) Reset() { - *x = FlowSizeIncrement{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[172] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowPfcPause) GetPauseClass_1() *PatternFlowPfcPausePauseClass1 { + if x != nil { + return x.PauseClass_1 } + return nil } -func (x *FlowSizeIncrement) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowPfcPause) GetPauseClass_2() *PatternFlowPfcPausePauseClass2 { + if x != nil { + return x.PauseClass_2 + } + return nil } -func (*FlowSizeIncrement) ProtoMessage() {} - -func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[172] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowPfcPause) GetPauseClass_3() *PatternFlowPfcPausePauseClass3 { + if x != nil { + return x.PauseClass_3 } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowSizeIncrement.ProtoReflect.Descriptor instead. -func (*FlowSizeIncrement) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{172} +func (x *FlowPfcPause) GetPauseClass_4() *PatternFlowPfcPausePauseClass4 { + if x != nil { + return x.PauseClass_4 + } + return nil } -func (x *FlowSizeIncrement) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *FlowPfcPause) GetPauseClass_5() *PatternFlowPfcPausePauseClass5 { + if x != nil { + return x.PauseClass_5 } - return 0 + return nil } -func (x *FlowSizeIncrement) GetEnd() uint32 { - if x != nil && x.End != nil { - return *x.End +func (x *FlowPfcPause) GetPauseClass_6() *PatternFlowPfcPausePauseClass6 { + if x != nil { + return x.PauseClass_6 } - return 0 + return nil } -func (x *FlowSizeIncrement) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *FlowPfcPause) GetPauseClass_7() *PatternFlowPfcPausePauseClass7 { + if x != nil { + return x.PauseClass_7 } - return 0 + return nil } -// Random frame size from a min value to a max value. -type FlowSizeRandom struct { +// IEEE 802.3x global ethernet pause packet header +type FlowEthernetPause struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 - Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + Dst *PatternFlowEthernetPauseDst `protobuf:"bytes,1,opt,name=dst,proto3,oneof" json:"dst,omitempty"` // Description missing in models - // default = 1518 - Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + Src *PatternFlowEthernetPauseSrc `protobuf:"bytes,2,opt,name=src,proto3,oneof" json:"src,omitempty"` + // Description missing in models + EtherType *PatternFlowEthernetPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3,oneof" json:"ether_type,omitempty"` + // Description missing in models + ControlOpCode *PatternFlowEthernetPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3,oneof" json:"control_op_code,omitempty"` + // Description missing in models + Time *PatternFlowEthernetPauseTime `protobuf:"bytes,5,opt,name=time,proto3,oneof" json:"time,omitempty"` } -func (x *FlowSizeRandom) Reset() { - *x = FlowSizeRandom{} +func (x *FlowEthernetPause) Reset() { + *x = FlowEthernetPause{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[173] + mi := &file_otg_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeRandom) String() string { +func (x *FlowEthernetPause) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeRandom) ProtoMessage() {} +func (*FlowEthernetPause) ProtoMessage() {} -func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[173] +func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33391,73 +33434,101 @@ func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeRandom.ProtoReflect.Descriptor instead. -func (*FlowSizeRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{173} +// Deprecated: Use FlowEthernetPause.ProtoReflect.Descriptor instead. +func (*FlowEthernetPause) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{174} } -func (x *FlowSizeRandom) GetMin() uint32 { - if x != nil && x.Min != nil { - return *x.Min +func (x *FlowEthernetPause) GetDst() *PatternFlowEthernetPauseDst { + if x != nil { + return x.Dst } - return 0 + return nil } -func (x *FlowSizeRandom) GetMax() uint32 { - if x != nil && x.Max != nil { - return *x.Max +func (x *FlowEthernetPause) GetSrc() *PatternFlowEthernetPauseSrc { + if x != nil { + return x.Src } - return 0 + return nil } -// Frame size distribution, defined as pairs (including IMIX distribution). -// Frames are randomly generated such that the proportion of each frame size out of -// the total number of frames -// are matching with the weight value of the pair. However, as with any -// other probability -// distribution, the sample distribution is close to theoretical value only if the size -// of the sample is reasonably large. -// When the number of frames is very low the transmitted frames may not come close to -// the ratio described in the weight. -type FlowSizeWeightPairs struct { +func (x *FlowEthernetPause) GetEtherType() *PatternFlowEthernetPauseEtherType { + if x != nil { + return x.EtherType + } + return nil +} + +func (x *FlowEthernetPause) GetControlOpCode() *PatternFlowEthernetPauseControlOpCode { + if x != nil { + return x.ControlOpCode + } + return nil +} + +func (x *FlowEthernetPause) GetTime() *PatternFlowEthernetPauseTime { + if x != nil { + return x.Time + } + return nil +} + +// TCP packet header +type FlowTcp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.predefined - Choice *FlowSizeWeightPairs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSizeWeightPairs_Choice_Enum,oneof" json:"choice,omitempty"` - // Specify predefined frame size distribution pairs (including IMIX distribution). - // - // The available predefined distribution pairs are: - // - IMIX (64:7, 570:4, and 1518:1) - // - IPSec IMIX (90:58.67, 92:2, 594:23.66 and 1418:15.67) - // - IPv6 IMIX (60:58.67, 496:2, 594:23.66 and 1518:15.67) - // - Standard IMIX (58:58.67, 62:2, 594:23.66 and 1518:15.67) - // - TCP IMIX (90:58.67, 92:2, 594:23.66 and 1518:15.67) - // default = Predefined.Enum.imix - Predefined *FlowSizeWeightPairs_Predefined_Enum `protobuf:"varint,2,opt,name=predefined,proto3,enum=otg.FlowSizeWeightPairs_Predefined_Enum,oneof" json:"predefined,omitempty"` + SrcPort *PatternFlowTcpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` // Description missing in models - Custom []*FlowSizeWeightPairsCustom `protobuf:"bytes,3,rep,name=custom,proto3" json:"custom,omitempty"` + DstPort *PatternFlowTcpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + // Description missing in models + SeqNum *PatternFlowTcpSeqNum `protobuf:"bytes,3,opt,name=seq_num,json=seqNum,proto3,oneof" json:"seq_num,omitempty"` + // Description missing in models + AckNum *PatternFlowTcpAckNum `protobuf:"bytes,4,opt,name=ack_num,json=ackNum,proto3,oneof" json:"ack_num,omitempty"` + // Description missing in models + DataOffset *PatternFlowTcpDataOffset `protobuf:"bytes,5,opt,name=data_offset,json=dataOffset,proto3,oneof" json:"data_offset,omitempty"` + // Description missing in models + EcnNs *PatternFlowTcpEcnNs `protobuf:"bytes,6,opt,name=ecn_ns,json=ecnNs,proto3,oneof" json:"ecn_ns,omitempty"` + // Description missing in models + EcnCwr *PatternFlowTcpEcnCwr `protobuf:"bytes,7,opt,name=ecn_cwr,json=ecnCwr,proto3,oneof" json:"ecn_cwr,omitempty"` + // Description missing in models + EcnEcho *PatternFlowTcpEcnEcho `protobuf:"bytes,8,opt,name=ecn_echo,json=ecnEcho,proto3,oneof" json:"ecn_echo,omitempty"` + // Description missing in models + CtlUrg *PatternFlowTcpCtlUrg `protobuf:"bytes,9,opt,name=ctl_urg,json=ctlUrg,proto3,oneof" json:"ctl_urg,omitempty"` + // Description missing in models + CtlAck *PatternFlowTcpCtlAck `protobuf:"bytes,10,opt,name=ctl_ack,json=ctlAck,proto3,oneof" json:"ctl_ack,omitempty"` + // Description missing in models + CtlPsh *PatternFlowTcpCtlPsh `protobuf:"bytes,11,opt,name=ctl_psh,json=ctlPsh,proto3,oneof" json:"ctl_psh,omitempty"` + // Description missing in models + CtlRst *PatternFlowTcpCtlRst `protobuf:"bytes,12,opt,name=ctl_rst,json=ctlRst,proto3,oneof" json:"ctl_rst,omitempty"` + // Description missing in models + CtlSyn *PatternFlowTcpCtlSyn `protobuf:"bytes,13,opt,name=ctl_syn,json=ctlSyn,proto3,oneof" json:"ctl_syn,omitempty"` + // Description missing in models + CtlFin *PatternFlowTcpCtlFin `protobuf:"bytes,14,opt,name=ctl_fin,json=ctlFin,proto3,oneof" json:"ctl_fin,omitempty"` + // Description missing in models + Window *PatternFlowTcpWindow `protobuf:"bytes,15,opt,name=window,proto3,oneof" json:"window,omitempty"` } -func (x *FlowSizeWeightPairs) Reset() { - *x = FlowSizeWeightPairs{} +func (x *FlowTcp) Reset() { + *x = FlowTcp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[174] + mi := &file_otg_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairs) String() string { +func (x *FlowTcp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs) ProtoMessage() {} +func (*FlowTcp) ProtoMessage() {} -func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[174] +func (x *FlowTcp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33468,124 +33539,134 @@ func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairs.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174} +// Deprecated: Use FlowTcp.ProtoReflect.Descriptor instead. +func (*FlowTcp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{175} } -func (x *FlowSizeWeightPairs) GetChoice() FlowSizeWeightPairs_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowTcp) GetSrcPort() *PatternFlowTcpSrcPort { + if x != nil { + return x.SrcPort } - return FlowSizeWeightPairs_Choice_unspecified + return nil } -func (x *FlowSizeWeightPairs) GetPredefined() FlowSizeWeightPairs_Predefined_Enum { - if x != nil && x.Predefined != nil { - return *x.Predefined +func (x *FlowTcp) GetDstPort() *PatternFlowTcpDstPort { + if x != nil { + return x.DstPort } - return FlowSizeWeightPairs_Predefined_unspecified + return nil } -func (x *FlowSizeWeightPairs) GetCustom() []*FlowSizeWeightPairsCustom { +func (x *FlowTcp) GetSeqNum() *PatternFlowTcpSeqNum { if x != nil { - return x.Custom + return x.SeqNum } return nil } -// Custom frame size distribution pair. -type FlowSizeWeightPairsCustom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *FlowTcp) GetAckNum() *PatternFlowTcpAckNum { + if x != nil { + return x.AckNum + } + return nil +} - // The size of the frame (in bytes) for this weight pair. - // default = 64 - Size *uint32 `protobuf:"varint,1,opt,name=size,proto3,oneof" json:"size,omitempty"` - // Weight assigned to the corresponding frame size in this weight pair. - // Higher weight means more packets. - // default = 1 - Weight *float32 `protobuf:"fixed32,2,opt,name=weight,proto3,oneof" json:"weight,omitempty"` +func (x *FlowTcp) GetDataOffset() *PatternFlowTcpDataOffset { + if x != nil { + return x.DataOffset + } + return nil } -func (x *FlowSizeWeightPairsCustom) Reset() { - *x = FlowSizeWeightPairsCustom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[175] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowTcp) GetEcnNs() *PatternFlowTcpEcnNs { + if x != nil { + return x.EcnNs } + return nil } -func (x *FlowSizeWeightPairsCustom) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowTcp) GetEcnCwr() *PatternFlowTcpEcnCwr { + if x != nil { + return x.EcnCwr + } + return nil } -func (*FlowSizeWeightPairsCustom) ProtoMessage() {} +func (x *FlowTcp) GetEcnEcho() *PatternFlowTcpEcnEcho { + if x != nil { + return x.EcnEcho + } + return nil +} -func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[175] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowTcp) GetCtlUrg() *PatternFlowTcpCtlUrg { + if x != nil { + return x.CtlUrg } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowSizeWeightPairsCustom.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairsCustom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{175} +func (x *FlowTcp) GetCtlAck() *PatternFlowTcpCtlAck { + if x != nil { + return x.CtlAck + } + return nil } -func (x *FlowSizeWeightPairsCustom) GetSize() uint32 { - if x != nil && x.Size != nil { - return *x.Size +func (x *FlowTcp) GetCtlPsh() *PatternFlowTcpCtlPsh { + if x != nil { + return x.CtlPsh } - return 0 + return nil } -func (x *FlowSizeWeightPairsCustom) GetWeight() float32 { - if x != nil && x.Weight != nil { - return *x.Weight +func (x *FlowTcp) GetCtlRst() *PatternFlowTcpCtlRst { + if x != nil { + return x.CtlRst } - return 0 + return nil } -// The rate of packet transmission -type FlowRate struct { +func (x *FlowTcp) GetCtlSyn() *PatternFlowTcpCtlSyn { + if x != nil { + return x.CtlSyn + } + return nil +} + +func (x *FlowTcp) GetCtlFin() *PatternFlowTcpCtlFin { + if x != nil { + return x.CtlFin + } + return nil +} + +func (x *FlowTcp) GetWindow() *PatternFlowTcpWindow { + if x != nil { + return x.Window + } + return nil +} + +// UDP packet header +type FlowUdp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The available types of flow rate. - // default = Choice.Enum.pps - Choice *FlowRate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRate_Choice_Enum,oneof" json:"choice,omitempty"` - // Packets per second. - // default = 1000 - Pps *uint64 `protobuf:"varint,2,opt,name=pps,proto3,oneof" json:"pps,omitempty"` - // Bits per second. - // default = 1000000000 - Bps *uint64 `protobuf:"varint,3,opt,name=bps,proto3,oneof" json:"bps,omitempty"` - // Kilobits per second. - // default = 1000000 - Kbps *uint64 `protobuf:"varint,4,opt,name=kbps,proto3,oneof" json:"kbps,omitempty"` - // Megabits per second. - // default = 1000 - Mbps *uint64 `protobuf:"varint,5,opt,name=mbps,proto3,oneof" json:"mbps,omitempty"` - // Gigabits per second. - // default = 1 - Gbps *uint32 `protobuf:"varint,6,opt,name=gbps,proto3,oneof" json:"gbps,omitempty"` - // The percentage of a port location's available bandwidth. - // default = 100 - Percentage *float32 `protobuf:"fixed32,7,opt,name=percentage,proto3,oneof" json:"percentage,omitempty"` + // Description missing in models + SrcPort *PatternFlowUdpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3,oneof" json:"src_port,omitempty"` + // Description missing in models + DstPort *PatternFlowUdpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3,oneof" json:"dst_port,omitempty"` + // Description missing in models + Length *PatternFlowUdpLength `protobuf:"bytes,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // Description missing in models + Checksum *PatternFlowUdpChecksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` } -func (x *FlowRate) Reset() { - *x = FlowRate{} +func (x *FlowUdp) Reset() { + *x = FlowUdp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33593,13 +33674,13 @@ func (x *FlowRate) Reset() { } } -func (x *FlowRate) String() string { +func (x *FlowUdp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRate) ProtoMessage() {} +func (*FlowUdp) ProtoMessage() {} -func (x *FlowRate) ProtoReflect() protoreflect.Message { +func (x *FlowUdp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33611,81 +33692,61 @@ func (x *FlowRate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRate.ProtoReflect.Descriptor instead. -func (*FlowRate) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowUdp.ProtoReflect.Descriptor instead. +func (*FlowUdp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{176} } -func (x *FlowRate) GetChoice() FlowRate_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowRate_Choice_unspecified -} - -func (x *FlowRate) GetPps() uint64 { - if x != nil && x.Pps != nil { - return *x.Pps - } - return 0 -} - -func (x *FlowRate) GetBps() uint64 { - if x != nil && x.Bps != nil { - return *x.Bps - } - return 0 -} - -func (x *FlowRate) GetKbps() uint64 { - if x != nil && x.Kbps != nil { - return *x.Kbps +func (x *FlowUdp) GetSrcPort() *PatternFlowUdpSrcPort { + if x != nil { + return x.SrcPort } - return 0 + return nil } -func (x *FlowRate) GetMbps() uint64 { - if x != nil && x.Mbps != nil { - return *x.Mbps +func (x *FlowUdp) GetDstPort() *PatternFlowUdpDstPort { + if x != nil { + return x.DstPort } - return 0 + return nil } -func (x *FlowRate) GetGbps() uint32 { - if x != nil && x.Gbps != nil { - return *x.Gbps +func (x *FlowUdp) GetLength() *PatternFlowUdpLength { + if x != nil { + return x.Length } - return 0 + return nil } -func (x *FlowRate) GetPercentage() float32 { - if x != nil && x.Percentage != nil { - return *x.Percentage +func (x *FlowUdp) GetChecksum() *PatternFlowUdpChecksum { + if x != nil { + return x.Checksum } - return 0 + return nil } -// A container for different transmit durations. -type FlowDuration struct { +// Standard GRE packet header (RFC2784) +type FlowGre struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A choice used to determine the type of duration. - // default = Choice.Enum.continuous - Choice *FlowDuration_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDuration_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - FixedPackets *FlowFixedPackets `protobuf:"bytes,2,opt,name=fixed_packets,json=fixedPackets,proto3,oneof" json:"fixed_packets,omitempty"` + ChecksumPresent *PatternFlowGreChecksumPresent `protobuf:"bytes,1,opt,name=checksum_present,json=checksumPresent,proto3,oneof" json:"checksum_present,omitempty"` // Description missing in models - FixedSeconds *FlowFixedSeconds `protobuf:"bytes,3,opt,name=fixed_seconds,json=fixedSeconds,proto3,oneof" json:"fixed_seconds,omitempty"` + Reserved0 *PatternFlowGreReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3,oneof" json:"reserved0,omitempty"` // Description missing in models - Burst *FlowBurst `protobuf:"bytes,4,opt,name=burst,proto3,oneof" json:"burst,omitempty"` + Version *PatternFlowGreVersion `protobuf:"bytes,3,opt,name=version,proto3,oneof" json:"version,omitempty"` // Description missing in models - Continuous *FlowContinuous `protobuf:"bytes,5,opt,name=continuous,proto3,oneof" json:"continuous,omitempty"` + Protocol *PatternFlowGreProtocol `protobuf:"bytes,4,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // Description missing in models + Checksum *PatternFlowGreChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + // Description missing in models + Reserved1 *PatternFlowGreReserved1 `protobuf:"bytes,6,opt,name=reserved1,proto3,oneof" json:"reserved1,omitempty"` } -func (x *FlowDuration) Reset() { - *x = FlowDuration{} +func (x *FlowGre) Reset() { + *x = FlowGre{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33693,13 +33754,13 @@ func (x *FlowDuration) Reset() { } } -func (x *FlowDuration) String() string { +func (x *FlowGre) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDuration) ProtoMessage() {} +func (*FlowGre) ProtoMessage() {} -func (x *FlowDuration) ProtoReflect() protoreflect.Message { +func (x *FlowGre) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33711,61 +33772,89 @@ func (x *FlowDuration) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDuration.ProtoReflect.Descriptor instead. -func (*FlowDuration) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowGre.ProtoReflect.Descriptor instead. +func (*FlowGre) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{177} } -func (x *FlowDuration) GetChoice() FlowDuration_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowGre) GetChecksumPresent() *PatternFlowGreChecksumPresent { + if x != nil { + return x.ChecksumPresent } - return FlowDuration_Choice_unspecified + return nil } -func (x *FlowDuration) GetFixedPackets() *FlowFixedPackets { +func (x *FlowGre) GetReserved0() *PatternFlowGreReserved0 { if x != nil { - return x.FixedPackets + return x.Reserved0 } return nil } -func (x *FlowDuration) GetFixedSeconds() *FlowFixedSeconds { +func (x *FlowGre) GetVersion() *PatternFlowGreVersion { if x != nil { - return x.FixedSeconds + return x.Version } return nil } -func (x *FlowDuration) GetBurst() *FlowBurst { +func (x *FlowGre) GetProtocol() *PatternFlowGreProtocol { if x != nil { - return x.Burst + return x.Protocol } return nil } -func (x *FlowDuration) GetContinuous() *FlowContinuous { +func (x *FlowGre) GetChecksum() *PatternFlowGreChecksum { if x != nil { - return x.Continuous + return x.Checksum } return nil } -// Transmit will be continuous and will not stop automatically. -type FlowContinuous struct { +func (x *FlowGre) GetReserved1() *PatternFlowGreReserved1 { + if x != nil { + return x.Reserved1 + } + return nil +} + +// GTPv1 packet header +type FlowGtpv1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,1,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + Version *PatternFlowGtpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Description missing in models + ProtocolType *PatternFlowGtpv1ProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + // Description missing in models + Reserved *PatternFlowGtpv1Reserved `protobuf:"bytes,3,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + // Description missing in models + EFlag *PatternFlowGtpv1EFlag `protobuf:"bytes,4,opt,name=e_flag,json=eFlag,proto3,oneof" json:"e_flag,omitempty"` + // Description missing in models + SFlag *PatternFlowGtpv1SFlag `protobuf:"bytes,5,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` + // Description missing in models + PnFlag *PatternFlowGtpv1PnFlag `protobuf:"bytes,6,opt,name=pn_flag,json=pnFlag,proto3,oneof" json:"pn_flag,omitempty"` + // Description missing in models + MessageType *PatternFlowGtpv1MessageType `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` + // Description missing in models + MessageLength *PatternFlowGtpv1MessageLength `protobuf:"bytes,8,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` + // Description missing in models + Teid *PatternFlowGtpv1Teid `protobuf:"bytes,9,opt,name=teid,proto3,oneof" json:"teid,omitempty"` + // Description missing in models + SquenceNumber *PatternFlowGtpv1SquenceNumber `protobuf:"bytes,10,opt,name=squence_number,json=squenceNumber,proto3,oneof" json:"squence_number,omitempty"` + // Description missing in models + NPduNumber *PatternFlowGtpv1NPduNumber `protobuf:"bytes,11,opt,name=n_pdu_number,json=nPduNumber,proto3,oneof" json:"n_pdu_number,omitempty"` + // Description missing in models + NextExtensionHeaderType *PatternFlowGtpv1NextExtensionHeaderType `protobuf:"bytes,12,opt,name=next_extension_header_type,json=nextExtensionHeaderType,proto3,oneof" json:"next_extension_header_type,omitempty"` + // A list of optional extension headers. + ExtensionHeaders []*FlowGtpExtension `protobuf:"bytes,13,rep,name=extension_headers,json=extensionHeaders,proto3" json:"extension_headers,omitempty"` } -func (x *FlowContinuous) Reset() { - *x = FlowContinuous{} +func (x *FlowGtpv1) Reset() { + *x = FlowGtpv1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33773,13 +33862,13 @@ func (x *FlowContinuous) Reset() { } } -func (x *FlowContinuous) String() string { +func (x *FlowGtpv1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowContinuous) ProtoMessage() {} +func (*FlowGtpv1) ProtoMessage() {} -func (x *FlowContinuous) ProtoReflect() protoreflect.Message { +func (x *FlowGtpv1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33791,142 +33880,133 @@ func (x *FlowContinuous) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowContinuous.ProtoReflect.Descriptor instead. -func (*FlowContinuous) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowGtpv1.ProtoReflect.Descriptor instead. +func (*FlowGtpv1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{178} } -func (x *FlowContinuous) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowGtpv1) GetVersion() *PatternFlowGtpv1Version { + if x != nil { + return x.Version } - return 0 + return nil } -func (x *FlowContinuous) GetDelay() *FlowDelay { +func (x *FlowGtpv1) GetProtocolType() *PatternFlowGtpv1ProtocolType { if x != nil { - return x.Delay + return x.ProtocolType } return nil } -// The optional container to specify the delay before starting -// transmission of packets. -type FlowDelay struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *FlowGtpv1) GetReserved() *PatternFlowGtpv1Reserved { + if x != nil { + return x.Reserved + } + return nil +} - // Description missing in models - // default = Choice.Enum.bytes - Choice *FlowDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDelay_Choice_Enum,oneof" json:"choice,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Bytes *float32 `protobuf:"fixed32,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Nanoseconds *float32 `protobuf:"fixed32,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Microseconds *float32 `protobuf:"fixed32,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` +func (x *FlowGtpv1) GetEFlag() *PatternFlowGtpv1EFlag { + if x != nil { + return x.EFlag + } + return nil } -func (x *FlowDelay) Reset() { - *x = FlowDelay{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[179] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowGtpv1) GetSFlag() *PatternFlowGtpv1SFlag { + if x != nil { + return x.SFlag } + return nil } -func (x *FlowDelay) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowGtpv1) GetPnFlag() *PatternFlowGtpv1PnFlag { + if x != nil { + return x.PnFlag + } + return nil } -func (*FlowDelay) ProtoMessage() {} +func (x *FlowGtpv1) GetMessageType() *PatternFlowGtpv1MessageType { + if x != nil { + return x.MessageType + } + return nil +} -func (x *FlowDelay) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[179] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowGtpv1) GetMessageLength() *PatternFlowGtpv1MessageLength { + if x != nil { + return x.MessageLength } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowDelay.ProtoReflect.Descriptor instead. -func (*FlowDelay) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{179} +func (x *FlowGtpv1) GetTeid() *PatternFlowGtpv1Teid { + if x != nil { + return x.Teid + } + return nil } -func (x *FlowDelay) GetChoice() FlowDelay_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowGtpv1) GetSquenceNumber() *PatternFlowGtpv1SquenceNumber { + if x != nil { + return x.SquenceNumber } - return FlowDelay_Choice_unspecified + return nil } -func (x *FlowDelay) GetBytes() float32 { - if x != nil && x.Bytes != nil { - return *x.Bytes +func (x *FlowGtpv1) GetNPduNumber() *PatternFlowGtpv1NPduNumber { + if x != nil { + return x.NPduNumber } - return 0 + return nil } -func (x *FlowDelay) GetNanoseconds() float32 { - if x != nil && x.Nanoseconds != nil { - return *x.Nanoseconds +func (x *FlowGtpv1) GetNextExtensionHeaderType() *PatternFlowGtpv1NextExtensionHeaderType { + if x != nil { + return x.NextExtensionHeaderType } - return 0 + return nil } -func (x *FlowDelay) GetMicroseconds() float32 { - if x != nil && x.Microseconds != nil { - return *x.Microseconds +func (x *FlowGtpv1) GetExtensionHeaders() []*FlowGtpExtension { + if x != nil { + return x.ExtensionHeaders } - return 0 + return nil } -// Transmit a fixed number of packets after which the flow will stop. -type FlowFixedPackets struct { +// Description missing in models +type FlowGtpExtension struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Stop transmit of the flow after this number of packets. - // default = 1 - Packets *uint32 `protobuf:"varint,1,opt,name=packets,proto3,oneof" json:"packets,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + ExtensionLength *PatternFlowGtpExtensionExtensionLength `protobuf:"bytes,1,opt,name=extension_length,json=extensionLength,proto3,oneof" json:"extension_length,omitempty"` + // Description missing in models + Contents *PatternFlowGtpExtensionContents `protobuf:"bytes,2,opt,name=contents,proto3,oneof" json:"contents,omitempty"` + // Description missing in models + NextExtensionHeader *PatternFlowGtpExtensionNextExtensionHeader `protobuf:"bytes,3,opt,name=next_extension_header,json=nextExtensionHeader,proto3,oneof" json:"next_extension_header,omitempty"` } -func (x *FlowFixedPackets) Reset() { - *x = FlowFixedPackets{} +func (x *FlowGtpExtension) Reset() { + *x = FlowGtpExtension{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[180] + mi := &file_otg_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowFixedPackets) String() string { +func (x *FlowGtpExtension) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowFixedPackets) ProtoMessage() {} +func (*FlowGtpExtension) ProtoMessage() {} -func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[180] +func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33937,65 +34017,75 @@ func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowFixedPackets.ProtoReflect.Descriptor instead. -func (*FlowFixedPackets) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{180} +// Deprecated: Use FlowGtpExtension.ProtoReflect.Descriptor instead. +func (*FlowGtpExtension) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{179} } -func (x *FlowFixedPackets) GetPackets() uint32 { - if x != nil && x.Packets != nil { - return *x.Packets +func (x *FlowGtpExtension) GetExtensionLength() *PatternFlowGtpExtensionExtensionLength { + if x != nil { + return x.ExtensionLength } - return 0 + return nil } -func (x *FlowFixedPackets) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowGtpExtension) GetContents() *PatternFlowGtpExtensionContents { + if x != nil { + return x.Contents } - return 0 + return nil } -func (x *FlowFixedPackets) GetDelay() *FlowDelay { +func (x *FlowGtpExtension) GetNextExtensionHeader() *PatternFlowGtpExtensionNextExtensionHeader { if x != nil { - return x.Delay + return x.NextExtensionHeader } return nil } -// Transmit for a fixed number of seconds after which the flow will stop. -type FlowFixedSeconds struct { +// GTPv2 packet header +type FlowGtpv2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Stop transmit of the flow after this number of seconds. - // default = 1 - Seconds *float32 `protobuf:"fixed32,1,opt,name=seconds,proto3,oneof" json:"seconds,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` + Version *PatternFlowGtpv2Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Description missing in models + PiggybackingFlag *PatternFlowGtpv2PiggybackingFlag `protobuf:"bytes,2,opt,name=piggybacking_flag,json=piggybackingFlag,proto3,oneof" json:"piggybacking_flag,omitempty"` + // Description missing in models + TeidFlag *PatternFlowGtpv2TeidFlag `protobuf:"bytes,3,opt,name=teid_flag,json=teidFlag,proto3,oneof" json:"teid_flag,omitempty"` + // Description missing in models + Spare1 *PatternFlowGtpv2Spare1 `protobuf:"bytes,4,opt,name=spare1,proto3,oneof" json:"spare1,omitempty"` + // Description missing in models + MessageType *PatternFlowGtpv2MessageType `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3,oneof" json:"message_type,omitempty"` + // Description missing in models + MessageLength *PatternFlowGtpv2MessageLength `protobuf:"bytes,6,opt,name=message_length,json=messageLength,proto3,oneof" json:"message_length,omitempty"` + // Description missing in models + Teid *PatternFlowGtpv2Teid `protobuf:"bytes,7,opt,name=teid,proto3,oneof" json:"teid,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowGtpv2SequenceNumber `protobuf:"bytes,8,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + // Description missing in models + Spare2 *PatternFlowGtpv2Spare2 `protobuf:"bytes,9,opt,name=spare2,proto3,oneof" json:"spare2,omitempty"` } -func (x *FlowFixedSeconds) Reset() { - *x = FlowFixedSeconds{} +func (x *FlowGtpv2) Reset() { + *x = FlowGtpv2{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[181] + mi := &file_otg_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowFixedSeconds) String() string { +func (x *FlowGtpv2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowFixedSeconds) ProtoMessage() {} +func (*FlowGtpv2) ProtoMessage() {} -func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[181] +func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34006,71 +34096,117 @@ func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowFixedSeconds.ProtoReflect.Descriptor instead. -func (*FlowFixedSeconds) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{181} +// Deprecated: Use FlowGtpv2.ProtoReflect.Descriptor instead. +func (*FlowGtpv2) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{180} } -func (x *FlowFixedSeconds) GetSeconds() float32 { - if x != nil && x.Seconds != nil { - return *x.Seconds +func (x *FlowGtpv2) GetVersion() *PatternFlowGtpv2Version { + if x != nil { + return x.Version } - return 0 + return nil } -func (x *FlowFixedSeconds) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowGtpv2) GetPiggybackingFlag() *PatternFlowGtpv2PiggybackingFlag { + if x != nil { + return x.PiggybackingFlag } - return 0 + return nil } -func (x *FlowFixedSeconds) GetDelay() *FlowDelay { +func (x *FlowGtpv2) GetTeidFlag() *PatternFlowGtpv2TeidFlag { if x != nil { - return x.Delay + return x.TeidFlag } return nil } -// Transmits continuous or fixed burst of packets. -// For continuous burst of packets, it will not automatically stop. -// For fixed burst of packets, it will stop after transmitting fixed number of bursts. -type FlowBurst struct { +func (x *FlowGtpv2) GetSpare1() *PatternFlowGtpv2Spare1 { + if x != nil { + return x.Spare1 + } + return nil +} + +func (x *FlowGtpv2) GetMessageType() *PatternFlowGtpv2MessageType { + if x != nil { + return x.MessageType + } + return nil +} + +func (x *FlowGtpv2) GetMessageLength() *PatternFlowGtpv2MessageLength { + if x != nil { + return x.MessageLength + } + return nil +} + +func (x *FlowGtpv2) GetTeid() *PatternFlowGtpv2Teid { + if x != nil { + return x.Teid + } + return nil +} + +func (x *FlowGtpv2) GetSequenceNumber() *PatternFlowGtpv2SequenceNumber { + if x != nil { + return x.SequenceNumber + } + return nil +} + +func (x *FlowGtpv2) GetSpare2() *PatternFlowGtpv2Spare2 { + if x != nil { + return x.Spare2 + } + return nil +} + +// ARP packet header +type FlowArp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The number of packet bursts transmitted per flow. - // A value of 0 implies continuous burst of packets. - // default = 0 - Bursts *uint32 `protobuf:"varint,1,opt,name=bursts,proto3,oneof" json:"bursts,omitempty"` - // The number of packets transmitted per burst. - // default = 1 - Packets *uint32 `protobuf:"varint,2,opt,name=packets,proto3,oneof" json:"packets,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,3,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - InterBurstGap *FlowDurationInterBurstGap `protobuf:"bytes,4,opt,name=inter_burst_gap,json=interBurstGap,proto3,oneof" json:"inter_burst_gap,omitempty"` + HardwareType *PatternFlowArpHardwareType `protobuf:"bytes,1,opt,name=hardware_type,json=hardwareType,proto3,oneof" json:"hardware_type,omitempty"` + // Description missing in models + ProtocolType *PatternFlowArpProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` + // Description missing in models + HardwareLength *PatternFlowArpHardwareLength `protobuf:"bytes,3,opt,name=hardware_length,json=hardwareLength,proto3,oneof" json:"hardware_length,omitempty"` + // Description missing in models + ProtocolLength *PatternFlowArpProtocolLength `protobuf:"bytes,4,opt,name=protocol_length,json=protocolLength,proto3,oneof" json:"protocol_length,omitempty"` + // Description missing in models + Operation *PatternFlowArpOperation `protobuf:"bytes,5,opt,name=operation,proto3,oneof" json:"operation,omitempty"` + // Description missing in models + SenderHardwareAddr *PatternFlowArpSenderHardwareAddr `protobuf:"bytes,6,opt,name=sender_hardware_addr,json=senderHardwareAddr,proto3,oneof" json:"sender_hardware_addr,omitempty"` + // Description missing in models + SenderProtocolAddr *PatternFlowArpSenderProtocolAddr `protobuf:"bytes,7,opt,name=sender_protocol_addr,json=senderProtocolAddr,proto3,oneof" json:"sender_protocol_addr,omitempty"` + // Description missing in models + TargetHardwareAddr *PatternFlowArpTargetHardwareAddr `protobuf:"bytes,8,opt,name=target_hardware_addr,json=targetHardwareAddr,proto3,oneof" json:"target_hardware_addr,omitempty"` + // Description missing in models + TargetProtocolAddr *PatternFlowArpTargetProtocolAddr `protobuf:"bytes,9,opt,name=target_protocol_addr,json=targetProtocolAddr,proto3,oneof" json:"target_protocol_addr,omitempty"` } -func (x *FlowBurst) Reset() { - *x = FlowBurst{} +func (x *FlowArp) Reset() { + *x = FlowArp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[182] + mi := &file_otg_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowBurst) String() string { +func (x *FlowArp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowBurst) ProtoMessage() {} +func (*FlowArp) ProtoMessage() {} -func (x *FlowBurst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[182] +func (x *FlowArp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34081,79 +34217,104 @@ func (x *FlowBurst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowBurst.ProtoReflect.Descriptor instead. -func (*FlowBurst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{182} +// Deprecated: Use FlowArp.ProtoReflect.Descriptor instead. +func (*FlowArp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{181} } -func (x *FlowBurst) GetBursts() uint32 { - if x != nil && x.Bursts != nil { - return *x.Bursts +func (x *FlowArp) GetHardwareType() *PatternFlowArpHardwareType { + if x != nil { + return x.HardwareType } - return 0 + return nil } -func (x *FlowBurst) GetPackets() uint32 { - if x != nil && x.Packets != nil { - return *x.Packets +func (x *FlowArp) GetProtocolType() *PatternFlowArpProtocolType { + if x != nil { + return x.ProtocolType } - return 0 + return nil } -func (x *FlowBurst) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowArp) GetHardwareLength() *PatternFlowArpHardwareLength { + if x != nil { + return x.HardwareLength } - return 0 + return nil } -func (x *FlowBurst) GetInterBurstGap() *FlowDurationInterBurstGap { +func (x *FlowArp) GetProtocolLength() *PatternFlowArpProtocolLength { if x != nil { - return x.InterBurstGap + return x.ProtocolLength } return nil } -// The optional container for specifying a gap between bursts. -type FlowDurationInterBurstGap struct { +func (x *FlowArp) GetOperation() *PatternFlowArpOperation { + if x != nil { + return x.Operation + } + return nil +} + +func (x *FlowArp) GetSenderHardwareAddr() *PatternFlowArpSenderHardwareAddr { + if x != nil { + return x.SenderHardwareAddr + } + return nil +} + +func (x *FlowArp) GetSenderProtocolAddr() *PatternFlowArpSenderProtocolAddr { + if x != nil { + return x.SenderProtocolAddr + } + return nil +} + +func (x *FlowArp) GetTargetHardwareAddr() *PatternFlowArpTargetHardwareAddr { + if x != nil { + return x.TargetHardwareAddr + } + return nil +} + +func (x *FlowArp) GetTargetProtocolAddr() *PatternFlowArpTargetProtocolAddr { + if x != nil { + return x.TargetProtocolAddr + } + return nil +} + +// ICMP packet header +type FlowIcmp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of inter burst gap units. - // default = Choice.Enum.bytes - Choice *FlowDurationInterBurstGap_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDurationInterBurstGap_Choice_Enum,oneof" json:"choice,omitempty"` - // The amount of time between bursts expressed in bytes. - // A value of 0 indicates no gap between bursts. - // default = 12 - Bytes *float64 `protobuf:"fixed64,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` - // The amount of time between bursts expressed in nanoseconds. - // A value of 0 indicates no gap between bursts. - // default = 96 - Nanoseconds *float64 `protobuf:"fixed64,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` - // The amount of time between bursts expressed in microseconds. - // A value of 0 indicates no gap between bursts. - // default = 0.096 - Microseconds *float64 `protobuf:"fixed64,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` + // Description missing in models + // default = Choice.Enum.echo + Choice *FlowIcmp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmp_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Echo *FlowIcmpEcho `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` } -func (x *FlowDurationInterBurstGap) Reset() { - *x = FlowDurationInterBurstGap{} +func (x *FlowIcmp) Reset() { + *x = FlowIcmp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[183] + mi := &file_otg_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDurationInterBurstGap) String() string { +func (x *FlowIcmp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDurationInterBurstGap) ProtoMessage() {} +func (*FlowIcmp) ProtoMessage() {} -func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[183] +func (x *FlowIcmp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34164,81 +34325,60 @@ func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDurationInterBurstGap.ProtoReflect.Descriptor instead. -func (*FlowDurationInterBurstGap) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{183} +// Deprecated: Use FlowIcmp.ProtoReflect.Descriptor instead. +func (*FlowIcmp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{182} } -func (x *FlowDurationInterBurstGap) GetChoice() FlowDurationInterBurstGap_Choice_Enum { +func (x *FlowIcmp) GetChoice() FlowIcmp_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowDurationInterBurstGap_Choice_unspecified -} - -func (x *FlowDurationInterBurstGap) GetBytes() float64 { - if x != nil && x.Bytes != nil { - return *x.Bytes - } - return 0 -} - -func (x *FlowDurationInterBurstGap) GetNanoseconds() float64 { - if x != nil && x.Nanoseconds != nil { - return *x.Nanoseconds - } - return 0 + return FlowIcmp_Choice_unspecified } -func (x *FlowDurationInterBurstGap) GetMicroseconds() float64 { - if x != nil && x.Microseconds != nil { - return *x.Microseconds +func (x *FlowIcmp) GetEcho() *FlowIcmpEcho { + if x != nil { + return x.Echo } - return 0 + return nil } -// The optional container for configuring flow metrics. -type FlowMetrics struct { +// Packet Header for ICMP echo request +type FlowIcmpEcho struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Enables flow metrics. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // Enables additional flow metric loss calculation. - // default = False - Loss *bool `protobuf:"varint,2,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Rx Tx ratio. - RxTxRatio *FlowRxTxRatio `protobuf:"bytes,6,opt,name=rx_tx_ratio,json=rxTxRatio,proto3,oneof" json:"rx_tx_ratio,omitempty"` - // Enables additional flow metric first and last timestamps. - // default = False - Timestamps *bool `protobuf:"varint,3,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` - // Latency metrics. - Latency *FlowLatencyMetrics `protobuf:"bytes,4,opt,name=latency,proto3,oneof" json:"latency,omitempty"` - // Predefined metric tags - PredefinedMetricTags *FlowPredefinedTags `protobuf:"bytes,5,opt,name=predefined_metric_tags,json=predefinedMetricTags,proto3,oneof" json:"predefined_metric_tags,omitempty"` + // Description missing in models + Type *PatternFlowIcmpEchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + // Description missing in models + Code *PatternFlowIcmpEchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + // Description missing in models + Checksum *PatternFlowIcmpEchoChecksum `protobuf:"bytes,3,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + // Description missing in models + Identifier *PatternFlowIcmpEchoIdentifier `protobuf:"bytes,4,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowIcmpEchoSequenceNumber `protobuf:"bytes,5,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` } -func (x *FlowMetrics) Reset() { - *x = FlowMetrics{} +func (x *FlowIcmpEcho) Reset() { + *x = FlowIcmpEcho{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[184] + mi := &file_otg_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetrics) String() string { +func (x *FlowIcmpEcho) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetrics) ProtoMessage() {} +func (*FlowIcmpEcho) ProtoMessage() {} -func (x *FlowMetrics) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[184] +func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34249,99 +34389,76 @@ func (x *FlowMetrics) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetrics.ProtoReflect.Descriptor instead. -func (*FlowMetrics) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{184} -} - -func (x *FlowMetrics) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable - } - return false +// Deprecated: Use FlowIcmpEcho.ProtoReflect.Descriptor instead. +func (*FlowIcmpEcho) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{183} } -func (x *FlowMetrics) GetLoss() bool { - if x != nil && x.Loss != nil { - return *x.Loss +func (x *FlowIcmpEcho) GetType() *PatternFlowIcmpEchoType { + if x != nil { + return x.Type } - return false + return nil } -func (x *FlowMetrics) GetRxTxRatio() *FlowRxTxRatio { +func (x *FlowIcmpEcho) GetCode() *PatternFlowIcmpEchoCode { if x != nil { - return x.RxTxRatio + return x.Code } return nil } -func (x *FlowMetrics) GetTimestamps() bool { - if x != nil && x.Timestamps != nil { - return *x.Timestamps +func (x *FlowIcmpEcho) GetChecksum() *PatternFlowIcmpEchoChecksum { + if x != nil { + return x.Checksum } - return false + return nil } -func (x *FlowMetrics) GetLatency() *FlowLatencyMetrics { +func (x *FlowIcmpEcho) GetIdentifier() *PatternFlowIcmpEchoIdentifier { if x != nil { - return x.Latency + return x.Identifier } return nil } -func (x *FlowMetrics) GetPredefinedMetricTags() *FlowPredefinedTags { +func (x *FlowIcmpEcho) GetSequenceNumber() *PatternFlowIcmpEchoSequenceNumber { if x != nil { - return x.PredefinedMetricTags + return x.SequenceNumber } return nil } -// The optional container for per flow latency metric configuration. -type FlowLatencyMetrics struct { +// ICMPv6 packet header +type FlowIcmpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable latency metrics using timestamps. - // - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // Select the type of latency measurement. The different types of - // latency measurements are: - // - // store_forward: - // The time interval starting when the last bit of the frame leaves the - // sending port and ending when the first bit of the frame is seen on - // the receiving port (LIFO). This is based on the RFC 1242 standard. - // - // cut_through: - // The time interval starting when the first bit of the frame leaves - // the sending port and ending when the first bit of the frame is seen - // on the receiving port (FIFO). This is based on the RFC 1242 - // standard. - // default = Mode.Enum.store_forward - Mode *FlowLatencyMetrics_Mode_Enum `protobuf:"varint,2,opt,name=mode,proto3,enum=otg.FlowLatencyMetrics_Mode_Enum,oneof" json:"mode,omitempty"` + // Description missing in models + // default = Choice.Enum.echo + Choice *FlowIcmpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmpv6_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Echo *FlowIcmpv6Echo `protobuf:"bytes,2,opt,name=echo,proto3,oneof" json:"echo,omitempty"` } -func (x *FlowLatencyMetrics) Reset() { - *x = FlowLatencyMetrics{} +func (x *FlowIcmpv6) Reset() { + *x = FlowIcmpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[185] + mi := &file_otg_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowLatencyMetrics) String() string { +func (x *FlowIcmpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowLatencyMetrics) ProtoMessage() {} +func (*FlowIcmpv6) ProtoMessage() {} -func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[185] +func (x *FlowIcmpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34352,56 +34469,60 @@ func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowLatencyMetrics.ProtoReflect.Descriptor instead. -func (*FlowLatencyMetrics) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{185} +// Deprecated: Use FlowIcmpv6.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{184} } -func (x *FlowLatencyMetrics) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowIcmpv6) GetChoice() FlowIcmpv6_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return FlowIcmpv6_Choice_unspecified } -func (x *FlowLatencyMetrics) GetMode() FlowLatencyMetrics_Mode_Enum { - if x != nil && x.Mode != nil { - return *x.Mode +func (x *FlowIcmpv6) GetEcho() *FlowIcmpv6Echo { + if x != nil { + return x.Echo } - return FlowLatencyMetrics_Mode_unspecified + return nil } -// List of predefined flow tracking options, outside packet fields, that can be enabled. -type FlowPredefinedTags struct { +// Packet Header for ICMPv6 Echo +type FlowIcmpv6Echo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Enables Rx port or lag level disaggregation with predefined metrics tag name set - // as rx_name. - // The Rx port / lag names can be found under tagged_metrics tag names in flow metrics - // response. - // default = False - RxName *bool `protobuf:"varint,1,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` + // Description missing in models + Type *PatternFlowIcmpv6EchoType `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + // Description missing in models + Code *PatternFlowIcmpv6EchoCode `protobuf:"bytes,2,opt,name=code,proto3,oneof" json:"code,omitempty"` + // Description missing in models + Identifier *PatternFlowIcmpv6EchoIdentifier `protobuf:"bytes,3,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowIcmpv6EchoSequenceNumber `protobuf:"bytes,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + // Description missing in models + Checksum *PatternFlowIcmpv6EchoChecksum `protobuf:"bytes,5,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` } -func (x *FlowPredefinedTags) Reset() { - *x = FlowPredefinedTags{} +func (x *FlowIcmpv6Echo) Reset() { + *x = FlowIcmpv6Echo{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[186] + mi := &file_otg_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPredefinedTags) String() string { +func (x *FlowIcmpv6Echo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPredefinedTags) ProtoMessage() {} +func (*FlowIcmpv6Echo) ProtoMessage() {} -func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[186] +func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34412,67 +34533,77 @@ func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPredefinedTags.ProtoReflect.Descriptor instead. -func (*FlowPredefinedTags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{186} +// Deprecated: Use FlowIcmpv6Echo.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6Echo) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{185} } -func (x *FlowPredefinedTags) GetRxName() bool { - if x != nil && x.RxName != nil { - return *x.RxName +func (x *FlowIcmpv6Echo) GetType() *PatternFlowIcmpv6EchoType { + if x != nil { + return x.Type } - return false + return nil } -// Rx Tx ratio is the ratio of expected number of Rx packets across all Rx ports to -// the Tx packets -// for the configured flow. It is a factor by which the Tx packet count is multiplied -// to calculate -// the sum of expected Rx packet count, across all Rx ports. This will be used to calculate -// loss -// percentage of flow at aggregate level. -type FlowRxTxRatio struct { +func (x *FlowIcmpv6Echo) GetCode() *PatternFlowIcmpv6EchoCode { + if x != nil { + return x.Code + } + return nil +} + +func (x *FlowIcmpv6Echo) GetIdentifier() *PatternFlowIcmpv6EchoIdentifier { + if x != nil { + return x.Identifier + } + return nil +} + +func (x *FlowIcmpv6Echo) GetSequenceNumber() *PatternFlowIcmpv6EchoSequenceNumber { + if x != nil { + return x.SequenceNumber + } + return nil +} + +func (x *FlowIcmpv6Echo) GetChecksum() *PatternFlowIcmpv6EchoChecksum { + if x != nil { + return x.Checksum + } + return nil +} + +// PPP packet header +type FlowPpp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *FlowRxTxRatio_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRxTxRatio_Choice_Enum,oneof" json:"choice,omitempty"` + Address *PatternFlowPppAddress `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` // Description missing in models - RxCount *FlowRxTxRatioRxCount `protobuf:"bytes,2,opt,name=rx_count,json=rxCount,proto3,oneof" json:"rx_count,omitempty"` - // Should be a positive, non-zero value. The default value of 1, is when the Rx packet - // count across - // all ports is expected to match the Tx packet count. A custom integer value (>1) can - // be specified for - // loss calculation for cases when there are multiple destination addresses configured - // within one flow, - // but DUT is configured to replicate only to a subset of Rx ports. For cases when Tx - // side generates two - // packets from each source in 1:1 protection mode but only one of the two packets are - // received by the - // Rx port, we may need to specify a fractional value instead. - // default = 1.0 - Value *float32 `protobuf:"fixed32,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + Control *PatternFlowPppControl `protobuf:"bytes,2,opt,name=control,proto3,oneof" json:"control,omitempty"` + // Description missing in models + ProtocolType *PatternFlowPppProtocolType `protobuf:"bytes,3,opt,name=protocol_type,json=protocolType,proto3,oneof" json:"protocol_type,omitempty"` } -func (x *FlowRxTxRatio) Reset() { - *x = FlowRxTxRatio{} +func (x *FlowPpp) Reset() { + *x = FlowPpp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[187] + mi := &file_otg_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatio) String() string { +func (x *FlowPpp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatio) ProtoMessage() {} +func (*FlowPpp) ProtoMessage() {} -func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[187] +func (x *FlowPpp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34483,58 +34614,67 @@ func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatio.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatio) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{187} +// Deprecated: Use FlowPpp.ProtoReflect.Descriptor instead. +func (*FlowPpp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{186} } -func (x *FlowRxTxRatio) GetChoice() FlowRxTxRatio_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowPpp) GetAddress() *PatternFlowPppAddress { + if x != nil { + return x.Address } - return FlowRxTxRatio_Choice_unspecified + return nil } -func (x *FlowRxTxRatio) GetRxCount() *FlowRxTxRatioRxCount { +func (x *FlowPpp) GetControl() *PatternFlowPppControl { if x != nil { - return x.RxCount + return x.Control } return nil } -func (x *FlowRxTxRatio) GetValue() float32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowPpp) GetProtocolType() *PatternFlowPppProtocolType { + if x != nil { + return x.ProtocolType } - return 0 + return nil } -// This is for cases where one copy of Tx packet is received on all Rx ports and so -// the sum total of Rx packets -// received across all Rx ports is a multiple of Rx port count and Tx packets. -type FlowRxTxRatioRxCount struct { +// IGMPv1 packet header +type FlowIgmpv1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + Version *PatternFlowIgmpv1Version `protobuf:"bytes,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Description missing in models + Type *PatternFlowIgmpv1Type `protobuf:"bytes,2,opt,name=type,proto3,oneof" json:"type,omitempty"` + // Description missing in models + Unused *PatternFlowIgmpv1Unused `protobuf:"bytes,3,opt,name=unused,proto3,oneof" json:"unused,omitempty"` + // Description missing in models + Checksum *PatternFlowIgmpv1Checksum `protobuf:"bytes,4,opt,name=checksum,proto3,oneof" json:"checksum,omitempty"` + // Description missing in models + GroupAddress *PatternFlowIgmpv1GroupAddress `protobuf:"bytes,5,opt,name=group_address,json=groupAddress,proto3,oneof" json:"group_address,omitempty"` } -func (x *FlowRxTxRatioRxCount) Reset() { - *x = FlowRxTxRatioRxCount{} +func (x *FlowIgmpv1) Reset() { + *x = FlowIgmpv1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[188] + mi := &file_otg_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatioRxCount) String() string { +func (x *FlowIgmpv1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatioRxCount) ProtoMessage() {} +func (*FlowIgmpv1) ProtoMessage() {} -func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[188] +func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34545,47 +34685,80 @@ func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatioRxCount.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatioRxCount) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{188} +// Deprecated: Use FlowIgmpv1.ProtoReflect.Descriptor instead. +func (*FlowIgmpv1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{187} } -// The optional container for event configuration. -type Event struct { +func (x *FlowIgmpv1) GetVersion() *PatternFlowIgmpv1Version { + if x != nil { + return x.Version + } + return nil +} + +func (x *FlowIgmpv1) GetType() *PatternFlowIgmpv1Type { + if x != nil { + return x.Type + } + return nil +} + +func (x *FlowIgmpv1) GetUnused() *PatternFlowIgmpv1Unused { + if x != nil { + return x.Unused + } + return nil +} + +func (x *FlowIgmpv1) GetChecksum() *PatternFlowIgmpv1Checksum { + if x != nil { + return x.Checksum + } + return nil +} + +func (x *FlowIgmpv1) GetGroupAddress() *PatternFlowIgmpv1GroupAddress { + if x != nil { + return x.GroupAddress + } + return nil +} + +// MPLS packet header; When configuring multiple such headers, the count shall not exceed +// 20. +type FlowMpls struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable all events. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Description missing in models - Link *EventLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` + Label *PatternFlowMplsLabel `protobuf:"bytes,1,opt,name=label,proto3,oneof" json:"label,omitempty"` // Description missing in models - RxRateThreshold *EventRxRateThreshold `protobuf:"bytes,3,opt,name=rx_rate_threshold,json=rxRateThreshold,proto3,oneof" json:"rx_rate_threshold,omitempty"` + TrafficClass *PatternFlowMplsTrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` // Description missing in models - RouteAdvertiseWithdraw *EventRouteAdvertiseWithdraw `protobuf:"bytes,4,opt,name=route_advertise_withdraw,json=routeAdvertiseWithdraw,proto3,oneof" json:"route_advertise_withdraw,omitempty"` + BottomOfStack *PatternFlowMplsBottomOfStack `protobuf:"bytes,3,opt,name=bottom_of_stack,json=bottomOfStack,proto3,oneof" json:"bottom_of_stack,omitempty"` + // Description missing in models + TimeToLive *PatternFlowMplsTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` } -func (x *Event) Reset() { - *x = Event{} +func (x *FlowMpls) Reset() { + *x = FlowMpls{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[189] + mi := &file_otg_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Event) String() string { +func (x *FlowMpls) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Event) ProtoMessage() {} +func (*FlowMpls) ProtoMessage() {} -func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[189] +func (x *FlowMpls) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34596,73 +34769,76 @@ func (x *Event) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Event.ProtoReflect.Descriptor instead. -func (*Event) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{189} +// Deprecated: Use FlowMpls.ProtoReflect.Descriptor instead. +func (*FlowMpls) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{188} } -func (x *Event) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowMpls) GetLabel() *PatternFlowMplsLabel { + if x != nil { + return x.Label } - return false + return nil } -func (x *Event) GetLink() *EventLink { +func (x *FlowMpls) GetTrafficClass() *PatternFlowMplsTrafficClass { if x != nil { - return x.Link + return x.TrafficClass } return nil } -func (x *Event) GetRxRateThreshold() *EventRxRateThreshold { +func (x *FlowMpls) GetBottomOfStack() *PatternFlowMplsBottomOfStack { if x != nil { - return x.RxRateThreshold + return x.BottomOfStack } return nil } -func (x *Event) GetRouteAdvertiseWithdraw() *EventRouteAdvertiseWithdraw { +func (x *FlowMpls) GetTimeToLive() *PatternFlowMplsTimeToLive { if x != nil { - return x.RouteAdvertiseWithdraw + return x.TimeToLive } return nil } -// The optional container for rx rate threshold event configuration. -type EventRxRateThreshold struct { +// The frame size which overrides the total length of the packet +type FlowSize struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable the rx_rate_threshold event. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // True to enable notifications when the rx rate of a flow passes above - // or below the threshold value. - // default = 95 - Threshold *float32 `protobuf:"fixed32,2,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` + // Description missing in models + // default = Choice.Enum.fixed + Choice *FlowSize_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSize_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 64 + Fixed *uint32 `protobuf:"varint,2,opt,name=fixed,proto3,oneof" json:"fixed,omitempty"` + // Description missing in models + Increment *FlowSizeIncrement `protobuf:"bytes,3,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Random *FlowSizeRandom `protobuf:"bytes,4,opt,name=random,proto3,oneof" json:"random,omitempty"` + // Description missing in models + WeightPairs *FlowSizeWeightPairs `protobuf:"bytes,5,opt,name=weight_pairs,json=weightPairs,proto3,oneof" json:"weight_pairs,omitempty"` } -func (x *EventRxRateThreshold) Reset() { - *x = EventRxRateThreshold{} +func (x *FlowSize) Reset() { + *x = FlowSize{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[190] + mi := &file_otg_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRxRateThreshold) String() string { +func (x *FlowSize) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRxRateThreshold) ProtoMessage() {} +func (*FlowSize) ProtoMessage() {} -func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[190] +func (x *FlowSize) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34673,53 +34849,81 @@ func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRxRateThreshold.ProtoReflect.Descriptor instead. -func (*EventRxRateThreshold) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{190} +// Deprecated: Use FlowSize.ProtoReflect.Descriptor instead. +func (*FlowSize) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{189} } -func (x *EventRxRateThreshold) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowSize) GetChoice() FlowSize_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return FlowSize_Choice_unspecified } -func (x *EventRxRateThreshold) GetThreshold() float32 { - if x != nil && x.Threshold != nil { - return *x.Threshold +func (x *FlowSize) GetFixed() uint32 { + if x != nil && x.Fixed != nil { + return *x.Fixed } return 0 } -// The optional container for link up/down event configuration. -type EventLink struct { +func (x *FlowSize) GetIncrement() *FlowSizeIncrement { + if x != nil { + return x.Increment + } + return nil +} + +func (x *FlowSize) GetRandom() *FlowSizeRandom { + if x != nil { + return x.Random + } + return nil +} + +func (x *FlowSize) GetWeightPairs() *FlowSizeWeightPairs { + if x != nil { + return x.WeightPairs + } + return nil +} + +// Frame size that increments from a starting size to +// an ending size incrementing by a step size. +type FlowSizeIncrement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable notifications when a link up/down event occurs. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Starting frame size in bytes + // default = 64 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Ending frame size in bytes + // default = 1518 + End *uint32 `protobuf:"varint,2,opt,name=end,proto3,oneof" json:"end,omitempty"` + // Step frame size in bytes + // default = 1 + Step *uint32 `protobuf:"varint,3,opt,name=step,proto3,oneof" json:"step,omitempty"` } -func (x *EventLink) Reset() { - *x = EventLink{} +func (x *FlowSizeIncrement) Reset() { + *x = FlowSizeIncrement{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[191] + mi := &file_otg_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventLink) String() string { +func (x *FlowSizeIncrement) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventLink) ProtoMessage() {} +func (*FlowSizeIncrement) ProtoMessage() {} -func (x *EventLink) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[191] +func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34730,47 +34934,63 @@ func (x *EventLink) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventLink.ProtoReflect.Descriptor instead. -func (*EventLink) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{191} +// Deprecated: Use FlowSizeIncrement.ProtoReflect.Descriptor instead. +func (*FlowSizeIncrement) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{190} } -func (x *EventLink) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowSizeIncrement) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return false + return 0 } -// The optional container for route advertise/withdraw event configuration. -type EventRouteAdvertiseWithdraw struct { +func (x *FlowSizeIncrement) GetEnd() uint32 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +func (x *FlowSizeIncrement) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +// Random frame size from a min value to a max value. +type FlowSizeRandom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable notifications when a route advertise/withdraw - // event occurs. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Description missing in models + // default = 64 + Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // Description missing in models + // default = 1518 + Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` } -func (x *EventRouteAdvertiseWithdraw) Reset() { - *x = EventRouteAdvertiseWithdraw{} +func (x *FlowSizeRandom) Reset() { + *x = FlowSizeRandom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[192] + mi := &file_otg_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRouteAdvertiseWithdraw) String() string { +func (x *FlowSizeRandom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRouteAdvertiseWithdraw) ProtoMessage() {} +func (*FlowSizeRandom) ProtoMessage() {} -func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[192] +func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34781,59 +35001,73 @@ func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRouteAdvertiseWithdraw.ProtoReflect.Descriptor instead. -func (*EventRouteAdvertiseWithdraw) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{192} +// Deprecated: Use FlowSizeRandom.ProtoReflect.Descriptor instead. +func (*FlowSizeRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{191} } -func (x *EventRouteAdvertiseWithdraw) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowSizeRandom) GetMin() uint32 { + if x != nil && x.Min != nil { + return *x.Min } - return false + return 0 } -// Description missing in models -type EventRequest struct { +func (x *FlowSizeRandom) GetMax() uint32 { + if x != nil && x.Max != nil { + return *x.Max + } + return 0 +} + +// Frame size distribution, defined as pairs (including IMIX distribution). +// Frames are randomly generated such that the proportion of each frame size out of +// the total number of frames +// are matching with the weight value of the pair. However, as with any +// other probability +// distribution, the sample distribution is close to theoretical value only if the size +// of the sample is reasonably large. +// When the number of frames is very low the transmitted frames may not come close to +// the ratio described in the weight. +type FlowSizeWeightPairs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Constrain the events being returned by specifying event types. - // If the list is empty then all event types will be returned. - Type []EventRequest_Type_Enum `protobuf:"varint,1,rep,packed,name=type,proto3,enum=otg.EventRequest_Type_Enum" json:"type,omitempty"` - // Constrain the events being returned by specifying event sources. - // If the list is empty then all event sources will be returned. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Bgp.V4RouteRange/name - // - /components/schemas/Bgp.V6RouteRange/name + // Description missing in models + // default = Choice.Enum.predefined + Choice *FlowSizeWeightPairs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSizeWeightPairs_Choice_Enum,oneof" json:"choice,omitempty"` + // Specify predefined frame size distribution pairs (including IMIX distribution). // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Bgp.V4RouteRange/name - // - /components/schemas/Bgp.V6RouteRange/name - Source []string `protobuf:"bytes,2,rep,name=source,proto3" json:"source,omitempty"` + // The available predefined distribution pairs are: + // - IMIX (64:7, 570:4, and 1518:1) + // - IPSec IMIX (90:58.67, 92:2, 594:23.66 and 1418:15.67) + // - IPv6 IMIX (60:58.67, 496:2, 594:23.66 and 1518:15.67) + // - Standard IMIX (58:58.67, 62:2, 594:23.66 and 1518:15.67) + // - TCP IMIX (90:58.67, 92:2, 594:23.66 and 1518:15.67) + // default = Predefined.Enum.imix + Predefined *FlowSizeWeightPairs_Predefined_Enum `protobuf:"varint,2,opt,name=predefined,proto3,enum=otg.FlowSizeWeightPairs_Predefined_Enum,oneof" json:"predefined,omitempty"` + // Description missing in models + Custom []*FlowSizeWeightPairsCustom `protobuf:"bytes,3,rep,name=custom,proto3" json:"custom,omitempty"` } -func (x *EventRequest) Reset() { - *x = EventRequest{} +func (x *FlowSizeWeightPairs) Reset() { + *x = FlowSizeWeightPairs{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[193] + mi := &file_otg_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRequest) String() string { +func (x *FlowSizeWeightPairs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRequest) ProtoMessage() {} +func (*FlowSizeWeightPairs) ProtoMessage() {} -func (x *EventRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[193] +func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34844,58 +35078,64 @@ func (x *EventRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRequest.ProtoReflect.Descriptor instead. -func (*EventRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193} +// Deprecated: Use FlowSizeWeightPairs.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{192} } -func (x *EventRequest) GetType() []EventRequest_Type_Enum { - if x != nil { - return x.Type +func (x *FlowSizeWeightPairs) GetChoice() FlowSizeWeightPairs_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowSizeWeightPairs_Choice_unspecified } -func (x *EventRequest) GetSource() []string { +func (x *FlowSizeWeightPairs) GetPredefined() FlowSizeWeightPairs_Predefined_Enum { + if x != nil && x.Predefined != nil { + return *x.Predefined + } + return FlowSizeWeightPairs_Predefined_unspecified +} + +func (x *FlowSizeWeightPairs) GetCustom() []*FlowSizeWeightPairsCustom { if x != nil { - return x.Source + return x.Custom } return nil } -// A container that describes what events a system should provide and -// optionally where to publish them. -type EventSubscription struct { +// Custom frame size distribution pair. +type FlowSizeWeightPairsCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Events *EventRequest `protobuf:"bytes,1,opt,name=events,proto3,oneof" json:"events,omitempty"` - // Indicates where a client wants to be notified of the events set in - // the events property. - // If this property is empty or null then no event notifications will - // be forwarded. - CallbackUrl *string `protobuf:"bytes,2,opt,name=callback_url,json=callbackUrl,proto3,oneof" json:"callback_url,omitempty"` + // The size of the frame (in bytes) for this weight pair. + // default = 64 + Size *uint32 `protobuf:"varint,1,opt,name=size,proto3,oneof" json:"size,omitempty"` + // Weight assigned to the corresponding frame size in this weight pair. + // Higher weight means more packets. + // default = 1 + Weight *float32 `protobuf:"fixed32,2,opt,name=weight,proto3,oneof" json:"weight,omitempty"` } -func (x *EventSubscription) Reset() { - *x = EventSubscription{} +func (x *FlowSizeWeightPairsCustom) Reset() { + *x = FlowSizeWeightPairsCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[194] + mi := &file_otg_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventSubscription) String() string { +func (x *FlowSizeWeightPairsCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventSubscription) ProtoMessage() {} +func (*FlowSizeWeightPairsCustom) ProtoMessage() {} -func (x *EventSubscription) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[194] +func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34906,77 +35146,71 @@ func (x *EventSubscription) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventSubscription.ProtoReflect.Descriptor instead. -func (*EventSubscription) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{194} +// Deprecated: Use FlowSizeWeightPairsCustom.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairsCustom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{193} } -func (x *EventSubscription) GetEvents() *EventRequest { - if x != nil { - return x.Events +func (x *FlowSizeWeightPairsCustom) GetSize() uint32 { + if x != nil && x.Size != nil { + return *x.Size } - return nil + return 0 } -func (x *EventSubscription) GetCallbackUrl() string { - if x != nil && x.CallbackUrl != nil { - return *x.CallbackUrl +func (x *FlowSizeWeightPairsCustom) GetWeight() float32 { + if x != nil && x.Weight != nil { + return *x.Weight } - return "" + return 0 } -// Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf -type Lldp struct { +// The rate of packet transmission +type FlowRate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of the object on which LLDP is running. - // required = true - Connection *LldpConnection `protobuf:"bytes,1,opt,name=connection,proto3" json:"connection,omitempty"` - // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint - // identifier associated with the transmitting LLDP agent. If mac address is specified - // it should be in colon seperated mac address format. - ChassisId *LldpChassisId `protobuf:"bytes,2,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` - // The Port ID is a mandatory TLV which identifies the port component of the endpoint - // identifier associated with the transmitting LLDP agent. If the specified port is - // an IEEE 802.3 Repeater port, then this TLV is optional. - PortId *LldpPortId `protobuf:"bytes,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` - // The system name field shall contain an alpha-numeric string that indicates the system's - // administratively assigned name. The system name should be the system's fully qualified - // domain name. If implementations support IETF RFC 3418, the sysName object should - // be used for this field. - SystemName *LldpSystemName `protobuf:"bytes,4,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` - // Specifies the amount of time in seconds a receiving device should maintain LLDP information - // sent by the device before discarding it. - // default = 120 - HoldTime *uint32 `protobuf:"varint,5,opt,name=hold_time,json=holdTime,proto3,oneof" json:"hold_time,omitempty"` - // Set the transmission frequency of LLDP updates in seconds. - // default = 30 - AdvertisementInterval *uint32 `protobuf:"varint,6,opt,name=advertisement_interval,json=advertisementInterval,proto3,oneof" json:"advertisement_interval,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + // The available types of flow rate. + // default = Choice.Enum.pps + Choice *FlowRate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRate_Choice_Enum,oneof" json:"choice,omitempty"` + // Packets per second. + // default = 1000 + Pps *uint64 `protobuf:"varint,2,opt,name=pps,proto3,oneof" json:"pps,omitempty"` + // Bits per second. + // default = 1000000000 + Bps *uint64 `protobuf:"varint,3,opt,name=bps,proto3,oneof" json:"bps,omitempty"` + // Kilobits per second. + // default = 1000000 + Kbps *uint64 `protobuf:"varint,4,opt,name=kbps,proto3,oneof" json:"kbps,omitempty"` + // Megabits per second. + // default = 1000 + Mbps *uint64 `protobuf:"varint,5,opt,name=mbps,proto3,oneof" json:"mbps,omitempty"` + // Gigabits per second. + // default = 1 + Gbps *uint32 `protobuf:"varint,6,opt,name=gbps,proto3,oneof" json:"gbps,omitempty"` + // The percentage of a port location's available bandwidth. + // default = 100 + Percentage *float32 `protobuf:"fixed32,7,opt,name=percentage,proto3,oneof" json:"percentage,omitempty"` } -func (x *Lldp) Reset() { - *x = Lldp{} +func (x *FlowRate) Reset() { + *x = FlowRate{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[195] + mi := &file_otg_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Lldp) String() string { +func (x *FlowRate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Lldp) ProtoMessage() {} +func (*FlowRate) ProtoMessage() {} -func (x *Lldp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[195] +func (x *FlowRate) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34987,96 +35221,96 @@ func (x *Lldp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Lldp.ProtoReflect.Descriptor instead. -func (*Lldp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{195} +// Deprecated: Use FlowRate.ProtoReflect.Descriptor instead. +func (*FlowRate) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{194} } -func (x *Lldp) GetConnection() *LldpConnection { - if x != nil { - return x.Connection +func (x *FlowRate) GetChoice() FlowRate_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRate_Choice_unspecified } -func (x *Lldp) GetChassisId() *LldpChassisId { - if x != nil { - return x.ChassisId +func (x *FlowRate) GetPps() uint64 { + if x != nil && x.Pps != nil { + return *x.Pps } - return nil + return 0 } -func (x *Lldp) GetPortId() *LldpPortId { - if x != nil { - return x.PortId +func (x *FlowRate) GetBps() uint64 { + if x != nil && x.Bps != nil { + return *x.Bps } - return nil + return 0 } -func (x *Lldp) GetSystemName() *LldpSystemName { - if x != nil { - return x.SystemName +func (x *FlowRate) GetKbps() uint64 { + if x != nil && x.Kbps != nil { + return *x.Kbps } - return nil + return 0 } -func (x *Lldp) GetHoldTime() uint32 { - if x != nil && x.HoldTime != nil { - return *x.HoldTime +func (x *FlowRate) GetMbps() uint64 { + if x != nil && x.Mbps != nil { + return *x.Mbps } return 0 } -func (x *Lldp) GetAdvertisementInterval() uint32 { - if x != nil && x.AdvertisementInterval != nil { - return *x.AdvertisementInterval +func (x *FlowRate) GetGbps() uint32 { + if x != nil && x.Gbps != nil { + return *x.Gbps } return 0 } -func (x *Lldp) GetName() string { - if x != nil { - return x.Name +func (x *FlowRate) GetPercentage() float32 { + if x != nil && x.Percentage != nil { + return *x.Percentage } - return "" + return 0 } -// LLDP connection to a test port. In future if more connection options arise LLDP -// connection object will be enhanced. -type LldpConnection struct { +// A container for different transmit durations. +type FlowDuration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the test port or other connection objects on which LLDP is configured. - Choice *LldpConnection_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpConnection_Choice_Enum,oneof" json:"choice,omitempty"` - // Name of the test port on which LLDP is configured on. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortName *string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` + // A choice used to determine the type of duration. + // default = Choice.Enum.continuous + Choice *FlowDuration_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDuration_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + FixedPackets *FlowFixedPackets `protobuf:"bytes,2,opt,name=fixed_packets,json=fixedPackets,proto3,oneof" json:"fixed_packets,omitempty"` + // Description missing in models + FixedSeconds *FlowFixedSeconds `protobuf:"bytes,3,opt,name=fixed_seconds,json=fixedSeconds,proto3,oneof" json:"fixed_seconds,omitempty"` + // Description missing in models + Burst *FlowBurst `protobuf:"bytes,4,opt,name=burst,proto3,oneof" json:"burst,omitempty"` + // Description missing in models + Continuous *FlowContinuous `protobuf:"bytes,5,opt,name=continuous,proto3,oneof" json:"continuous,omitempty"` } -func (x *LldpConnection) Reset() { - *x = LldpConnection{} +func (x *FlowDuration) Reset() { + *x = FlowDuration{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[196] + mi := &file_otg_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpConnection) String() string { +func (x *FlowDuration) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpConnection) ProtoMessage() {} +func (*FlowDuration) ProtoMessage() {} -func (x *LldpConnection) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[196] +func (x *FlowDuration) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35087,62 +35321,76 @@ func (x *LldpConnection) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpConnection.ProtoReflect.Descriptor instead. -func (*LldpConnection) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196} +// Deprecated: Use FlowDuration.ProtoReflect.Descriptor instead. +func (*FlowDuration) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{195} } -func (x *LldpConnection) GetChoice() LldpConnection_Choice_Enum { +func (x *FlowDuration) GetChoice() FlowDuration_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return LldpConnection_Choice_unspecified + return FlowDuration_Choice_unspecified } -func (x *LldpConnection) GetPortName() string { - if x != nil && x.PortName != nil { - return *x.PortName +func (x *FlowDuration) GetFixedPackets() *FlowFixedPackets { + if x != nil { + return x.FixedPackets } - return "" + return nil } -// The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint -// identifier associated with the transmitting LLDP agent. This field identifies the -// format and source of the chassis identifier string. It is based on the enumerator -// defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. -type LldpChassisId struct { +func (x *FlowDuration) GetFixedSeconds() *FlowFixedSeconds { + if x != nil { + return x.FixedSeconds + } + return nil +} + +func (x *FlowDuration) GetBurst() *FlowBurst { + if x != nil { + return x.Burst + } + return nil +} + +func (x *FlowDuration) GetContinuous() *FlowContinuous { + if x != nil { + return x.Continuous + } + return nil +} + +// Transmit will be continuous and will not stop automatically. +type FlowContinuous struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Chassis ID subtype to be used in Chassis ID TLV. - // default = Choice.Enum.mac_address_subtype - Choice *LldpChassisId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisId_Choice_Enum,oneof" json:"choice,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,1,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - MacAddressSubtype *LldpChassisMacSubType `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` - // Name of an interface of the chassis that uniquely identifies the chassis. - InterfaceNameSubtype *string `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` - // Locally assigned name of the chassis. - LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` + Delay *FlowDelay `protobuf:"bytes,2,opt,name=delay,proto3,oneof" json:"delay,omitempty"` } -func (x *LldpChassisId) Reset() { - *x = LldpChassisId{} +func (x *FlowContinuous) Reset() { + *x = FlowContinuous{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[197] + mi := &file_otg_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisId) String() string { +func (x *FlowContinuous) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisId) ProtoMessage() {} +func (*FlowContinuous) ProtoMessage() {} -func (x *LldpChassisId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[197] +func (x *FlowContinuous) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35153,76 +35401,66 @@ func (x *LldpChassisId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisId.ProtoReflect.Descriptor instead. -func (*LldpChassisId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{197} +// Deprecated: Use FlowContinuous.ProtoReflect.Descriptor instead. +func (*FlowContinuous) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{196} } -func (x *LldpChassisId) GetChoice() LldpChassisId_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowContinuous) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap } - return LldpChassisId_Choice_unspecified + return 0 } -func (x *LldpChassisId) GetMacAddressSubtype() *LldpChassisMacSubType { +func (x *FlowContinuous) GetDelay() *FlowDelay { if x != nil { - return x.MacAddressSubtype + return x.Delay } return nil } -func (x *LldpChassisId) GetInterfaceNameSubtype() string { - if x != nil && x.InterfaceNameSubtype != nil { - return *x.InterfaceNameSubtype - } - return "" -} - -func (x *LldpChassisId) GetLocalSubtype() string { - if x != nil && x.LocalSubtype != nil { - return *x.LocalSubtype - } - return "" -} - -// The Port ID is a mandatory TLV which identifies the port component of the endpoint -// identifier associated with the transmitting LLDP agent.This field identifies the -// format and source of the port identifier string. It is based on the enumerator defined -// by the PtopoPortIdType object from RFC2922. -type LldpPortId struct { +// The optional container to specify the delay before starting +// transmission of packets. +type FlowDelay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Port ID subtype to be used in Port ID TLV. - // default = Choice.Enum.interface_name_subtype - Choice *LldpPortId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortId_Choice_Enum,oneof" json:"choice,omitempty"` - // The MAC Address configured in the Port ID TLV. - MacAddressSubtype *string `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` // Description missing in models - InterfaceNameSubtype *LldpPortInterfaceNameSubType `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` - // The Locally assigned name configured in the Port ID TLV. - LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` + // default = Choice.Enum.bytes + Choice *FlowDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDelay_Choice_Enum,oneof" json:"choice,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Bytes *float32 `protobuf:"fixed32,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Nanoseconds *float32 `protobuf:"fixed32,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Microseconds *float32 `protobuf:"fixed32,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` } -func (x *LldpPortId) Reset() { - *x = LldpPortId{} +func (x *FlowDelay) Reset() { + *x = FlowDelay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[198] + mi := &file_otg_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortId) String() string { +func (x *FlowDelay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortId) ProtoMessage() {} +func (*FlowDelay) ProtoMessage() {} -func (x *LldpPortId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[198] +func (x *FlowDelay) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[197] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35233,72 +35471,72 @@ func (x *LldpPortId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortId.ProtoReflect.Descriptor instead. -func (*LldpPortId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198} +// Deprecated: Use FlowDelay.ProtoReflect.Descriptor instead. +func (*FlowDelay) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{197} } -func (x *LldpPortId) GetChoice() LldpPortId_Choice_Enum { +func (x *FlowDelay) GetChoice() FlowDelay_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return LldpPortId_Choice_unspecified + return FlowDelay_Choice_unspecified } -func (x *LldpPortId) GetMacAddressSubtype() string { - if x != nil && x.MacAddressSubtype != nil { - return *x.MacAddressSubtype +func (x *FlowDelay) GetBytes() float32 { + if x != nil && x.Bytes != nil { + return *x.Bytes } - return "" + return 0 } -func (x *LldpPortId) GetInterfaceNameSubtype() *LldpPortInterfaceNameSubType { - if x != nil { - return x.InterfaceNameSubtype +func (x *FlowDelay) GetNanoseconds() float32 { + if x != nil && x.Nanoseconds != nil { + return *x.Nanoseconds } - return nil + return 0 } -func (x *LldpPortId) GetLocalSubtype() string { - if x != nil && x.LocalSubtype != nil { - return *x.LocalSubtype +func (x *FlowDelay) GetMicroseconds() float32 { + if x != nil && x.Microseconds != nil { + return *x.Microseconds } - return "" + return 0 } -// The MAC address configured in the Chassis ID TLV. -type LldpChassisMacSubType struct { +// Transmit a fixed number of packets after which the flow will stop. +type FlowFixedPackets struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpChassisMacSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisMacSubType_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Stop transmit of the flow after this number of packets. + // default = 1 + Packets *uint32 `protobuf:"varint,1,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` } -func (x *LldpChassisMacSubType) Reset() { - *x = LldpChassisMacSubType{} +func (x *FlowFixedPackets) Reset() { + *x = FlowFixedPackets{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[199] + mi := &file_otg_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisMacSubType) String() string { +func (x *FlowFixedPackets) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisMacSubType) ProtoMessage() {} +func (*FlowFixedPackets) ProtoMessage() {} -func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[199] +func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[198] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35309,65 +35547,65 @@ func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisMacSubType.ProtoReflect.Descriptor instead. -func (*LldpChassisMacSubType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199} +// Deprecated: Use FlowFixedPackets.ProtoReflect.Descriptor instead. +func (*FlowFixedPackets) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{198} } -func (x *LldpChassisMacSubType) GetChoice() LldpChassisMacSubType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowFixedPackets) GetPackets() uint32 { + if x != nil && x.Packets != nil { + return *x.Packets } - return LldpChassisMacSubType_Choice_unspecified + return 0 } -func (x *LldpChassisMacSubType) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowFixedPackets) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap } - return "" + return 0 } -func (x *LldpChassisMacSubType) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowFixedPackets) GetDelay() *FlowDelay { + if x != nil { + return x.Delay } - return "" + return nil } -// The interface name configured in the Port ID TLV. -type LldpPortInterfaceNameSubType struct { +// Transmit for a fixed number of seconds after which the flow will stop. +type FlowFixedSeconds struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpPortInterfaceNameSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortInterfaceNameSubType_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Stop transmit of the flow after this number of seconds. + // default = 1 + Seconds *float32 `protobuf:"fixed32,1,opt,name=seconds,proto3,oneof" json:"seconds,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3,oneof" json:"delay,omitempty"` } -func (x *LldpPortInterfaceNameSubType) Reset() { - *x = LldpPortInterfaceNameSubType{} +func (x *FlowFixedSeconds) Reset() { + *x = FlowFixedSeconds{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[200] + mi := &file_otg_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortInterfaceNameSubType) String() string { +func (x *FlowFixedSeconds) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortInterfaceNameSubType) ProtoMessage() {} +func (*FlowFixedSeconds) ProtoMessage() {} -func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[200] +func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35378,65 +35616,71 @@ func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortInterfaceNameSubType.ProtoReflect.Descriptor instead. -func (*LldpPortInterfaceNameSubType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200} +// Deprecated: Use FlowFixedSeconds.ProtoReflect.Descriptor instead. +func (*FlowFixedSeconds) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{199} } -func (x *LldpPortInterfaceNameSubType) GetChoice() LldpPortInterfaceNameSubType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowFixedSeconds) GetSeconds() float32 { + if x != nil && x.Seconds != nil { + return *x.Seconds } - return LldpPortInterfaceNameSubType_Choice_unspecified + return 0 } -func (x *LldpPortInterfaceNameSubType) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowFixedSeconds) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap } - return "" + return 0 } -func (x *LldpPortInterfaceNameSubType) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowFixedSeconds) GetDelay() *FlowDelay { + if x != nil { + return x.Delay } - return "" + return nil } -// The system Name configured in the System Name TLV. -type LldpSystemName struct { +// Transmits continuous or fixed burst of packets. +// For continuous burst of packets, it will not automatically stop. +// For fixed burst of packets, it will stop after transmitting fixed number of bursts. +type FlowBurst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpSystemName_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpSystemName_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The number of packet bursts transmitted per flow. + // A value of 0 implies continuous burst of packets. + // default = 0 + Bursts *uint32 `protobuf:"varint,1,opt,name=bursts,proto3,oneof" json:"bursts,omitempty"` + // The number of packets transmitted per burst. + // default = 1 + Packets *uint32 `protobuf:"varint,2,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,3,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + InterBurstGap *FlowDurationInterBurstGap `protobuf:"bytes,4,opt,name=inter_burst_gap,json=interBurstGap,proto3,oneof" json:"inter_burst_gap,omitempty"` } -func (x *LldpSystemName) Reset() { - *x = LldpSystemName{} +func (x *FlowBurst) Reset() { + *x = FlowBurst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[201] + mi := &file_otg_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpSystemName) String() string { +func (x *FlowBurst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpSystemName) ProtoMessage() {} +func (*FlowBurst) ProtoMessage() {} -func (x *LldpSystemName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[201] +func (x *FlowBurst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35447,56 +35691,149 @@ func (x *LldpSystemName) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpSystemName.ProtoReflect.Descriptor instead. -func (*LldpSystemName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201} +// Deprecated: Use FlowBurst.ProtoReflect.Descriptor instead. +func (*FlowBurst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{200} } -func (x *LldpSystemName) GetChoice() LldpSystemName_Choice_Enum { - if x != nil && x.Choice != nil { +func (x *FlowBurst) GetBursts() uint32 { + if x != nil && x.Bursts != nil { + return *x.Bursts + } + return 0 +} + +func (x *FlowBurst) GetPackets() uint32 { + if x != nil && x.Packets != nil { + return *x.Packets + } + return 0 +} + +func (x *FlowBurst) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap + } + return 0 +} + +func (x *FlowBurst) GetInterBurstGap() *FlowDurationInterBurstGap { + if x != nil { + return x.InterBurstGap + } + return nil +} + +// The optional container for specifying a gap between bursts. +type FlowDurationInterBurstGap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of inter burst gap units. + // default = Choice.Enum.bytes + Choice *FlowDurationInterBurstGap_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDurationInterBurstGap_Choice_Enum,oneof" json:"choice,omitempty"` + // The amount of time between bursts expressed in bytes. + // A value of 0 indicates no gap between bursts. + // default = 12 + Bytes *float64 `protobuf:"fixed64,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` + // The amount of time between bursts expressed in nanoseconds. + // A value of 0 indicates no gap between bursts. + // default = 96 + Nanoseconds *float64 `protobuf:"fixed64,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` + // The amount of time between bursts expressed in microseconds. + // A value of 0 indicates no gap between bursts. + // default = 0.096 + Microseconds *float64 `protobuf:"fixed64,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` +} + +func (x *FlowDurationInterBurstGap) Reset() { + *x = FlowDurationInterBurstGap{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[201] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowDurationInterBurstGap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowDurationInterBurstGap) ProtoMessage() {} + +func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[201] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FlowDurationInterBurstGap.ProtoReflect.Descriptor instead. +func (*FlowDurationInterBurstGap) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{201} +} + +func (x *FlowDurationInterBurstGap) GetChoice() FlowDurationInterBurstGap_Choice_Enum { + if x != nil && x.Choice != nil { return *x.Choice } - return LldpSystemName_Choice_unspecified + return FlowDurationInterBurstGap_Choice_unspecified } -func (x *LldpSystemName) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowDurationInterBurstGap) GetBytes() float64 { + if x != nil && x.Bytes != nil { + return *x.Bytes } - return "" + return 0 } -func (x *LldpSystemName) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowDurationInterBurstGap) GetNanoseconds() float64 { + if x != nil && x.Nanoseconds != nil { + return *x.Nanoseconds } - return "" + return 0 } -// Error response generated while serving API request. -type Error struct { +func (x *FlowDurationInterBurstGap) GetMicroseconds() float64 { + if x != nil && x.Microseconds != nil { + return *x.Microseconds + } + return 0 +} + +// The optional container for configuring flow metrics. +type FlowMetrics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Numeric status code based on the underlying transport being used. - // The API server MUST set this code explicitly based on following references: - // - HTTP 4xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.5 - // - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6 - // - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html - // required = true - Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - // Classification of error originating from within API server that may not be mapped - // to the value in `code`. - // Absence of this field may indicate that the error did not originate from within API - // server. - Kind *Error_Kind_Enum `protobuf:"varint,2,opt,name=kind,proto3,enum=otg.Error_Kind_Enum,oneof" json:"kind,omitempty"` - // List of error messages generated while executing the request. - Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` + // Enables flow metrics. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Enables additional flow metric loss calculation. + // default = False + Loss *bool `protobuf:"varint,2,opt,name=loss,proto3,oneof" json:"loss,omitempty"` + // Rx Tx ratio. + RxTxRatio *FlowRxTxRatio `protobuf:"bytes,6,opt,name=rx_tx_ratio,json=rxTxRatio,proto3,oneof" json:"rx_tx_ratio,omitempty"` + // Enables additional flow metric first and last timestamps. + // default = False + Timestamps *bool `protobuf:"varint,3,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + // Latency metrics. + Latency *FlowLatencyMetrics `protobuf:"bytes,4,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + // Predefined metric tags + PredefinedMetricTags *FlowPredefinedTags `protobuf:"bytes,5,opt,name=predefined_metric_tags,json=predefinedMetricTags,proto3,oneof" json:"predefined_metric_tags,omitempty"` } -func (x *Error) Reset() { - *x = Error{} +func (x *FlowMetrics) Reset() { + *x = FlowMetrics{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35504,13 +35841,13 @@ func (x *Error) Reset() { } } -func (x *Error) String() string { +func (x *FlowMetrics) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Error) ProtoMessage() {} +func (*FlowMetrics) ProtoMessage() {} -func (x *Error) ProtoReflect() protoreflect.Message { +func (x *FlowMetrics) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35522,45 +35859,84 @@ func (x *Error) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Error.ProtoReflect.Descriptor instead. -func (*Error) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowMetrics.ProtoReflect.Descriptor instead. +func (*FlowMetrics) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{202} } -func (x *Error) GetCode() int32 { +func (x *FlowMetrics) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable + } + return false +} + +func (x *FlowMetrics) GetLoss() bool { + if x != nil && x.Loss != nil { + return *x.Loss + } + return false +} + +func (x *FlowMetrics) GetRxTxRatio() *FlowRxTxRatio { if x != nil { - return x.Code + return x.RxTxRatio } - return 0 + return nil } -func (x *Error) GetKind() Error_Kind_Enum { - if x != nil && x.Kind != nil { - return *x.Kind +func (x *FlowMetrics) GetTimestamps() bool { + if x != nil && x.Timestamps != nil { + return *x.Timestamps } - return Error_Kind_unspecified + return false } -func (x *Error) GetErrors() []string { +func (x *FlowMetrics) GetLatency() *FlowLatencyMetrics { if x != nil { - return x.Errors + return x.Latency } return nil } -// A list of warnings that have occurred while executing the request. -type Warning struct { +func (x *FlowMetrics) GetPredefinedMetricTags() *FlowPredefinedTags { + if x != nil { + return x.PredefinedMetricTags + } + return nil +} + +// The optional container for per flow latency metric configuration. +type FlowLatencyMetrics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of any system specific warnings that have occurred while - // executing the request. - Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` + // True to enable latency metrics using timestamps. + // + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Select the type of latency measurement. The different types of + // latency measurements are: + // + // store_forward: + // The time interval starting when the last bit of the frame leaves the + // sending port and ending when the first bit of the frame is seen on + // the receiving port (LIFO). This is based on the RFC 1242 standard. + // + // cut_through: + // The time interval starting when the first bit of the frame leaves + // the sending port and ending when the first bit of the frame is seen + // on the receiving port (FIFO). This is based on the RFC 1242 + // standard. + // default = Mode.Enum.store_forward + Mode *FlowLatencyMetrics_Mode_Enum `protobuf:"varint,2,opt,name=mode,proto3,enum=otg.FlowLatencyMetrics_Mode_Enum,oneof" json:"mode,omitempty"` } -func (x *Warning) Reset() { - *x = Warning{} +func (x *FlowLatencyMetrics) Reset() { + *x = FlowLatencyMetrics{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35568,13 +35944,13 @@ func (x *Warning) Reset() { } } -func (x *Warning) String() string { +func (x *FlowLatencyMetrics) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Warning) ProtoMessage() {} +func (*FlowLatencyMetrics) ProtoMessage() {} -func (x *Warning) ProtoReflect() protoreflect.Message { +func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35586,32 +35962,41 @@ func (x *Warning) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Warning.ProtoReflect.Descriptor instead. -func (*Warning) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowLatencyMetrics.ProtoReflect.Descriptor instead. +func (*FlowLatencyMetrics) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{203} } -func (x *Warning) GetWarnings() []string { - if x != nil { - return x.Warnings +func (x *FlowLatencyMetrics) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return nil + return false } -// Request for updating specific attributes of resources in traffic generator -type ConfigUpdate struct { +func (x *FlowLatencyMetrics) GetMode() FlowLatencyMetrics_Mode_Enum { + if x != nil && x.Mode != nil { + return *x.Mode + } + return FlowLatencyMetrics_Mode_unspecified +} + +// List of predefined flow tracking options, outside packet fields, that can be enabled. +type FlowPredefinedTags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Choice *ConfigUpdate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ConfigUpdate_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Flows *FlowsUpdate `protobuf:"bytes,2,opt,name=flows,proto3,oneof" json:"flows,omitempty"` + // Enables Rx port or lag level disaggregation with predefined metrics tag name set + // as rx_name. + // The Rx port / lag names can be found under tagged_metrics tag names in flow metrics + // response. + // default = False + RxName *bool `protobuf:"varint,1,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` } -func (x *ConfigUpdate) Reset() { - *x = ConfigUpdate{} +func (x *FlowPredefinedTags) Reset() { + *x = FlowPredefinedTags{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35619,13 +36004,13 @@ func (x *ConfigUpdate) Reset() { } } -func (x *ConfigUpdate) String() string { +func (x *FlowPredefinedTags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConfigUpdate) ProtoMessage() {} +func (*FlowPredefinedTags) ProtoMessage() {} -func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { +func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35637,40 +36022,52 @@ func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConfigUpdate.ProtoReflect.Descriptor instead. -func (*ConfigUpdate) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowPredefinedTags.ProtoReflect.Descriptor instead. +func (*FlowPredefinedTags) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{204} } -func (x *ConfigUpdate) GetChoice() ConfigUpdate_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return ConfigUpdate_Choice_unspecified -} - -func (x *ConfigUpdate) GetFlows() *FlowsUpdate { - if x != nil { - return x.Flows +func (x *FlowPredefinedTags) GetRxName() bool { + if x != nil && x.RxName != nil { + return *x.RxName } - return nil + return false } -// A container of flows with associated properties to be updated without affecting the -// flows current transmit state. -type FlowsUpdate struct { +// Rx Tx ratio is the ratio of expected number of Rx packets across all Rx ports to +// the Tx packets +// for the configured flow. It is a factor by which the Tx packet count is multiplied +// to calculate +// the sum of expected Rx packet count, across all Rx ports. This will be used to calculate +// loss +// percentage of flow at aggregate level. +type FlowRxTxRatio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Flow properties to be updated without affecting the transmit state. - PropertyNames []FlowsUpdate_PropertyNames_Enum `protobuf:"varint,1,rep,packed,name=property_names,json=propertyNames,proto3,enum=otg.FlowsUpdate_PropertyNames_Enum" json:"property_names,omitempty"` - // The list of configured flows for which given property will be updated. - Flows []*Flow `protobuf:"bytes,2,rep,name=flows,proto3" json:"flows,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *FlowRxTxRatio_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRxTxRatio_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RxCount *FlowRxTxRatioRxCount `protobuf:"bytes,2,opt,name=rx_count,json=rxCount,proto3,oneof" json:"rx_count,omitempty"` + // Should be a positive, non-zero value. The default value of 1, is when the Rx packet + // count across + // all ports is expected to match the Tx packet count. A custom integer value (>1) can + // be specified for + // loss calculation for cases when there are multiple destination addresses configured + // within one flow, + // but DUT is configured to replicate only to a subset of Rx ports. For cases when Tx + // side generates two + // packets from each source in 1:1 protection mode but only one of the two packets are + // received by the + // Rx port, we may need to specify a fractional value instead. + // default = 1.0 + Value *float32 `protobuf:"fixed32,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowsUpdate) Reset() { - *x = FlowsUpdate{} +func (x *FlowRxTxRatio) Reset() { + *x = FlowRxTxRatio{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35678,13 +36075,13 @@ func (x *FlowsUpdate) Reset() { } } -func (x *FlowsUpdate) String() string { +func (x *FlowRxTxRatio) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowsUpdate) ProtoMessage() {} +func (*FlowRxTxRatio) ProtoMessage() {} -func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { +func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35696,44 +36093,43 @@ func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowsUpdate.ProtoReflect.Descriptor instead. -func (*FlowsUpdate) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowRxTxRatio.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatio) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{205} } -func (x *FlowsUpdate) GetPropertyNames() []FlowsUpdate_PropertyNames_Enum { - if x != nil { - return x.PropertyNames +func (x *FlowRxTxRatio) GetChoice() FlowRxTxRatio_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRxTxRatio_Choice_unspecified } -func (x *FlowsUpdate) GetFlows() []*Flow { +func (x *FlowRxTxRatio) GetRxCount() *FlowRxTxRatioRxCount { if x != nil { - return x.Flows + return x.RxCount } return nil } -// Request for setting operational state of configured resources. -type ControlState struct { +func (x *FlowRxTxRatio) GetValue() float32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +// This is for cases where one copy of Tx packet is received on all Rx ports and so +// the sum total of Rx packets +// received across all Rx ports is a multiple of Rx port count and Tx packets. +type FlowRxTxRatioRxCount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Description missing in models - // required = true - Choice ControlState_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlState_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Port *StatePort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` - // Description missing in models - Protocol *StateProtocol `protobuf:"bytes,3,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` - // Description missing in models - Traffic *StateTraffic `protobuf:"bytes,4,opt,name=traffic,proto3,oneof" json:"traffic,omitempty"` } -func (x *ControlState) Reset() { - *x = ControlState{} +func (x *FlowRxTxRatioRxCount) Reset() { + *x = FlowRxTxRatioRxCount{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35741,13 +36137,13 @@ func (x *ControlState) Reset() { } } -func (x *ControlState) String() string { +func (x *FlowRxTxRatioRxCount) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlState) ProtoMessage() {} +func (*FlowRxTxRatioRxCount) ProtoMessage() {} -func (x *ControlState) ProtoReflect() protoreflect.Message { +func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35759,56 +36155,32 @@ func (x *ControlState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlState.ProtoReflect.Descriptor instead. -func (*ControlState) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowRxTxRatioRxCount.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatioRxCount) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{206} } -func (x *ControlState) GetChoice() ControlState_Choice_Enum { - if x != nil { - return x.Choice - } - return ControlState_Choice_unspecified -} - -func (x *ControlState) GetPort() *StatePort { - if x != nil { - return x.Port - } - return nil -} - -func (x *ControlState) GetProtocol() *StateProtocol { - if x != nil { - return x.Protocol - } - return nil -} - -func (x *ControlState) GetTraffic() *StateTraffic { - if x != nil { - return x.Traffic - } - return nil -} - -// States associated with configured ports. -type StatePort struct { +// The optional container for event configuration. +type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // True to enable all events. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Description missing in models - // required = true - Choice StatePort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatePort_Choice_Enum" json:"choice,omitempty"` + Link *EventLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` // Description missing in models - Link *StatePortLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` + RxRateThreshold *EventRxRateThreshold `protobuf:"bytes,3,opt,name=rx_rate_threshold,json=rxRateThreshold,proto3,oneof" json:"rx_rate_threshold,omitempty"` // Description missing in models - Capture *StatePortCapture `protobuf:"bytes,3,opt,name=capture,proto3,oneof" json:"capture,omitempty"` + RouteAdvertiseWithdraw *EventRouteAdvertiseWithdraw `protobuf:"bytes,4,opt,name=route_advertise_withdraw,json=routeAdvertiseWithdraw,proto3,oneof" json:"route_advertise_withdraw,omitempty"` } -func (x *StatePort) Reset() { - *x = StatePort{} +func (x *Event) Reset() { + *x = Event{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35816,13 +36188,13 @@ func (x *StatePort) Reset() { } } -func (x *StatePort) String() string { +func (x *Event) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePort) ProtoMessage() {} +func (*Event) ProtoMessage() {} -func (x *StatePort) ProtoReflect() protoreflect.Message { +func (x *Event) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35834,47 +36206,58 @@ func (x *StatePort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePort.ProtoReflect.Descriptor instead. -func (*StatePort) Descriptor() ([]byte, []int) { +// Deprecated: Use Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{207} } -func (x *StatePort) GetChoice() StatePort_Choice_Enum { - if x != nil { - return x.Choice +func (x *Event) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return StatePort_Choice_unspecified + return false } -func (x *StatePort) GetLink() *StatePortLink { +func (x *Event) GetLink() *EventLink { if x != nil { return x.Link } return nil } -func (x *StatePort) GetCapture() *StatePortCapture { +func (x *Event) GetRxRateThreshold() *EventRxRateThreshold { if x != nil { - return x.Capture + return x.RxRateThreshold } return nil } -// States associated with configured flows -type StateTraffic struct { +func (x *Event) GetRouteAdvertiseWithdraw() *EventRouteAdvertiseWithdraw { + if x != nil { + return x.RouteAdvertiseWithdraw + } + return nil +} + +// The optional container for rx rate threshold event configuration. +type EventRxRateThreshold struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice StateTraffic_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateTraffic_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - FlowTransmit *StateTrafficFlowTransmit `protobuf:"bytes,2,opt,name=flow_transmit,json=flowTransmit,proto3,oneof" json:"flow_transmit,omitempty"` + // True to enable the rx_rate_threshold event. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // True to enable notifications when the rx rate of a flow passes above + // or below the threshold value. + // default = 95 + Threshold *float32 `protobuf:"fixed32,2,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` } -func (x *StateTraffic) Reset() { - *x = StateTraffic{} +func (x *EventRxRateThreshold) Reset() { + *x = EventRxRateThreshold{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35882,13 +36265,13 @@ func (x *StateTraffic) Reset() { } } -func (x *StateTraffic) String() string { +func (x *EventRxRateThreshold) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTraffic) ProtoMessage() {} +func (*EventRxRateThreshold) ProtoMessage() {} -func (x *StateTraffic) ProtoReflect() protoreflect.Message { +func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35900,44 +36283,38 @@ func (x *StateTraffic) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTraffic.ProtoReflect.Descriptor instead. -func (*StateTraffic) Descriptor() ([]byte, []int) { +// Deprecated: Use EventRxRateThreshold.ProtoReflect.Descriptor instead. +func (*EventRxRateThreshold) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{208} } -func (x *StateTraffic) GetChoice() StateTraffic_Choice_Enum { - if x != nil { - return x.Choice +func (x *EventRxRateThreshold) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return StateTraffic_Choice_unspecified + return false } -func (x *StateTraffic) GetFlowTransmit() *StateTrafficFlowTransmit { - if x != nil { - return x.FlowTransmit +func (x *EventRxRateThreshold) GetThreshold() float32 { + if x != nil && x.Threshold != nil { + return *x.Threshold } - return nil + return 0 } -// States associated with protocols on configured resources. -type StateProtocol struct { +// The optional container for link up/down event configuration. +type EventLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice StateProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocol_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - All *StateProtocolAll `protobuf:"bytes,2,opt,name=all,proto3,oneof" json:"all,omitempty"` - // Description missing in models - Route *StateProtocolRoute `protobuf:"bytes,3,opt,name=route,proto3,oneof" json:"route,omitempty"` - // Description missing in models - Lacp *StateProtocolLacp `protobuf:"bytes,4,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + // True to enable notifications when a link up/down event occurs. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` } -func (x *StateProtocol) Reset() { - *x = StateProtocol{} +func (x *EventLink) Reset() { + *x = EventLink{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35945,13 +36322,13 @@ func (x *StateProtocol) Reset() { } } -func (x *StateProtocol) String() string { +func (x *EventLink) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocol) ProtoMessage() {} +func (*EventLink) ProtoMessage() {} -func (x *StateProtocol) ProtoReflect() protoreflect.Message { +func (x *EventLink) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35963,60 +36340,32 @@ func (x *StateProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocol.ProtoReflect.Descriptor instead. -func (*StateProtocol) Descriptor() ([]byte, []int) { +// Deprecated: Use EventLink.ProtoReflect.Descriptor instead. +func (*EventLink) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{209} } -func (x *StateProtocol) GetChoice() StateProtocol_Choice_Enum { - if x != nil { - return x.Choice - } - return StateProtocol_Choice_unspecified -} - -func (x *StateProtocol) GetAll() *StateProtocolAll { - if x != nil { - return x.All - } - return nil -} - -func (x *StateProtocol) GetRoute() *StateProtocolRoute { - if x != nil { - return x.Route - } - return nil -} - -func (x *StateProtocol) GetLacp() *StateProtocolLacp { - if x != nil { - return x.Lacp +func (x *EventLink) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return nil + return false } -// Sets the link of configured ports. -type StatePortLink struct { +// The optional container for route advertise/withdraw event configuration. +type EventRouteAdvertiseWithdraw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of target ports. An empty or null list will target all ports. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The link state. - // required = true - State StatePortLink_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortLink_State_Enum" json:"state,omitempty"` + // True to enable notifications when a route advertise/withdraw + // event occurs. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` } -func (x *StatePortLink) Reset() { - *x = StatePortLink{} +func (x *EventRouteAdvertiseWithdraw) Reset() { + *x = EventRouteAdvertiseWithdraw{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36024,13 +36373,13 @@ func (x *StatePortLink) Reset() { } } -func (x *StatePortLink) String() string { +func (x *EventRouteAdvertiseWithdraw) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortLink) ProtoMessage() {} +func (*EventRouteAdvertiseWithdraw) ProtoMessage() {} -func (x *StatePortLink) ProtoReflect() protoreflect.Message { +func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36042,49 +36391,44 @@ func (x *StatePortLink) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortLink.ProtoReflect.Descriptor instead. -func (*StatePortLink) Descriptor() ([]byte, []int) { +// Deprecated: Use EventRouteAdvertiseWithdraw.ProtoReflect.Descriptor instead. +func (*EventRouteAdvertiseWithdraw) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{210} } -func (x *StatePortLink) GetPortNames() []string { - if x != nil { - return x.PortNames - } - return nil -} - -func (x *StatePortLink) GetState() StatePortLink_State_Enum { - if x != nil { - return x.State +func (x *EventRouteAdvertiseWithdraw) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return StatePortLink_State_unspecified + return false } -// Sets the capture state of configured ports -type StatePortCapture struct { +// Description missing in models +type EventRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ports to which the capture state will be applied to. If the list of - // port_names is empty or null the state will be applied to all configured ports. - // If the list is not empty any port that is not included in the list of port_names - // MUST be ignored and not included in the state change. + // Constrain the events being returned by specifying event types. + // If the list is empty then all event types will be returned. + Type []EventRequest_Type_Enum `protobuf:"varint,1,rep,packed,name=type,proto3,enum=otg.EventRequest_Type_Enum" json:"type,omitempty"` + // Constrain the events being returned by specifying event sources. + // If the list is empty then all event sources will be returned. // // x-constraint: // - /components/schemas/Port/properties/name + // - /components/schemas/Bgp.V4RouteRange/name + // - /components/schemas/Bgp.V6RouteRange/name // // x-constraint: // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The capture state. - // required = true - State StatePortCapture_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortCapture_State_Enum" json:"state,omitempty"` + // - /components/schemas/Bgp.V4RouteRange/name + // - /components/schemas/Bgp.V6RouteRange/name + Source []string `protobuf:"bytes,2,rep,name=source,proto3" json:"source,omitempty"` } -func (x *StatePortCapture) Reset() { - *x = StatePortCapture{} +func (x *EventRequest) Reset() { + *x = EventRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36092,13 +36436,13 @@ func (x *StatePortCapture) Reset() { } } -func (x *StatePortCapture) String() string { +func (x *EventRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortCapture) ProtoMessage() {} +func (*EventRequest) ProtoMessage() {} -func (x *StatePortCapture) ProtoReflect() protoreflect.Message { +func (x *EventRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36110,60 +36454,43 @@ func (x *StatePortCapture) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortCapture.ProtoReflect.Descriptor instead. -func (*StatePortCapture) Descriptor() ([]byte, []int) { +// Deprecated: Use EventRequest.ProtoReflect.Descriptor instead. +func (*EventRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{211} } -func (x *StatePortCapture) GetPortNames() []string { +func (x *EventRequest) GetType() []EventRequest_Type_Enum { if x != nil { - return x.PortNames + return x.Type } return nil } -func (x *StatePortCapture) GetState() StatePortCapture_State_Enum { +func (x *EventRequest) GetSource() []string { if x != nil { - return x.State + return x.Source } - return StatePortCapture_State_unspecified + return nil } -// Provides state control of flow transmission. -type StateTrafficFlowTransmit struct { +// A container that describes what events a system should provide and +// optionally where to publish them. +type EventSubscription struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of flows to which the transmit state will be applied to. If the list of - // flow_names is empty or null the state will be applied to all configured flows. - // If the list is not empty any flow that is not included in the list of flow_names - // MUST be ignored and not included in the state change. - // - // x-constraint: - // - /components/schemas/Flow/properties/name - // - // x-constraint: - // - /components/schemas/Flow/properties/name - FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` - // The transmit state. - // If the value of the state property is 'start' then all flows defined by the 'flow_names' - // property will be started and the metric counters MUST be cleared prior to starting - // the flow(s). - // If the value of the state property is 'stop' then all flows defined by the 'flow_names' - // property will be stopped and the metric counters MUST NOT be cleared. - // If the value of the state property is 'pause' then all flows defined by the 'flow_names' - // property will be paused and the metric counters MUST NOT be cleared. - // If the value of the state property is 'resume' then any paused flows defined by the - // 'flow_names' property will start transmit at the point at which they were paused. - // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) - // MUST NOT have their metric counters cleared. - // required = true - State StateTrafficFlowTransmit_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateTrafficFlowTransmit_State_Enum" json:"state,omitempty"` + // Description missing in models + Events *EventRequest `protobuf:"bytes,1,opt,name=events,proto3,oneof" json:"events,omitempty"` + // Indicates where a client wants to be notified of the events set in + // the events property. + // If this property is empty or null then no event notifications will + // be forwarded. + CallbackUrl *string `protobuf:"bytes,2,opt,name=callback_url,json=callbackUrl,proto3,oneof" json:"callback_url,omitempty"` } -func (x *StateTrafficFlowTransmit) Reset() { - *x = StateTrafficFlowTransmit{} +func (x *EventSubscription) Reset() { + *x = EventSubscription{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36171,13 +36498,13 @@ func (x *StateTrafficFlowTransmit) Reset() { } } -func (x *StateTrafficFlowTransmit) String() string { +func (x *EventSubscription) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTrafficFlowTransmit) ProtoMessage() {} +func (*EventSubscription) ProtoMessage() {} -func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { +func (x *EventSubscription) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36189,41 +36516,62 @@ func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTrafficFlowTransmit.ProtoReflect.Descriptor instead. -func (*StateTrafficFlowTransmit) Descriptor() ([]byte, []int) { +// Deprecated: Use EventSubscription.ProtoReflect.Descriptor instead. +func (*EventSubscription) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{212} } -func (x *StateTrafficFlowTransmit) GetFlowNames() []string { +func (x *EventSubscription) GetEvents() *EventRequest { if x != nil { - return x.FlowNames + return x.Events } return nil } -func (x *StateTrafficFlowTransmit) GetState() StateTrafficFlowTransmit_State_Enum { - if x != nil { - return x.State +func (x *EventSubscription) GetCallbackUrl() string { + if x != nil && x.CallbackUrl != nil { + return *x.CallbackUrl } - return StateTrafficFlowTransmit_State_unspecified + return "" } -// Sets all configured protocols to `start` or `stop` state. -// Setting protocol state to `start` shall be a no-op if preceding `set_config` API -// call was made with `config.options.protocol_options.auto_start_all` set to `true` -// or if all the configured protocols are already started. -type StateProtocolAll struct { +// Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf +type Lldp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Protocol states + // The unique name of the object on which LLDP is running. // required = true - State StateProtocolAll_State_Enum `protobuf:"varint,1,opt,name=state,proto3,enum=otg.StateProtocolAll_State_Enum" json:"state,omitempty"` + Connection *LldpConnection `protobuf:"bytes,1,opt,name=connection,proto3" json:"connection,omitempty"` + // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint + // identifier associated with the transmitting LLDP agent. If mac address is specified + // it should be in colon seperated mac address format. + ChassisId *LldpChassisId `protobuf:"bytes,2,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` + // The Port ID is a mandatory TLV which identifies the port component of the endpoint + // identifier associated with the transmitting LLDP agent. If the specified port is + // an IEEE 802.3 Repeater port, then this TLV is optional. + PortId *LldpPortId `protobuf:"bytes,3,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + // The system name field shall contain an alpha-numeric string that indicates the system's + // administratively assigned name. The system name should be the system's fully qualified + // domain name. If implementations support IETF RFC 3418, the sysName object should + // be used for this field. + SystemName *LldpSystemName `protobuf:"bytes,4,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` + // Specifies the amount of time in seconds a receiving device should maintain LLDP information + // sent by the device before discarding it. + // default = 120 + HoldTime *uint32 `protobuf:"varint,5,opt,name=hold_time,json=holdTime,proto3,oneof" json:"hold_time,omitempty"` + // Set the transmission frequency of LLDP updates in seconds. + // default = 30 + AdvertisementInterval *uint32 `protobuf:"varint,6,opt,name=advertisement_interval,json=advertisementInterval,proto3,oneof" json:"advertisement_interval,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` } -func (x *StateProtocolAll) Reset() { - *x = StateProtocolAll{} +func (x *Lldp) Reset() { + *x = Lldp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36231,13 +36579,13 @@ func (x *StateProtocolAll) Reset() { } } -func (x *StateProtocolAll) String() string { +func (x *Lldp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolAll) ProtoMessage() {} +func (*Lldp) ProtoMessage() {} -func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { +func (x *Lldp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36249,46 +36597,81 @@ func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolAll.ProtoReflect.Descriptor instead. -func (*StateProtocolAll) Descriptor() ([]byte, []int) { +// Deprecated: Use Lldp.ProtoReflect.Descriptor instead. +func (*Lldp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{213} } -func (x *StateProtocolAll) GetState() StateProtocolAll_State_Enum { +func (x *Lldp) GetConnection() *LldpConnection { if x != nil { - return x.State + return x.Connection } - return StateProtocolAll_State_unspecified + return nil } -// Sets the state of configured routes -type StateProtocolRoute struct { +func (x *Lldp) GetChassisId() *LldpChassisId { + if x != nil { + return x.ChassisId + } + return nil +} + +func (x *Lldp) GetPortId() *LldpPortId { + if x != nil { + return x.PortId + } + return nil +} + +func (x *Lldp) GetSystemName() *LldpSystemName { + if x != nil { + return x.SystemName + } + return nil +} + +func (x *Lldp) GetHoldTime() uint32 { + if x != nil && x.HoldTime != nil { + return *x.HoldTime + } + return 0 +} + +func (x *Lldp) GetAdvertisementInterval() uint32 { + if x != nil && x.AdvertisementInterval != nil { + return *x.AdvertisementInterval + } + return 0 +} + +func (x *Lldp) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// LLDP connection to a test port. In future if more connection options arise LLDP +// connection object will be enhanced. +type LldpConnection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of device route objects to control. If no names are specified then all - // route objects that match the x-constraint will be affected. + // The name of the test port or other connection objects on which LLDP is configured. + Choice *LldpConnection_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpConnection_Choice_Enum,oneof" json:"choice,omitempty"` + // Name of the test port on which LLDP is configured on. // // x-constraint: - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name + // - /components/schemas/Port/properties/name // // x-constraint: - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` - // Route states - // required = true - State StateProtocolRoute_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolRoute_State_Enum" json:"state,omitempty"` + // - /components/schemas/Port/properties/name + PortName *string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` } -func (x *StateProtocolRoute) Reset() { - *x = StateProtocolRoute{} +func (x *LldpConnection) Reset() { + *x = LldpConnection{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36296,13 +36679,13 @@ func (x *StateProtocolRoute) Reset() { } } -func (x *StateProtocolRoute) String() string { +func (x *LldpConnection) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolRoute) ProtoMessage() {} +func (*LldpConnection) ProtoMessage() {} -func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { +func (x *LldpConnection) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36314,40 +36697,47 @@ func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolRoute.ProtoReflect.Descriptor instead. -func (*StateProtocolRoute) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpConnection.ProtoReflect.Descriptor instead. +func (*LldpConnection) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{214} } -func (x *StateProtocolRoute) GetNames() []string { - if x != nil { - return x.Names +func (x *LldpConnection) GetChoice() LldpConnection_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return LldpConnection_Choice_unspecified } -func (x *StateProtocolRoute) GetState() StateProtocolRoute_State_Enum { - if x != nil { - return x.State +func (x *LldpConnection) GetPortName() string { + if x != nil && x.PortName != nil { + return *x.PortName } - return StateProtocolRoute_State_unspecified + return "" } -// Sets state of configured LACP -type StateProtocolLacp struct { +// The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint +// identifier associated with the transmitting LLDP agent. This field identifies the +// format and source of the chassis identifier string. It is based on the enumerator +// defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. +type LldpChassisId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Chassis ID subtype to be used in Chassis ID TLV. + // default = Choice.Enum.mac_address_subtype + Choice *LldpChassisId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisId_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // required = true - Choice StateProtocolLacp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolLacp_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Admin *StateProtocolLacpAdmin `protobuf:"bytes,2,opt,name=admin,proto3,oneof" json:"admin,omitempty"` + MacAddressSubtype *LldpChassisMacSubType `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` + // Name of an interface of the chassis that uniquely identifies the chassis. + InterfaceNameSubtype *string `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` + // Locally assigned name of the chassis. + LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` } -func (x *StateProtocolLacp) Reset() { - *x = StateProtocolLacp{} +func (x *LldpChassisId) Reset() { + *x = LldpChassisId{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36355,13 +36745,13 @@ func (x *StateProtocolLacp) Reset() { } } -func (x *StateProtocolLacp) String() string { +func (x *LldpChassisId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacp) ProtoMessage() {} +func (*LldpChassisId) ProtoMessage() {} -func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { +func (x *LldpChassisId) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36373,49 +36763,61 @@ func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacp.ProtoReflect.Descriptor instead. -func (*StateProtocolLacp) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpChassisId.ProtoReflect.Descriptor instead. +func (*LldpChassisId) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{215} } -func (x *StateProtocolLacp) GetChoice() StateProtocolLacp_Choice_Enum { - if x != nil { - return x.Choice +func (x *LldpChassisId) GetChoice() LldpChassisId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return StateProtocolLacp_Choice_unspecified + return LldpChassisId_Choice_unspecified } -func (x *StateProtocolLacp) GetAdmin() *StateProtocolLacpAdmin { +func (x *LldpChassisId) GetMacAddressSubtype() *LldpChassisMacSubType { if x != nil { - return x.Admin + return x.MacAddressSubtype } return nil } -// Sets admin state of LACP configured on LAG members -type StateProtocolLacpAdmin struct { +func (x *LldpChassisId) GetInterfaceNameSubtype() string { + if x != nil && x.InterfaceNameSubtype != nil { + return *x.InterfaceNameSubtype + } + return "" +} + +func (x *LldpChassisId) GetLocalSubtype() string { + if x != nil && x.LocalSubtype != nil { + return *x.LocalSubtype + } + return "" +} + +// The Port ID is a mandatory TLV which identifies the port component of the endpoint +// identifier associated with the transmitting LLDP agent.This field identifies the +// format and source of the port identifier string. It is based on the enumerator defined +// by the PtopoPortIdType object from RFC2922. +type LldpPortId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAG members (ports) for which the state has to be applied. An empty - // or null list will control all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` - // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected - // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member - // ports. - // required = true - State StateProtocolLacpAdmin_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpAdmin_State_Enum" json:"state,omitempty"` + // Port ID subtype to be used in Port ID TLV. + // default = Choice.Enum.interface_name_subtype + Choice *LldpPortId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortId_Choice_Enum,oneof" json:"choice,omitempty"` + // The MAC Address configured in the Port ID TLV. + MacAddressSubtype *string `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` + // Description missing in models + InterfaceNameSubtype *LldpPortInterfaceNameSubType `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` + // The Locally assigned name configured in the Port ID TLV. + LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` } -func (x *StateProtocolLacpAdmin) Reset() { - *x = StateProtocolLacpAdmin{} +func (x *LldpPortId) Reset() { + *x = LldpPortId{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36423,13 +36825,13 @@ func (x *StateProtocolLacpAdmin) Reset() { } } -func (x *StateProtocolLacpAdmin) String() string { +func (x *LldpPortId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpAdmin) ProtoMessage() {} +func (*LldpPortId) ProtoMessage() {} -func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { +func (x *LldpPortId) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36441,40 +36843,57 @@ func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacpAdmin.ProtoReflect.Descriptor instead. -func (*StateProtocolLacpAdmin) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpPortId.ProtoReflect.Descriptor instead. +func (*LldpPortId) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{216} } -func (x *StateProtocolLacpAdmin) GetLagMemberNames() []string { +func (x *LldpPortId) GetChoice() LldpPortId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return LldpPortId_Choice_unspecified +} + +func (x *LldpPortId) GetMacAddressSubtype() string { + if x != nil && x.MacAddressSubtype != nil { + return *x.MacAddressSubtype + } + return "" +} + +func (x *LldpPortId) GetInterfaceNameSubtype() *LldpPortInterfaceNameSubType { if x != nil { - return x.LagMemberNames + return x.InterfaceNameSubtype } return nil } -func (x *StateProtocolLacpAdmin) GetState() StateProtocolLacpAdmin_State_Enum { - if x != nil { - return x.State +func (x *LldpPortId) GetLocalSubtype() string { + if x != nil && x.LocalSubtype != nil { + return *x.LocalSubtype } - return StateProtocolLacpAdmin_State_unspecified + return "" } -// Request for triggering action against configured resources. -type ControlAction struct { +// The MAC address configured in the Chassis ID TLV. +type LldpChassisMacSubType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice ControlAction_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlAction_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Protocol *ActionProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpChassisMacSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisMacSubType_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ControlAction) Reset() { - *x = ControlAction{} +func (x *LldpChassisMacSubType) Reset() { + *x = LldpChassisMacSubType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36482,13 +36901,13 @@ func (x *ControlAction) Reset() { } } -func (x *ControlAction) String() string { +func (x *LldpChassisMacSubType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlAction) ProtoMessage() {} +func (*LldpChassisMacSubType) ProtoMessage() {} -func (x *ControlAction) ProtoReflect() protoreflect.Message { +func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36500,39 +36919,50 @@ func (x *ControlAction) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlAction.ProtoReflect.Descriptor instead. -func (*ControlAction) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpChassisMacSubType.ProtoReflect.Descriptor instead. +func (*LldpChassisMacSubType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{217} } -func (x *ControlAction) GetChoice() ControlAction_Choice_Enum { - if x != nil { - return x.Choice +func (x *LldpChassisMacSubType) GetChoice() LldpChassisMacSubType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return ControlAction_Choice_unspecified + return LldpChassisMacSubType_Choice_unspecified } -func (x *ControlAction) GetProtocol() *ActionProtocol { - if x != nil { - return x.Protocol +func (x *LldpChassisMacSubType) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return "" } -// Response for action triggered against configured resources along with warnings. -type ControlActionResponse struct { +func (x *LldpChassisMacSubType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// The interface name configured in the Port ID TLV. +type LldpPortInterfaceNameSubType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of warnings generated while triggering specified action - Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` - // Description missing in models - Response *ActionResponse `protobuf:"bytes,2,opt,name=response,proto3,oneof" json:"response,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpPortInterfaceNameSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortInterfaceNameSubType_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ControlActionResponse) Reset() { - *x = ControlActionResponse{} +func (x *LldpPortInterfaceNameSubType) Reset() { + *x = LldpPortInterfaceNameSubType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36540,13 +36970,13 @@ func (x *ControlActionResponse) Reset() { } } -func (x *ControlActionResponse) String() string { +func (x *LldpPortInterfaceNameSubType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlActionResponse) ProtoMessage() {} +func (*LldpPortInterfaceNameSubType) ProtoMessage() {} -func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { +func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36558,40 +36988,50 @@ func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlActionResponse.ProtoReflect.Descriptor instead. -func (*ControlActionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpPortInterfaceNameSubType.ProtoReflect.Descriptor instead. +func (*LldpPortInterfaceNameSubType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{218} } -func (x *ControlActionResponse) GetWarnings() []string { - if x != nil { - return x.Warnings +func (x *LldpPortInterfaceNameSubType) GetChoice() LldpPortInterfaceNameSubType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return LldpPortInterfaceNameSubType_Choice_unspecified } -func (x *ControlActionResponse) GetResponse() *ActionResponse { - if x != nil { - return x.Response +func (x *LldpPortInterfaceNameSubType) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return "" } -// Response for action triggered against configured resources. -type ActionResponse struct { +func (x *LldpPortInterfaceNameSubType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// The system Name configured in the System Name TLV. +type LldpSystemName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice ActionResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponse_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Protocol *ActionResponseProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpSystemName_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpSystemName_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ActionResponse) Reset() { - *x = ActionResponse{} +func (x *LldpSystemName) Reset() { + *x = LldpSystemName{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36599,13 +37039,13 @@ func (x *ActionResponse) Reset() { } } -func (x *ActionResponse) String() string { +func (x *LldpSystemName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponse) ProtoMessage() {} +func (*LldpSystemName) ProtoMessage() {} -func (x *ActionResponse) ProtoReflect() protoreflect.Message { +func (x *LldpSystemName) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36617,44 +37057,56 @@ func (x *ActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. -func (*ActionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpSystemName.ProtoReflect.Descriptor instead. +func (*LldpSystemName) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{219} } -func (x *ActionResponse) GetChoice() ActionResponse_Choice_Enum { - if x != nil { - return x.Choice +func (x *LldpSystemName) GetChoice() LldpSystemName_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return ActionResponse_Choice_unspecified + return LldpSystemName_Choice_unspecified } -func (x *ActionResponse) GetProtocol() *ActionResponseProtocol { - if x != nil { - return x.Protocol +func (x *LldpSystemName) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return "" } -// Actions associated with protocols on configured resources. -type ActionProtocol struct { +func (x *LldpSystemName) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// Error response generated while serving API request. +type Error struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // Numeric status code based on the underlying transport being used. + // The API server MUST set this code explicitly based on following references: + // - HTTP 4xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.5 + // - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6 + // - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // required = true - Choice ActionProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocol_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ipv4 *ActionProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *ActionProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` - // Description missing in models - Bgp *ActionProtocolBgp `protobuf:"bytes,4,opt,name=bgp,proto3,oneof" json:"bgp,omitempty"` + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + // Classification of error originating from within API server that may not be mapped + // to the value in `code`. + // Absence of this field may indicate that the error did not originate from within API + // server. + Kind *Error_Kind_Enum `protobuf:"varint,2,opt,name=kind,proto3,enum=otg.Error_Kind_Enum,oneof" json:"kind,omitempty"` + // List of error messages generated while executing the request. + Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` } -func (x *ActionProtocol) Reset() { - *x = ActionProtocol{} +func (x *Error) Reset() { + *x = Error{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36662,13 +37114,13 @@ func (x *ActionProtocol) Reset() { } } -func (x *ActionProtocol) String() string { +func (x *Error) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocol) ProtoMessage() {} +func (*Error) ProtoMessage() {} -func (x *ActionProtocol) ProtoReflect() protoreflect.Message { +func (x *Error) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[220] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36680,56 +37132,45 @@ func (x *ActionProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocol.ProtoReflect.Descriptor instead. -func (*ActionProtocol) Descriptor() ([]byte, []int) { +// Deprecated: Use Error.ProtoReflect.Descriptor instead. +func (*Error) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{220} } -func (x *ActionProtocol) GetChoice() ActionProtocol_Choice_Enum { - if x != nil { - return x.Choice - } - return ActionProtocol_Choice_unspecified -} - -func (x *ActionProtocol) GetIpv4() *ActionProtocolIpv4 { +func (x *Error) GetCode() int32 { if x != nil { - return x.Ipv4 + return x.Code } - return nil + return 0 } -func (x *ActionProtocol) GetIpv6() *ActionProtocolIpv6 { - if x != nil { - return x.Ipv6 +func (x *Error) GetKind() Error_Kind_Enum { + if x != nil && x.Kind != nil { + return *x.Kind } - return nil + return Error_Kind_unspecified } -func (x *ActionProtocol) GetBgp() *ActionProtocolBgp { +func (x *Error) GetErrors() []string { if x != nil { - return x.Bgp + return x.Errors } return nil } -// Response for actions associated with protocols on configured resources. -type ActionResponseProtocol struct { +// A list of warnings that have occurred while executing the request. +type Warning struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice ActionResponseProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocol_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ipv4 *ActionResponseProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *ActionResponseProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + // A list of any system specific warnings that have occurred while + // executing the request. + Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` } -func (x *ActionResponseProtocol) Reset() { - *x = ActionResponseProtocol{} +func (x *Warning) Reset() { + *x = Warning{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36737,13 +37178,13 @@ func (x *ActionResponseProtocol) Reset() { } } -func (x *ActionResponseProtocol) String() string { +func (x *Warning) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocol) ProtoMessage() {} +func (*Warning) ProtoMessage() {} -func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { +func (x *Warning) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[221] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36755,47 +37196,32 @@ func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocol.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocol) Descriptor() ([]byte, []int) { +// Deprecated: Use Warning.ProtoReflect.Descriptor instead. +func (*Warning) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{221} } -func (x *ActionResponseProtocol) GetChoice() ActionResponseProtocol_Choice_Enum { - if x != nil { - return x.Choice - } - return ActionResponseProtocol_Choice_unspecified -} - -func (x *ActionResponseProtocol) GetIpv4() *ActionResponseProtocolIpv4 { - if x != nil { - return x.Ipv4 - } - return nil -} - -func (x *ActionResponseProtocol) GetIpv6() *ActionResponseProtocolIpv6 { +func (x *Warning) GetWarnings() []string { if x != nil { - return x.Ipv6 + return x.Warnings } return nil } -// Actions associated with IPv4 on configured resources. -type ActionProtocolIpv4 struct { +// Request for updating specific attributes of resources in traffic generator +type ConfigUpdate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice ActionProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv4_Choice_Enum" json:"choice,omitempty"` + Choice *ConfigUpdate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ConfigUpdate_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ping *ActionProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + Flows *FlowsUpdate `protobuf:"bytes,2,opt,name=flows,proto3,oneof" json:"flows,omitempty"` } -func (x *ActionProtocolIpv4) Reset() { - *x = ActionProtocolIpv4{} +func (x *ConfigUpdate) Reset() { + *x = ConfigUpdate{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36803,13 +37229,13 @@ func (x *ActionProtocolIpv4) Reset() { } } -func (x *ActionProtocolIpv4) String() string { +func (x *ConfigUpdate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4) ProtoMessage() {} +func (*ConfigUpdate) ProtoMessage() {} -func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { +func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[222] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36821,40 +37247,40 @@ func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4) Descriptor() ([]byte, []int) { +// Deprecated: Use ConfigUpdate.ProtoReflect.Descriptor instead. +func (*ConfigUpdate) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{222} } -func (x *ActionProtocolIpv4) GetChoice() ActionProtocolIpv4_Choice_Enum { - if x != nil { - return x.Choice +func (x *ConfigUpdate) GetChoice() ConfigUpdate_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return ActionProtocolIpv4_Choice_unspecified + return ConfigUpdate_Choice_unspecified } -func (x *ActionProtocolIpv4) GetPing() *ActionProtocolIpv4Ping { +func (x *ConfigUpdate) GetFlows() *FlowsUpdate { if x != nil { - return x.Ping + return x.Flows } return nil } -// Response for actions associated with IPv4 on configured resources. -type ActionResponseProtocolIpv4 struct { +// A container of flows with associated properties to be updated without affecting the +// flows current transmit state. +type FlowsUpdate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice ActionResponseProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv4_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ping *ActionResponseProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + // Flow properties to be updated without affecting the transmit state. + PropertyNames []FlowsUpdate_PropertyNames_Enum `protobuf:"varint,1,rep,packed,name=property_names,json=propertyNames,proto3,enum=otg.FlowsUpdate_PropertyNames_Enum" json:"property_names,omitempty"` + // The list of configured flows for which given property will be updated. + Flows []*Flow `protobuf:"bytes,2,rep,name=flows,proto3" json:"flows,omitempty"` } -func (x *ActionResponseProtocolIpv4) Reset() { - *x = ActionResponseProtocolIpv4{} +func (x *FlowsUpdate) Reset() { + *x = FlowsUpdate{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36862,13 +37288,13 @@ func (x *ActionResponseProtocolIpv4) Reset() { } } -func (x *ActionResponseProtocolIpv4) String() string { +func (x *FlowsUpdate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4) ProtoMessage() {} +func (*FlowsUpdate) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { +func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[223] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36880,37 +37306,44 @@ func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowsUpdate.ProtoReflect.Descriptor instead. +func (*FlowsUpdate) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{223} } -func (x *ActionResponseProtocolIpv4) GetChoice() ActionResponseProtocolIpv4_Choice_Enum { +func (x *FlowsUpdate) GetPropertyNames() []FlowsUpdate_PropertyNames_Enum { if x != nil { - return x.Choice + return x.PropertyNames } - return ActionResponseProtocolIpv4_Choice_unspecified + return nil } -func (x *ActionResponseProtocolIpv4) GetPing() *ActionResponseProtocolIpv4Ping { +func (x *FlowsUpdate) GetFlows() []*Flow { if x != nil { - return x.Ping + return x.Flows } return nil } -// Request for initiating ping between multiple source and destination pairs. -type ActionProtocolIpv4Ping struct { +// Request for setting operational state of configured resources. +type ControlState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv4 ping requests. - Requests []*ActionProtocolIpv4PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` + // Description missing in models + // required = true + Choice ControlState_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlState_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Port *StatePort `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + // Description missing in models + Protocol *StateProtocol `protobuf:"bytes,3,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` + // Description missing in models + Traffic *StateTraffic `protobuf:"bytes,4,opt,name=traffic,proto3,oneof" json:"traffic,omitempty"` } -func (x *ActionProtocolIpv4Ping) Reset() { - *x = ActionProtocolIpv4Ping{} +func (x *ControlState) Reset() { + *x = ControlState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36918,13 +37351,13 @@ func (x *ActionProtocolIpv4Ping) Reset() { } } -func (x *ActionProtocolIpv4Ping) String() string { +func (x *ControlState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4Ping) ProtoMessage() {} +func (*ControlState) ProtoMessage() {} -func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { +func (x *ControlState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[224] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36936,44 +37369,56 @@ func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4Ping.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4Ping) Descriptor() ([]byte, []int) { +// Deprecated: Use ControlState.ProtoReflect.Descriptor instead. +func (*ControlState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{224} } -func (x *ActionProtocolIpv4Ping) GetRequests() []*ActionProtocolIpv4PingRequest { +func (x *ControlState) GetChoice() ControlState_Choice_Enum { if x != nil { - return x.Requests + return x.Choice + } + return ControlState_Choice_unspecified +} + +func (x *ControlState) GetPort() *StatePort { + if x != nil { + return x.Port } return nil } -// Under Review: Most ping request parameters are still TBD. -// -// Under Review: Most ping request parameters are still TBD. -// -// Request for initiating ping between a single source and destination pair. -// For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response -// to either succeed or time out. The API wait timeout for each request shall be 300ms. -type ActionProtocolIpv4PingRequest struct { +func (x *ControlState) GetProtocol() *StateProtocol { + if x != nil { + return x.Protocol + } + return nil +} + +func (x *ControlState) GetTraffic() *StateTraffic { + if x != nil { + return x.Traffic + } + return nil +} + +// States associated with configured ports. +type StatePort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv4 interface to be used. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` - // Destination IPv4 address to ping. - DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + // Description missing in models + // required = true + Choice StatePort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatePort_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Link *StatePortLink `protobuf:"bytes,2,opt,name=link,proto3,oneof" json:"link,omitempty"` + // Description missing in models + Capture *StatePortCapture `protobuf:"bytes,3,opt,name=capture,proto3,oneof" json:"capture,omitempty"` } -func (x *ActionProtocolIpv4PingRequest) Reset() { - *x = ActionProtocolIpv4PingRequest{} +func (x *StatePort) Reset() { + *x = StatePort{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36981,13 +37426,13 @@ func (x *ActionProtocolIpv4PingRequest) Reset() { } } -func (x *ActionProtocolIpv4PingRequest) String() string { +func (x *StatePort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4PingRequest) ProtoMessage() {} +func (*StatePort) ProtoMessage() {} -func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { +func (x *StatePort) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36999,37 +37444,47 @@ func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4PingRequest.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4PingRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use StatePort.ProtoReflect.Descriptor instead. +func (*StatePort) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{225} } -func (x *ActionProtocolIpv4PingRequest) GetSrcName() string { - if x != nil && x.SrcName != nil { - return *x.SrcName +func (x *StatePort) GetChoice() StatePort_Choice_Enum { + if x != nil { + return x.Choice } - return "" + return StatePort_Choice_unspecified } -func (x *ActionProtocolIpv4PingRequest) GetDstIp() string { - if x != nil && x.DstIp != nil { - return *x.DstIp +func (x *StatePort) GetLink() *StatePortLink { + if x != nil { + return x.Link } - return "" + return nil } -// Response for ping initiated between multiple source and destination pairs. -type ActionResponseProtocolIpv4Ping struct { +func (x *StatePort) GetCapture() *StatePortCapture { + if x != nil { + return x.Capture + } + return nil +} + +// States associated with configured flows +type StateTraffic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of responses for IPv4 ping responses. - Responses []*ActionResponseProtocolIpv4PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` + // Description missing in models + // required = true + Choice StateTraffic_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateTraffic_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + FlowTransmit *StateTrafficFlowTransmit `protobuf:"bytes,2,opt,name=flow_transmit,json=flowTransmit,proto3,oneof" json:"flow_transmit,omitempty"` } -func (x *ActionResponseProtocolIpv4Ping) Reset() { - *x = ActionResponseProtocolIpv4Ping{} +func (x *StateTraffic) Reset() { + *x = StateTraffic{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37037,13 +37492,13 @@ func (x *ActionResponseProtocolIpv4Ping) Reset() { } } -func (x *ActionResponseProtocolIpv4Ping) String() string { +func (x *StateTraffic) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4Ping) ProtoMessage() {} +func (*StateTraffic) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { +func (x *StateTraffic) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37055,44 +37510,44 @@ func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4Ping.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4Ping) Descriptor() ([]byte, []int) { +// Deprecated: Use StateTraffic.ProtoReflect.Descriptor instead. +func (*StateTraffic) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{226} } -func (x *ActionResponseProtocolIpv4Ping) GetResponses() []*ActionResponseProtocolIpv4PingResponse { +func (x *StateTraffic) GetChoice() StateTraffic_Choice_Enum { if x != nil { - return x.Responses + return x.Choice + } + return StateTraffic_Choice_unspecified +} + +func (x *StateTraffic) GetFlowTransmit() *StateTrafficFlowTransmit { + if x != nil { + return x.FlowTransmit } return nil } -// Response for ping initiated between a single source and destination pair. -type ActionResponseProtocolIpv4PingResponse struct { +// States associated with protocols on configured resources. +type StateProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv4 interface used for ping. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` - // Destination IPv4 address used for ping. - // required = true - DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - // Result of the ping request. + // Description missing in models // required = true - Result ActionResponseProtocolIpv4PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv4PingResponse_Result_Enum" json:"result,omitempty"` + Choice StateProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocol_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + All *StateProtocolAll `protobuf:"bytes,2,opt,name=all,proto3,oneof" json:"all,omitempty"` + // Description missing in models + Route *StateProtocolRoute `protobuf:"bytes,3,opt,name=route,proto3,oneof" json:"route,omitempty"` + // Description missing in models + Lacp *StateProtocolLacp `protobuf:"bytes,4,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` } -func (x *ActionResponseProtocolIpv4PingResponse) Reset() { - *x = ActionResponseProtocolIpv4PingResponse{} +func (x *StateProtocol) Reset() { + *x = StateProtocol{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37100,13 +37555,13 @@ func (x *ActionResponseProtocolIpv4PingResponse) Reset() { } } -func (x *ActionResponseProtocolIpv4PingResponse) String() string { +func (x *StateProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4PingResponse) ProtoMessage() {} +func (*StateProtocol) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Message { +func (x *StateProtocol) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37118,47 +37573,60 @@ func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4PingResponse.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4PingResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocol.ProtoReflect.Descriptor instead. +func (*StateProtocol) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{227} } -func (x *ActionResponseProtocolIpv4PingResponse) GetSrcName() string { +func (x *StateProtocol) GetChoice() StateProtocol_Choice_Enum { if x != nil { - return x.SrcName + return x.Choice } - return "" + return StateProtocol_Choice_unspecified } -func (x *ActionResponseProtocolIpv4PingResponse) GetDstIp() string { +func (x *StateProtocol) GetAll() *StateProtocolAll { if x != nil { - return x.DstIp + return x.All } - return "" + return nil } -func (x *ActionResponseProtocolIpv4PingResponse) GetResult() ActionResponseProtocolIpv4PingResponse_Result_Enum { +func (x *StateProtocol) GetRoute() *StateProtocolRoute { if x != nil { - return x.Result + return x.Route } - return ActionResponseProtocolIpv4PingResponse_Result_unspecified + return nil } -// Actions associated with IPv6 on configured resources. -type ActionProtocolIpv6 struct { +func (x *StateProtocol) GetLacp() *StateProtocolLacp { + if x != nil { + return x.Lacp + } + return nil +} + +// Sets the link of configured ports. +type StatePortLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // The names of target ports. An empty or null list will target all ports. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // The link state. // required = true - Choice ActionProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv6_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ping *ActionProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + State StatePortLink_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortLink_State_Enum" json:"state,omitempty"` } -func (x *ActionProtocolIpv6) Reset() { - *x = ActionProtocolIpv6{} +func (x *StatePortLink) Reset() { + *x = StatePortLink{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37166,13 +37634,13 @@ func (x *ActionProtocolIpv6) Reset() { } } -func (x *ActionProtocolIpv6) String() string { +func (x *StatePortLink) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6) ProtoMessage() {} +func (*StatePortLink) ProtoMessage() {} -func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { +func (x *StatePortLink) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37184,40 +37652,49 @@ func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6) Descriptor() ([]byte, []int) { +// Deprecated: Use StatePortLink.ProtoReflect.Descriptor instead. +func (*StatePortLink) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{228} } -func (x *ActionProtocolIpv6) GetChoice() ActionProtocolIpv6_Choice_Enum { +func (x *StatePortLink) GetPortNames() []string { if x != nil { - return x.Choice + return x.PortNames } - return ActionProtocolIpv6_Choice_unspecified + return nil } -func (x *ActionProtocolIpv6) GetPing() *ActionProtocolIpv6Ping { +func (x *StatePortLink) GetState() StatePortLink_State_Enum { if x != nil { - return x.Ping + return x.State } - return nil + return StatePortLink_State_unspecified } -// Response for actions associated with IPv6 on configured resources. -type ActionResponseProtocolIpv6 struct { +// Sets the capture state of configured ports +type StatePortCapture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // The names of ports to which the capture state will be applied to. If the list of + // port_names is empty or null the state will be applied to all configured ports. + // If the list is not empty any port that is not included in the list of port_names + // MUST be ignored and not included in the state change. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // The capture state. // required = true - Choice ActionResponseProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv6_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Ping *ActionResponseProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` + State StatePortCapture_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortCapture_State_Enum" json:"state,omitempty"` } -func (x *ActionResponseProtocolIpv6) Reset() { - *x = ActionResponseProtocolIpv6{} +func (x *StatePortCapture) Reset() { + *x = StatePortCapture{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37225,13 +37702,13 @@ func (x *ActionResponseProtocolIpv6) Reset() { } } -func (x *ActionResponseProtocolIpv6) String() string { +func (x *StatePortCapture) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6) ProtoMessage() {} +func (*StatePortCapture) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { +func (x *StatePortCapture) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37243,37 +37720,60 @@ func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6) Descriptor() ([]byte, []int) { +// Deprecated: Use StatePortCapture.ProtoReflect.Descriptor instead. +func (*StatePortCapture) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{229} } -func (x *ActionResponseProtocolIpv6) GetChoice() ActionResponseProtocolIpv6_Choice_Enum { +func (x *StatePortCapture) GetPortNames() []string { if x != nil { - return x.Choice + return x.PortNames } - return ActionResponseProtocolIpv6_Choice_unspecified + return nil } -func (x *ActionResponseProtocolIpv6) GetPing() *ActionResponseProtocolIpv6Ping { +func (x *StatePortCapture) GetState() StatePortCapture_State_Enum { if x != nil { - return x.Ping + return x.State } - return nil + return StatePortCapture_State_unspecified } -// Request for initiating ping between multiple source and destination pairs. -type ActionProtocolIpv6Ping struct { +// Provides state control of flow transmission. +type StateTrafficFlowTransmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv6 ping requests. - Requests []*ActionProtocolIpv6PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` + // The names of flows to which the transmit state will be applied to. If the list of + // flow_names is empty or null the state will be applied to all configured flows. + // If the list is not empty any flow that is not included in the list of flow_names + // MUST be ignored and not included in the state change. + // + // x-constraint: + // - /components/schemas/Flow/properties/name + // + // x-constraint: + // - /components/schemas/Flow/properties/name + FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` + // The transmit state. + // If the value of the state property is 'start' then all flows defined by the 'flow_names' + // property will be started and the metric counters MUST be cleared prior to starting + // the flow(s). + // If the value of the state property is 'stop' then all flows defined by the 'flow_names' + // property will be stopped and the metric counters MUST NOT be cleared. + // If the value of the state property is 'pause' then all flows defined by the 'flow_names' + // property will be paused and the metric counters MUST NOT be cleared. + // If the value of the state property is 'resume' then any paused flows defined by the + // 'flow_names' property will start transmit at the point at which they were paused. + // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) + // MUST NOT have their metric counters cleared. + // required = true + State StateTrafficFlowTransmit_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateTrafficFlowTransmit_State_Enum" json:"state,omitempty"` } -func (x *ActionProtocolIpv6Ping) Reset() { - *x = ActionProtocolIpv6Ping{} +func (x *StateTrafficFlowTransmit) Reset() { + *x = StateTrafficFlowTransmit{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37281,13 +37781,13 @@ func (x *ActionProtocolIpv6Ping) Reset() { } } -func (x *ActionProtocolIpv6Ping) String() string { +func (x *StateTrafficFlowTransmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6Ping) ProtoMessage() {} +func (*StateTrafficFlowTransmit) ProtoMessage() {} -func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { +func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37299,44 +37799,41 @@ func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6Ping.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6Ping) Descriptor() ([]byte, []int) { +// Deprecated: Use StateTrafficFlowTransmit.ProtoReflect.Descriptor instead. +func (*StateTrafficFlowTransmit) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{230} } -func (x *ActionProtocolIpv6Ping) GetRequests() []*ActionProtocolIpv6PingRequest { +func (x *StateTrafficFlowTransmit) GetFlowNames() []string { if x != nil { - return x.Requests + return x.FlowNames } return nil } -// Under Review: Most ping request parameters are still TBD. -// -// Under Review: Most ping request parameters are still TBD. -// -// Request for initiating ping between a single source and destination pair. -// For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response -// to either succeed or time out. The API wait timeout for each request shall be 300ms. -type ActionProtocolIpv6PingRequest struct { +func (x *StateTrafficFlowTransmit) GetState() StateTrafficFlowTransmit_State_Enum { + if x != nil { + return x.State + } + return StateTrafficFlowTransmit_State_unspecified +} + +// Sets all configured protocols to `start` or `stop` state. +// Setting protocol state to `start` shall be a no-op if preceding `set_config` API +// call was made with `config.options.protocol_options.auto_start_all` set to `true` +// or if all the configured protocols are already started. +type StateProtocolAll struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv6 interface to be used. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` - // Destination IPv6 address to ping. - DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + // Protocol states + // required = true + State StateProtocolAll_State_Enum `protobuf:"varint,1,opt,name=state,proto3,enum=otg.StateProtocolAll_State_Enum" json:"state,omitempty"` } -func (x *ActionProtocolIpv6PingRequest) Reset() { - *x = ActionProtocolIpv6PingRequest{} +func (x *StateProtocolAll) Reset() { + *x = StateProtocolAll{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37344,13 +37841,13 @@ func (x *ActionProtocolIpv6PingRequest) Reset() { } } -func (x *ActionProtocolIpv6PingRequest) String() string { +func (x *StateProtocolAll) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6PingRequest) ProtoMessage() {} +func (*StateProtocolAll) ProtoMessage() {} -func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { +func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37362,37 +37859,46 @@ func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6PingRequest.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6PingRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolAll.ProtoReflect.Descriptor instead. +func (*StateProtocolAll) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{231} } -func (x *ActionProtocolIpv6PingRequest) GetSrcName() string { - if x != nil && x.SrcName != nil { - return *x.SrcName - } - return "" -} - -func (x *ActionProtocolIpv6PingRequest) GetDstIp() string { - if x != nil && x.DstIp != nil { - return *x.DstIp +func (x *StateProtocolAll) GetState() StateProtocolAll_State_Enum { + if x != nil { + return x.State } - return "" + return StateProtocolAll_State_unspecified } -// Response for ping initiated between multiple source and destination pairs. -type ActionResponseProtocolIpv6Ping struct { +// Sets the state of configured routes +type StateProtocolRoute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of responses for IPv6 ping responses. - Responses []*ActionResponseProtocolIpv6PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` + // The names of device route objects to control. If no names are specified then all + // route objects that match the x-constraint will be affected. + // + // x-constraint: + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` + // Route states + // required = true + State StateProtocolRoute_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolRoute_State_Enum" json:"state,omitempty"` } -func (x *ActionResponseProtocolIpv6Ping) Reset() { - *x = ActionResponseProtocolIpv6Ping{} +func (x *StateProtocolRoute) Reset() { + *x = StateProtocolRoute{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37400,13 +37906,13 @@ func (x *ActionResponseProtocolIpv6Ping) Reset() { } } -func (x *ActionResponseProtocolIpv6Ping) String() string { +func (x *StateProtocolRoute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6Ping) ProtoMessage() {} +func (*StateProtocolRoute) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { +func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37418,44 +37924,40 @@ func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6Ping.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6Ping) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolRoute.ProtoReflect.Descriptor instead. +func (*StateProtocolRoute) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{232} } -func (x *ActionResponseProtocolIpv6Ping) GetResponses() []*ActionResponseProtocolIpv6PingResponse { +func (x *StateProtocolRoute) GetNames() []string { if x != nil { - return x.Responses + return x.Names } return nil } -// Response for ping initiated between a single source and destination pair. -type ActionResponseProtocolIpv6PingResponse struct { +func (x *StateProtocolRoute) GetState() StateProtocolRoute_State_Enum { + if x != nil { + return x.State + } + return StateProtocolRoute_State_unspecified +} + +// Sets state of configured LACP +type StateProtocolLacp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv6 interface used for ping. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - // required = true - SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` - // Destination IPv6 address used for ping. - // required = true - DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` - // Result of the ping request. + // Description missing in models // required = true - Result ActionResponseProtocolIpv6PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv6PingResponse_Result_Enum" json:"result,omitempty"` + Choice StateProtocolLacp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolLacp_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Admin *StateProtocolLacpAdmin `protobuf:"bytes,2,opt,name=admin,proto3,oneof" json:"admin,omitempty"` } -func (x *ActionResponseProtocolIpv6PingResponse) Reset() { - *x = ActionResponseProtocolIpv6PingResponse{} +func (x *StateProtocolLacp) Reset() { + *x = StateProtocolLacp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37463,13 +37965,13 @@ func (x *ActionResponseProtocolIpv6PingResponse) Reset() { } } -func (x *ActionResponseProtocolIpv6PingResponse) String() string { +func (x *StateProtocolLacp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6PingResponse) ProtoMessage() {} +func (*StateProtocolLacp) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Message { +func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[233] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37481,49 +37983,49 @@ func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6PingResponse.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6PingResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolLacp.ProtoReflect.Descriptor instead. +func (*StateProtocolLacp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{233} } -func (x *ActionResponseProtocolIpv6PingResponse) GetSrcName() string { - if x != nil { - return x.SrcName - } - return "" -} - -func (x *ActionResponseProtocolIpv6PingResponse) GetDstIp() string { +func (x *StateProtocolLacp) GetChoice() StateProtocolLacp_Choice_Enum { if x != nil { - return x.DstIp + return x.Choice } - return "" + return StateProtocolLacp_Choice_unspecified } -func (x *ActionResponseProtocolIpv6PingResponse) GetResult() ActionResponseProtocolIpv6PingResponse_Result_Enum { +func (x *StateProtocolLacp) GetAdmin() *StateProtocolLacpAdmin { if x != nil { - return x.Result + return x.Admin } - return ActionResponseProtocolIpv6PingResponse_Result_unspecified + return nil } -// Actions associated with BGP on configured resources. -type ActionProtocolBgp struct { +// Sets admin state of LACP configured on LAG members +type StateProtocolLacpAdmin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // The names of LAG members (ports) for which the state has to be applied. An empty + // or null list will control all LAG members. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` + // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected + // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member + // ports. // required = true - Choice ActionProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolBgp_Choice_Enum" json:"choice,omitempty"` - // Description missing in models - Notification *ActionProtocolBgpNotification `protobuf:"bytes,2,opt,name=notification,proto3,oneof" json:"notification,omitempty"` - // Description missing in models - InitiateGracefulRestart *ActionProtocolBgpInitiateGracefulRestart `protobuf:"bytes,3,opt,name=initiate_graceful_restart,json=initiateGracefulRestart,proto3,oneof" json:"initiate_graceful_restart,omitempty"` + State StateProtocolLacpAdmin_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpAdmin_State_Enum" json:"state,omitempty"` } -func (x *ActionProtocolBgp) Reset() { - *x = ActionProtocolBgp{} +func (x *StateProtocolLacpAdmin) Reset() { + *x = StateProtocolLacpAdmin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37531,13 +38033,13 @@ func (x *ActionProtocolBgp) Reset() { } } -func (x *ActionProtocolBgp) String() string { +func (x *StateProtocolLacpAdmin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgp) ProtoMessage() {} +func (*StateProtocolLacpAdmin) ProtoMessage() {} -func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { +func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37549,79 +38051,40 @@ func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgp.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgp) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolLacpAdmin.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpAdmin) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{234} } -func (x *ActionProtocolBgp) GetChoice() ActionProtocolBgp_Choice_Enum { - if x != nil { - return x.Choice - } - return ActionProtocolBgp_Choice_unspecified -} - -func (x *ActionProtocolBgp) GetNotification() *ActionProtocolBgpNotification { +func (x *StateProtocolLacpAdmin) GetLagMemberNames() []string { if x != nil { - return x.Notification + return x.LagMemberNames } return nil } -func (x *ActionProtocolBgp) GetInitiateGracefulRestart() *ActionProtocolBgpInitiateGracefulRestart { +func (x *StateProtocolLacpAdmin) GetState() StateProtocolLacpAdmin_State_Enum { if x != nil { - return x.InitiateGracefulRestart + return x.State } - return nil + return StateProtocolLacpAdmin_State_unspecified } -// A NOTIFICATION message is sent when an error is detected with the BGP session, such -// as hold timer expiring, misconfigured AS number or a BGP session reset is requested. -// This causes the BGP connection to close. Send explicit NOTIFICATIONs for list of -// specified BGP peers. If a user wants to send custom Error Code and Error Subcode -// the custom object should be configured. A user can send IANA defined BGP NOTIFICATIONs -// according to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. -type ActionProtocolBgpNotification struct { +// Request for triggering action against configured resources. +type ControlAction struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION - // will be sent to all configured BGP peers. - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` - // Each BGP NOTIFICATION message includes an Error Code field indicating what type of - // problem occurred. For certain Error Codes, an Error Subcode field provides additional - // details about the specific nature of the problem. The choice value will provide - // the Error Code used in NOTIFICATION message. The Subcode can be set for each of - // the corresponding errors except for Hold Timer Expired error and BGP Finite State - // Machine error. In both of these cases Subcode 0 will be sent. If a user wants to - // use non zero Sub Code then custom choice can be used. - // default = Choice.Enum.cease - Choice *ActionProtocolBgpNotification_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.ActionProtocolBgpNotification_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Cease *DeviceBgpCeaseError `protobuf:"bytes,3,opt,name=cease,proto3,oneof" json:"cease,omitempty"` - // Description missing in models - MessageHeaderError *DeviceBgpMessageHeaderError `protobuf:"bytes,4,opt,name=message_header_error,json=messageHeaderError,proto3,oneof" json:"message_header_error,omitempty"` - // Description missing in models - OpenMessageError *DeviceBgpOpenMessageError `protobuf:"bytes,5,opt,name=open_message_error,json=openMessageError,proto3,oneof" json:"open_message_error,omitempty"` // Description missing in models - UpdateMessageError *DeviceBgpUpdateMessageError `protobuf:"bytes,6,opt,name=update_message_error,json=updateMessageError,proto3,oneof" json:"update_message_error,omitempty"` - // Description missing in models - HoldTimerExpired *DeviceBgpHoldTimerExpired `protobuf:"bytes,7,opt,name=hold_timer_expired,json=holdTimerExpired,proto3,oneof" json:"hold_timer_expired,omitempty"` - // Description missing in models - FiniteStateMachineError *DeviceBgpFiniteStateMachineError `protobuf:"bytes,8,opt,name=finite_state_machine_error,json=finiteStateMachineError,proto3,oneof" json:"finite_state_machine_error,omitempty"` + // required = true + Choice ControlAction_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlAction_Choice_Enum" json:"choice,omitempty"` // Description missing in models - Custom *DeviceBgpCustomError `protobuf:"bytes,9,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + Protocol *ActionProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` } -func (x *ActionProtocolBgpNotification) Reset() { - *x = ActionProtocolBgpNotification{} +func (x *ControlAction) Reset() { + *x = ControlAction{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37629,13 +38092,13 @@ func (x *ActionProtocolBgpNotification) Reset() { } } -func (x *ActionProtocolBgpNotification) String() string { +func (x *ControlAction) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpNotification) ProtoMessage() {} +func (*ControlAction) ProtoMessage() {} -func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { +func (x *ControlAction) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37647,113 +38110,113 @@ func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpNotification.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpNotification) Descriptor() ([]byte, []int) { +// Deprecated: Use ControlAction.ProtoReflect.Descriptor instead. +func (*ControlAction) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{235} } -func (x *ActionProtocolBgpNotification) GetNames() []string { +func (x *ControlAction) GetChoice() ControlAction_Choice_Enum { if x != nil { - return x.Names - } - return nil -} - -func (x *ActionProtocolBgpNotification) GetChoice() ActionProtocolBgpNotification_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice + return x.Choice } - return ActionProtocolBgpNotification_Choice_unspecified + return ControlAction_Choice_unspecified } -func (x *ActionProtocolBgpNotification) GetCease() *DeviceBgpCeaseError { +func (x *ControlAction) GetProtocol() *ActionProtocol { if x != nil { - return x.Cease + return x.Protocol } return nil } -func (x *ActionProtocolBgpNotification) GetMessageHeaderError() *DeviceBgpMessageHeaderError { - if x != nil { - return x.MessageHeaderError - } - return nil +// Response for action triggered against configured resources along with warnings. +type ControlActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of warnings generated while triggering specified action + Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` + // Description missing in models + Response *ActionResponse `protobuf:"bytes,2,opt,name=response,proto3,oneof" json:"response,omitempty"` } -func (x *ActionProtocolBgpNotification) GetOpenMessageError() *DeviceBgpOpenMessageError { - if x != nil { - return x.OpenMessageError +func (x *ControlActionResponse) Reset() { + *x = ControlActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[236] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ActionProtocolBgpNotification) GetUpdateMessageError() *DeviceBgpUpdateMessageError { - if x != nil { - return x.UpdateMessageError - } - return nil +func (x *ControlActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ActionProtocolBgpNotification) GetHoldTimerExpired() *DeviceBgpHoldTimerExpired { - if x != nil { - return x.HoldTimerExpired +func (*ControlActionResponse) ProtoMessage() {} + +func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[236] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ActionProtocolBgpNotification) GetFiniteStateMachineError() *DeviceBgpFiniteStateMachineError { +// Deprecated: Use ControlActionResponse.ProtoReflect.Descriptor instead. +func (*ControlActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{236} +} + +func (x *ControlActionResponse) GetWarnings() []string { if x != nil { - return x.FiniteStateMachineError + return x.Warnings } return nil } -func (x *ActionProtocolBgpNotification) GetCustom() *DeviceBgpCustomError { +func (x *ControlActionResponse) GetResponse() *ActionResponse { if x != nil { - return x.Custom + return x.Response } return nil } -// Initiates BGP Graceful Restart process for the selected BGP peers. If no name is -// specified then Graceful Restart will be sent to all configured BGP peers. -type ActionProtocolBgpInitiateGracefulRestart struct { +// Response for action triggered against configured resources. +type ActionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of device BGP peers objects to control. - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` - // Duration (in seconds) after which selected BGP peers will initiate - // Graceful restart by sending the Open Message with Restart State bit set in the Graceful - // Restart capability. - // default = 30 - RestartDelay *uint32 `protobuf:"varint,2,opt,name=restart_delay,json=restartDelay,proto3,oneof" json:"restart_delay,omitempty"` + // Description missing in models + // required = true + Choice ActionResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponse_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Protocol *ActionResponseProtocol `protobuf:"bytes,2,opt,name=protocol,proto3,oneof" json:"protocol,omitempty"` } -func (x *ActionProtocolBgpInitiateGracefulRestart) Reset() { - *x = ActionProtocolBgpInitiateGracefulRestart{} +func (x *ActionResponse) Reset() { + *x = ActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[236] + mi := &file_otg_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgpInitiateGracefulRestart) String() string { +func (x *ActionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpInitiateGracefulRestart) ProtoMessage() {} +func (*ActionResponse) ProtoMessage() {} -func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[236] +func (x *ActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37764,71 +38227,59 @@ func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpInitiateGracefulRestart.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpInitiateGracefulRestart) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{236} +// Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. +func (*ActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{237} } -func (x *ActionProtocolBgpInitiateGracefulRestart) GetPeerNames() []string { +func (x *ActionResponse) GetChoice() ActionResponse_Choice_Enum { if x != nil { - return x.PeerNames + return x.Choice } - return nil + return ActionResponse_Choice_unspecified } -func (x *ActionProtocolBgpInitiateGracefulRestart) GetRestartDelay() uint32 { - if x != nil && x.RestartDelay != nil { - return *x.RestartDelay +func (x *ActionResponse) GetProtocol() *ActionResponseProtocol { + if x != nil { + return x.Protocol } - return 0 + return nil } -// Request to traffic generator for metrics of choice. -type MetricsRequest struct { +// Actions associated with protocols on configured resources. +type ActionProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.port - Choice *MetricsRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsRequest_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Port *PortMetricsRequest `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` - // Description missing in models - Flow *FlowMetricsRequest `protobuf:"bytes,3,opt,name=flow,proto3,oneof" json:"flow,omitempty"` - // Description missing in models - Bgpv4 *Bgpv4MetricsRequest `protobuf:"bytes,4,opt,name=bgpv4,proto3,oneof" json:"bgpv4,omitempty"` - // Description missing in models - Bgpv6 *Bgpv6MetricsRequest `protobuf:"bytes,5,opt,name=bgpv6,proto3,oneof" json:"bgpv6,omitempty"` - // Description missing in models - Isis *IsisMetricsRequest `protobuf:"bytes,6,opt,name=isis,proto3,oneof" json:"isis,omitempty"` - // Description missing in models - Lag *LagMetricsRequest `protobuf:"bytes,7,opt,name=lag,proto3,oneof" json:"lag,omitempty"` + // required = true + Choice ActionProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocol_Choice_Enum" json:"choice,omitempty"` // Description missing in models - Lacp *LacpMetricsRequest `protobuf:"bytes,8,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + Ipv4 *ActionProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` // Description missing in models - Lldp *LldpMetricsRequest `protobuf:"bytes,9,opt,name=lldp,proto3,oneof" json:"lldp,omitempty"` + Ipv6 *ActionProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` // Description missing in models - Rsvp *RsvpMetricsRequest `protobuf:"bytes,10,opt,name=rsvp,proto3,oneof" json:"rsvp,omitempty"` + Bgp *ActionProtocolBgp `protobuf:"bytes,4,opt,name=bgp,proto3,oneof" json:"bgp,omitempty"` } -func (x *MetricsRequest) Reset() { - *x = MetricsRequest{} +func (x *ActionProtocol) Reset() { + *x = ActionProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[237] + mi := &file_otg_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsRequest) String() string { +func (x *ActionProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsRequest) ProtoMessage() {} +func (*ActionProtocol) ProtoMessage() {} -func (x *MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[237] +func (x *ActionProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37839,127 +38290,137 @@ func (x *MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsRequest.ProtoReflect.Descriptor instead. -func (*MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237} +// Deprecated: Use ActionProtocol.ProtoReflect.Descriptor instead. +func (*ActionProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{238} } -func (x *MetricsRequest) GetChoice() MetricsRequest_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *ActionProtocol) GetChoice() ActionProtocol_Choice_Enum { + if x != nil { + return x.Choice } - return MetricsRequest_Choice_unspecified + return ActionProtocol_Choice_unspecified } -func (x *MetricsRequest) GetPort() *PortMetricsRequest { +func (x *ActionProtocol) GetIpv4() *ActionProtocolIpv4 { if x != nil { - return x.Port + return x.Ipv4 } return nil } -func (x *MetricsRequest) GetFlow() *FlowMetricsRequest { +func (x *ActionProtocol) GetIpv6() *ActionProtocolIpv6 { if x != nil { - return x.Flow + return x.Ipv6 } return nil } -func (x *MetricsRequest) GetBgpv4() *Bgpv4MetricsRequest { +func (x *ActionProtocol) GetBgp() *ActionProtocolBgp { if x != nil { - return x.Bgpv4 + return x.Bgp } return nil } -func (x *MetricsRequest) GetBgpv6() *Bgpv6MetricsRequest { - if x != nil { - return x.Bgpv6 - } - return nil +// Response for actions associated with protocols on configured resources. +type ActionResponseProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice ActionResponseProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocol_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Ipv4 *ActionResponseProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` + // Description missing in models + Ipv6 *ActionResponseProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` } -func (x *MetricsRequest) GetIsis() *IsisMetricsRequest { - if x != nil { - return x.Isis +func (x *ActionResponseProtocol) Reset() { + *x = ActionResponseProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[239] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *MetricsRequest) GetLag() *LagMetricsRequest { - if x != nil { - return x.Lag +func (x *ActionResponseProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionResponseProtocol) ProtoMessage() {} + +func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[239] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *MetricsRequest) GetLacp() *LacpMetricsRequest { +// Deprecated: Use ActionResponseProtocol.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{239} +} + +func (x *ActionResponseProtocol) GetChoice() ActionResponseProtocol_Choice_Enum { if x != nil { - return x.Lacp + return x.Choice } - return nil + return ActionResponseProtocol_Choice_unspecified } -func (x *MetricsRequest) GetLldp() *LldpMetricsRequest { +func (x *ActionResponseProtocol) GetIpv4() *ActionResponseProtocolIpv4 { if x != nil { - return x.Lldp + return x.Ipv4 } return nil } -func (x *MetricsRequest) GetRsvp() *RsvpMetricsRequest { +func (x *ActionResponseProtocol) GetIpv6() *ActionResponseProtocolIpv6 { if x != nil { - return x.Rsvp + return x.Ipv6 } return nil } -// Response containing chosen traffic generator metrics. -type MetricsResponse struct { +// Actions associated with IPv4 on configured resources. +type ActionProtocolIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.port_metrics - Choice *MetricsResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsResponse_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - PortMetrics []*PortMetric `protobuf:"bytes,2,rep,name=port_metrics,json=portMetrics,proto3" json:"port_metrics,omitempty"` - // Description missing in models - FlowMetrics []*FlowMetric `protobuf:"bytes,3,rep,name=flow_metrics,json=flowMetrics,proto3" json:"flow_metrics,omitempty"` - // Description missing in models - Bgpv4Metrics []*Bgpv4Metric `protobuf:"bytes,4,rep,name=bgpv4_metrics,json=bgpv4Metrics,proto3" json:"bgpv4_metrics,omitempty"` - // Description missing in models - Bgpv6Metrics []*Bgpv6Metric `protobuf:"bytes,5,rep,name=bgpv6_metrics,json=bgpv6Metrics,proto3" json:"bgpv6_metrics,omitempty"` - // Description missing in models - IsisMetrics []*IsisMetric `protobuf:"bytes,6,rep,name=isis_metrics,json=isisMetrics,proto3" json:"isis_metrics,omitempty"` - // Description missing in models - LagMetrics []*LagMetric `protobuf:"bytes,7,rep,name=lag_metrics,json=lagMetrics,proto3" json:"lag_metrics,omitempty"` - // Description missing in models - LacpMetrics []*LacpMetric `protobuf:"bytes,8,rep,name=lacp_metrics,json=lacpMetrics,proto3" json:"lacp_metrics,omitempty"` - // Description missing in models - LldpMetrics []*LldpMetric `protobuf:"bytes,9,rep,name=lldp_metrics,json=lldpMetrics,proto3" json:"lldp_metrics,omitempty"` + // required = true + Choice ActionProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv4_Choice_Enum" json:"choice,omitempty"` // Description missing in models - RsvpMetrics []*RsvpMetric `protobuf:"bytes,10,rep,name=rsvp_metrics,json=rsvpMetrics,proto3" json:"rsvp_metrics,omitempty"` + Ping *ActionProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` } -func (x *MetricsResponse) Reset() { - *x = MetricsResponse{} +func (x *ActionProtocolIpv4) Reset() { + *x = ActionProtocolIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[238] + mi := &file_otg_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsResponse) String() string { +func (x *ActionProtocolIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsResponse) ProtoMessage() {} +func (*ActionProtocolIpv4) ProtoMessage() {} -func (x *MetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[238] +func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37970,118 +38431,111 @@ func (x *MetricsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsResponse.ProtoReflect.Descriptor instead. -func (*MetricsResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238} -} - -func (x *MetricsResponse) GetChoice() MetricsResponse_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return MetricsResponse_Choice_unspecified +// Deprecated: Use ActionProtocolIpv4.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{240} } -func (x *MetricsResponse) GetPortMetrics() []*PortMetric { +func (x *ActionProtocolIpv4) GetChoice() ActionProtocolIpv4_Choice_Enum { if x != nil { - return x.PortMetrics + return x.Choice } - return nil + return ActionProtocolIpv4_Choice_unspecified } -func (x *MetricsResponse) GetFlowMetrics() []*FlowMetric { +func (x *ActionProtocolIpv4) GetPing() *ActionProtocolIpv4Ping { if x != nil { - return x.FlowMetrics + return x.Ping } return nil } -func (x *MetricsResponse) GetBgpv4Metrics() []*Bgpv4Metric { - if x != nil { - return x.Bgpv4Metrics - } - return nil +// Response for actions associated with IPv4 on configured resources. +type ActionResponseProtocolIpv4 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice ActionResponseProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv4_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Ping *ActionResponseProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` } -func (x *MetricsResponse) GetBgpv6Metrics() []*Bgpv6Metric { - if x != nil { - return x.Bgpv6Metrics +func (x *ActionResponseProtocolIpv4) Reset() { + *x = ActionResponseProtocolIpv4{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[241] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *MetricsResponse) GetIsisMetrics() []*IsisMetric { - if x != nil { - return x.IsisMetrics - } - return nil +func (x *ActionResponseProtocolIpv4) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *MetricsResponse) GetLagMetrics() []*LagMetric { - if x != nil { - return x.LagMetrics +func (*ActionResponseProtocolIpv4) ProtoMessage() {} + +func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[241] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *MetricsResponse) GetLacpMetrics() []*LacpMetric { - if x != nil { - return x.LacpMetrics - } - return nil +// Deprecated: Use ActionResponseProtocolIpv4.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{241} } -func (x *MetricsResponse) GetLldpMetrics() []*LldpMetric { +func (x *ActionResponseProtocolIpv4) GetChoice() ActionResponseProtocolIpv4_Choice_Enum { if x != nil { - return x.LldpMetrics + return x.Choice } - return nil + return ActionResponseProtocolIpv4_Choice_unspecified } -func (x *MetricsResponse) GetRsvpMetrics() []*RsvpMetric { +func (x *ActionResponseProtocolIpv4) GetPing() *ActionResponseProtocolIpv4Ping { if x != nil { - return x.RsvpMetrics + return x.Ping } return nil } -// The port result request to the traffic generator -type PortMetricsRequest struct { +// Request for initiating ping between multiple source and destination pairs. +type ActionProtocolIpv4Ping struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of objects to return results for. An empty list will return all port row - // results. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of the port cannot be excluded. - ColumnNames []PortMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.PortMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // List of IPv4 ping requests. + Requests []*ActionProtocolIpv4PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` } -func (x *PortMetricsRequest) Reset() { - *x = PortMetricsRequest{} +func (x *ActionProtocolIpv4Ping) Reset() { + *x = ActionProtocolIpv4Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[239] + mi := &file_otg_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetricsRequest) String() string { +func (x *ActionProtocolIpv4Ping) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetricsRequest) ProtoMessage() {} +func (*ActionProtocolIpv4Ping) ProtoMessage() {} -func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[239] +func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38092,84 +38546,59 @@ func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetricsRequest.ProtoReflect.Descriptor instead. -func (*PortMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239} -} - -func (x *PortMetricsRequest) GetPortNames() []string { - if x != nil { - return x.PortNames - } - return nil +// Deprecated: Use ActionProtocolIpv4Ping.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{242} } -func (x *PortMetricsRequest) GetColumnNames() []PortMetricsRequest_ColumnNames_Enum { +func (x *ActionProtocolIpv4Ping) GetRequests() []*ActionProtocolIpv4PingRequest { if x != nil { - return x.ColumnNames + return x.Requests } return nil } -// Description missing in models -type PortMetric struct { +// Under Review: Most ping request parameters are still TBD. +// +// Under Review: Most ping request parameters are still TBD. +// +// Request for initiating ping between a single source and destination pair. +// For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response +// to either succeed or time out. The API wait timeout for each request shall be 300ms. +type ActionProtocolIpv4PingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured port + // Name of source IPv4 interface to be used. // // x-constraint: - // - /components/schemas/Port/properties/name + // - /components/schemas/Device.Ipv4/properties/name // // x-constraint: - // - /components/schemas/Port/properties/name - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The state of the connection to the test port location. The format should be the configured - // port location along with any custom connection state message. - Location *string `protobuf:"bytes,2,opt,name=location,proto3,oneof" json:"location,omitempty"` - // The state of the test port link The string can be up, down or a custom error message. - Link *PortMetric_Link_Enum `protobuf:"varint,3,opt,name=link,proto3,enum=otg.PortMetric_Link_Enum,oneof" json:"link,omitempty"` - // The state of the test port capture infrastructure. The string can be started, stopped - // or a custom error message. - Capture *PortMetric_Capture_Enum `protobuf:"varint,4,opt,name=capture,proto3,enum=otg.PortMetric_Capture_Enum,oneof" json:"capture,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,5,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,6,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,7,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of valid bytes received - BytesRx *uint64 `protobuf:"varint,8,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,9,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,10,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The current rate of bytes transmitted - BytesTxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` - // The current rate of bytes received - BytesRxRate *float32 `protobuf:"fixed32,12,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` - // The transmit state of the flow. - Transmit *PortMetric_Transmit_Enum `protobuf:"varint,13,opt,name=transmit,proto3,enum=otg.PortMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` + // - /components/schemas/Device.Ipv4/properties/name + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` + // Destination IPv4 address to ping. + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` } -func (x *PortMetric) Reset() { - *x = PortMetric{} +func (x *ActionProtocolIpv4PingRequest) Reset() { + *x = ActionProtocolIpv4PingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[240] + mi := &file_otg_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric) String() string { +func (x *ActionProtocolIpv4PingRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric) ProtoMessage() {} +func (*ActionProtocolIpv4PingRequest) ProtoMessage() {} -func (x *PortMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[240] +func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38180,141 +38609,115 @@ func (x *PortMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric.ProtoReflect.Descriptor instead. -func (*PortMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240} +// Deprecated: Use ActionProtocolIpv4PingRequest.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4PingRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{243} } -func (x *PortMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionProtocolIpv4PingRequest) GetSrcName() string { + if x != nil && x.SrcName != nil { + return *x.SrcName } return "" } -func (x *PortMetric) GetLocation() string { - if x != nil && x.Location != nil { - return *x.Location +func (x *ActionProtocolIpv4PingRequest) GetDstIp() string { + if x != nil && x.DstIp != nil { + return *x.DstIp } return "" } -func (x *PortMetric) GetLink() PortMetric_Link_Enum { - if x != nil && x.Link != nil { - return *x.Link - } - return PortMetric_Link_unspecified -} +// Response for ping initiated between multiple source and destination pairs. +type ActionResponseProtocolIpv4Ping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *PortMetric) GetCapture() PortMetric_Capture_Enum { - if x != nil && x.Capture != nil { - return *x.Capture - } - return PortMetric_Capture_unspecified + // List of responses for IPv4 ping responses. + Responses []*ActionResponseProtocolIpv4PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` } -func (x *PortMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx +func (x *ActionResponseProtocolIpv4Ping) Reset() { + *x = ActionResponseProtocolIpv4Ping{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[244] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *PortMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 +func (x *ActionResponseProtocolIpv4Ping) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *PortMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx - } - return 0 -} - -func (x *PortMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx - } - return 0 -} - -func (x *PortMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate - } - return 0 -} - -func (x *PortMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate - } - return 0 -} +func (*ActionResponseProtocolIpv4Ping) ProtoMessage() {} -func (x *PortMetric) GetBytesTxRate() float32 { - if x != nil && x.BytesTxRate != nil { - return *x.BytesTxRate +func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[244] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *PortMetric) GetBytesRxRate() float32 { - if x != nil && x.BytesRxRate != nil { - return *x.BytesRxRate - } - return 0 +// Deprecated: Use ActionResponseProtocolIpv4Ping.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{244} } -func (x *PortMetric) GetTransmit() PortMetric_Transmit_Enum { - if x != nil && x.Transmit != nil { - return *x.Transmit +func (x *ActionResponseProtocolIpv4Ping) GetResponses() []*ActionResponseProtocolIpv4PingResponse { + if x != nil { + return x.Responses } - return PortMetric_Transmit_unspecified + return nil } -// The container for a flow metric request. -type FlowMetricsRequest struct { +// Response for ping initiated between a single source and destination pair. +type ActionResponseProtocolIpv4PingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Flow metrics will be retrieved for these flow names. - // If no flow names are specified then all flows will be returned. + // Name of source IPv4 interface used for ping. // // x-constraint: - // - /components/schemas/Flow/properties/name + // - /components/schemas/Device.Ipv4/properties/name // // x-constraint: - // - /components/schemas/Flow/properties/name - FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` - // The list of metric names that the returned result set will contain. If the list is - // empty then all metrics will be returned. - MetricNames []FlowMetricsRequest_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowMetricsRequest_MetricNames_Enum" json:"metric_names,omitempty"` - // Description missing in models - TaggedMetrics *FlowTaggedMetricsFilter `protobuf:"bytes,4,opt,name=tagged_metrics,json=taggedMetrics,proto3,oneof" json:"tagged_metrics,omitempty"` + // - /components/schemas/Device.Ipv4/properties/name + // + // required = true + SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` + // Destination IPv4 address used for ping. + // required = true + DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` + // Result of the ping request. + // required = true + Result ActionResponseProtocolIpv4PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv4PingResponse_Result_Enum" json:"result,omitempty"` } -func (x *FlowMetricsRequest) Reset() { - *x = FlowMetricsRequest{} +func (x *ActionResponseProtocolIpv4PingResponse) Reset() { + *x = ActionResponseProtocolIpv4PingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[241] + mi := &file_otg_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricsRequest) String() string { +func (x *ActionResponseProtocolIpv4PingResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricsRequest) ProtoMessage() {} +func (*ActionResponseProtocolIpv4PingResponse) ProtoMessage() {} -func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[241] +func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[245] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38325,70 +38728,62 @@ func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricsRequest.ProtoReflect.Descriptor instead. -func (*FlowMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241} +// Deprecated: Use ActionResponseProtocolIpv4PingResponse.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4PingResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{245} } -func (x *FlowMetricsRequest) GetFlowNames() []string { +func (x *ActionResponseProtocolIpv4PingResponse) GetSrcName() string { if x != nil { - return x.FlowNames + return x.SrcName } - return nil + return "" } -func (x *FlowMetricsRequest) GetMetricNames() []FlowMetricsRequest_MetricNames_Enum { +func (x *ActionResponseProtocolIpv4PingResponse) GetDstIp() string { if x != nil { - return x.MetricNames + return x.DstIp } - return nil + return "" } -func (x *FlowMetricsRequest) GetTaggedMetrics() *FlowTaggedMetricsFilter { +func (x *ActionResponseProtocolIpv4PingResponse) GetResult() ActionResponseProtocolIpv4PingResponse_Result_Enum { if x != nil { - return x.TaggedMetrics + return x.Result } - return nil + return ActionResponseProtocolIpv4PingResponse_Result_unspecified } -// Filter for tagged metrics -type FlowTaggedMetricsFilter struct { +// Actions associated with IPv6 on configured resources. +type ActionProtocolIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Controls inclusion/exclusion of tagged metrics when fetching flow metrics. - // default = True - Include *bool `protobuf:"varint,1,opt,name=include,proto3,oneof" json:"include,omitempty"` - // Controls inclusion/exclusion of tagged metrics where each underlying attributes has - // zero value or absent value. - // default = False - IncludeEmptyMetrics *bool `protobuf:"varint,2,opt,name=include_empty_metrics,json=includeEmptyMetrics,proto3,oneof" json:"include_empty_metrics,omitempty"` - // The list of metric names that the returned result set will contain. If the list is - // empty then all metrics will be returned. - MetricNames []FlowTaggedMetricsFilter_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowTaggedMetricsFilter_MetricNames_Enum" json:"metric_names,omitempty"` - // List of filters to selectively fetch tagged metrics with certain tag and corresponding - // value. - Filters []*FlowMetricTagFilter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"` + // Description missing in models + // required = true + Choice ActionProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv6_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Ping *ActionProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` } -func (x *FlowTaggedMetricsFilter) Reset() { - *x = FlowTaggedMetricsFilter{} +func (x *ActionProtocolIpv6) Reset() { + *x = ActionProtocolIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[242] + mi := &file_otg_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetricsFilter) String() string { +func (x *ActionProtocolIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetricsFilter) ProtoMessage() {} +func (*ActionProtocolIpv6) ProtoMessage() {} -func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[242] +func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38399,71 +38794,55 @@ func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetricsFilter.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetricsFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242} -} - -func (x *FlowTaggedMetricsFilter) GetInclude() bool { - if x != nil && x.Include != nil { - return *x.Include - } - return false -} - -func (x *FlowTaggedMetricsFilter) GetIncludeEmptyMetrics() bool { - if x != nil && x.IncludeEmptyMetrics != nil { - return *x.IncludeEmptyMetrics - } - return false +// Deprecated: Use ActionProtocolIpv6.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{246} } -func (x *FlowTaggedMetricsFilter) GetMetricNames() []FlowTaggedMetricsFilter_MetricNames_Enum { +func (x *ActionProtocolIpv6) GetChoice() ActionProtocolIpv6_Choice_Enum { if x != nil { - return x.MetricNames + return x.Choice } - return nil + return ActionProtocolIpv6_Choice_unspecified } -func (x *FlowTaggedMetricsFilter) GetFilters() []*FlowMetricTagFilter { +func (x *ActionProtocolIpv6) GetPing() *ActionProtocolIpv6Ping { if x != nil { - return x.Filters + return x.Ping } return nil } -// A container for filtering ingress and/or egress metric tags. -// The Tx stats may not be applicable in both the request and response filter. -type FlowMetricTagFilter struct { +// Response for actions associated with IPv6 on configured resources. +type ActionResponseProtocolIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A metric tag name that MUST exist in a flow packet or - // flow egress_packet configuration - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // A list of filters that can be applied to the metric tag name. - // By default all values will be included in the flow metric results. - Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` + // Description missing in models + // required = true + Choice ActionResponseProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv6_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Ping *ActionResponseProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3,oneof" json:"ping,omitempty"` } -func (x *FlowMetricTagFilter) Reset() { - *x = FlowMetricTagFilter{} +func (x *ActionResponseProtocolIpv6) Reset() { + *x = ActionResponseProtocolIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[243] + mi := &file_otg_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTagFilter) String() string { +func (x *ActionResponseProtocolIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTagFilter) ProtoMessage() {} +func (*ActionResponseProtocolIpv6) ProtoMessage() {} -func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[243] +func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38474,82 +38853,52 @@ func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTagFilter.ProtoReflect.Descriptor instead. -func (*FlowMetricTagFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{243} +// Deprecated: Use ActionResponseProtocolIpv6.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{247} } -func (x *FlowMetricTagFilter) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionResponseProtocolIpv6) GetChoice() ActionResponseProtocolIpv6_Choice_Enum { + if x != nil { + return x.Choice } - return "" + return ActionResponseProtocolIpv6_Choice_unspecified } -func (x *FlowMetricTagFilter) GetValues() []string { +func (x *ActionResponseProtocolIpv6) GetPing() *ActionResponseProtocolIpv6Ping { if x != nil { - return x.Values + return x.Ping } return nil } -// A container for flow metrics. -// The container is keyed by the name, port_tx and port_rx. -type FlowMetric struct { +// Request for initiating ping between multiple source and destination pairs. +type ActionProtocolIpv6Ping struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the flow - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The name of the transmit port - PortTx *string `protobuf:"bytes,2,opt,name=port_tx,json=portTx,proto3,oneof" json:"port_tx,omitempty"` - // The name of the receive port - PortRx *string `protobuf:"bytes,3,opt,name=port_rx,json=portRx,proto3,oneof" json:"port_rx,omitempty"` - // The transmit state of the flow. - Transmit *FlowMetric_Transmit_Enum `protobuf:"varint,5,opt,name=transmit,proto3,enum=otg.FlowMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,6,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,7,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,8,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of bytes received - BytesRx *uint64 `protobuf:"varint,9,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,10,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,11,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The percentage of lost frames - Loss *float32 `protobuf:"fixed32,12,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Description missing in models - Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` - // Description missing in models - Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3,oneof" json:"latency,omitempty"` - // List of metrics corresponding to a set of values applicable - // for configured metric tags in ingress or egress packet header fields of corresponding - // flow. - // The container is keyed by list of tag-value pairs. - TaggedMetrics []*FlowTaggedMetric `protobuf:"bytes,15,rep,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` + // List of IPv6 ping requests. + Requests []*ActionProtocolIpv6PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` } -func (x *FlowMetric) Reset() { - *x = FlowMetric{} +func (x *ActionProtocolIpv6Ping) Reset() { + *x = ActionProtocolIpv6Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[244] + mi := &file_otg_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetric) String() string { +func (x *ActionProtocolIpv6Ping) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetric) ProtoMessage() {} +func (*ActionProtocolIpv6Ping) ProtoMessage() {} -func (x *FlowMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[244] +func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38560,156 +38909,178 @@ func (x *FlowMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetric.ProtoReflect.Descriptor instead. -func (*FlowMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244} +// Deprecated: Use ActionProtocolIpv6Ping.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{248} } -func (x *FlowMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionProtocolIpv6Ping) GetRequests() []*ActionProtocolIpv6PingRequest { + if x != nil { + return x.Requests } - return "" + return nil } -func (x *FlowMetric) GetPortTx() string { - if x != nil && x.PortTx != nil { - return *x.PortTx - } - return "" +// Under Review: Most ping request parameters are still TBD. +// +// Under Review: Most ping request parameters are still TBD. +// +// Request for initiating ping between a single source and destination pair. +// For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response +// to either succeed or time out. The API wait timeout for each request shall be 300ms. +type ActionProtocolIpv6PingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of source IPv6 interface to be used. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` + // Destination IPv6 address to ping. + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` } -func (x *FlowMetric) GetPortRx() string { - if x != nil && x.PortRx != nil { - return *x.PortRx +func (x *ActionProtocolIpv6PingRequest) Reset() { + *x = ActionProtocolIpv6PingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[249] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *FlowMetric) GetTransmit() FlowMetric_Transmit_Enum { - if x != nil && x.Transmit != nil { - return *x.Transmit - } - return FlowMetric_Transmit_unspecified +func (x *ActionProtocolIpv6PingRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx +func (*ActionProtocolIpv6PingRequest) ProtoMessage() {} + +func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[249] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *FlowMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 +// Deprecated: Use ActionProtocolIpv6PingRequest.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6PingRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{249} } -func (x *FlowMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx +func (x *ActionProtocolIpv6PingRequest) GetSrcName() string { + if x != nil && x.SrcName != nil { + return *x.SrcName } - return 0 + return "" } -func (x *FlowMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx +func (x *ActionProtocolIpv6PingRequest) GetDstIp() string { + if x != nil && x.DstIp != nil { + return *x.DstIp } - return 0 + return "" } -func (x *FlowMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate - } - return 0 +// Response for ping initiated between multiple source and destination pairs. +type ActionResponseProtocolIpv6Ping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of responses for IPv6 ping responses. + Responses []*ActionResponseProtocolIpv6PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` } -func (x *FlowMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate +func (x *ActionResponseProtocolIpv6Ping) Reset() { + *x = ActionResponseProtocolIpv6Ping{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[250] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *FlowMetric) GetLoss() float32 { - if x != nil && x.Loss != nil { - return *x.Loss - } - return 0 +func (x *ActionResponseProtocolIpv6Ping) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowMetric) GetTimestamps() *MetricTimestamp { - if x != nil { - return x.Timestamps +func (*ActionResponseProtocolIpv6Ping) ProtoMessage() {} + +func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[250] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowMetric) GetLatency() *MetricLatency { - if x != nil { - return x.Latency - } - return nil +// Deprecated: Use ActionResponseProtocolIpv6Ping.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{250} } -func (x *FlowMetric) GetTaggedMetrics() []*FlowTaggedMetric { +func (x *ActionResponseProtocolIpv6Ping) GetResponses() []*ActionResponseProtocolIpv6PingResponse { if x != nil { - return x.TaggedMetrics + return x.Responses } return nil } -// Metrics for each set of values applicable for configured -// metric tags in ingress or egress packet header fields of corresponding flow. -// The container is keyed by list of tag-value pairs. -type FlowTaggedMetric struct { +// Response for ping initiated between a single source and destination pair. +type ActionResponseProtocolIpv6PingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of tag and value pairs - Tags []*FlowMetricTag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,2,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,3,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,4,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of bytes received - BytesRx *uint64 `protobuf:"varint,5,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,6,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,7,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The percentage of lost frames - Loss *float32 `protobuf:"fixed32,8,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Description missing in models - Timestamps *MetricTimestamp `protobuf:"bytes,9,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` - // Description missing in models - Latency *MetricLatency `protobuf:"bytes,10,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + // Name of source IPv6 interface used for ping. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // required = true + SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` + // Destination IPv6 address used for ping. + // required = true + DstIp string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` + // Result of the ping request. + // required = true + Result ActionResponseProtocolIpv6PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv6PingResponse_Result_Enum" json:"result,omitempty"` } -func (x *FlowTaggedMetric) Reset() { - *x = FlowTaggedMetric{} +func (x *ActionResponseProtocolIpv6PingResponse) Reset() { + *x = ActionResponseProtocolIpv6PingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[245] + mi := &file_otg_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetric) String() string { +func (x *ActionResponseProtocolIpv6PingResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetric) ProtoMessage() {} +func (*ActionResponseProtocolIpv6PingResponse) ProtoMessage() {} -func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[245] +func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38720,110 +39091,162 @@ func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetric.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{245} +// Deprecated: Use ActionResponseProtocolIpv6PingResponse.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6PingResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{251} } -func (x *FlowTaggedMetric) GetTags() []*FlowMetricTag { +func (x *ActionResponseProtocolIpv6PingResponse) GetSrcName() string { if x != nil { - return x.Tags + return x.SrcName } - return nil + return "" } -func (x *FlowTaggedMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx +func (x *ActionResponseProtocolIpv6PingResponse) GetDstIp() string { + if x != nil { + return x.DstIp } - return 0 + return "" } -func (x *FlowTaggedMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx +func (x *ActionResponseProtocolIpv6PingResponse) GetResult() ActionResponseProtocolIpv6PingResponse_Result_Enum { + if x != nil { + return x.Result } - return 0 + return ActionResponseProtocolIpv6PingResponse_Result_unspecified } -func (x *FlowTaggedMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx - } - return 0 +// Actions associated with BGP on configured resources. +type ActionProtocolBgp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice ActionProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolBgp_Choice_Enum" json:"choice,omitempty"` + // Description missing in models + Notification *ActionProtocolBgpNotification `protobuf:"bytes,2,opt,name=notification,proto3,oneof" json:"notification,omitempty"` + // Description missing in models + InitiateGracefulRestart *ActionProtocolBgpInitiateGracefulRestart `protobuf:"bytes,3,opt,name=initiate_graceful_restart,json=initiateGracefulRestart,proto3,oneof" json:"initiate_graceful_restart,omitempty"` } -func (x *FlowTaggedMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx +func (x *ActionProtocolBgp) Reset() { + *x = ActionProtocolBgp{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[252] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *FlowTaggedMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate - } - return 0 +func (x *ActionProtocolBgp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowTaggedMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate +func (*ActionProtocolBgp) ProtoMessage() {} + +func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[252] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *FlowTaggedMetric) GetLoss() float32 { - if x != nil && x.Loss != nil { - return *x.Loss +// Deprecated: Use ActionProtocolBgp.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{252} +} + +func (x *ActionProtocolBgp) GetChoice() ActionProtocolBgp_Choice_Enum { + if x != nil { + return x.Choice } - return 0 + return ActionProtocolBgp_Choice_unspecified } -func (x *FlowTaggedMetric) GetTimestamps() *MetricTimestamp { +func (x *ActionProtocolBgp) GetNotification() *ActionProtocolBgpNotification { if x != nil { - return x.Timestamps + return x.Notification } return nil } -func (x *FlowTaggedMetric) GetLatency() *MetricLatency { +func (x *ActionProtocolBgp) GetInitiateGracefulRestart() *ActionProtocolBgpInitiateGracefulRestart { if x != nil { - return x.Latency + return x.InitiateGracefulRestart } return nil } -// Description missing in models -type FlowMetricTag struct { +// A NOTIFICATION message is sent when an error is detected with the BGP session, such +// as hold timer expiring, misconfigured AS number or a BGP session reset is requested. +// This causes the BGP connection to close. Send explicit NOTIFICATIONs for list of +// specified BGP peers. If a user wants to send custom Error Code and Error Subcode +// the custom object should be configured. A user can send IANA defined BGP NOTIFICATIONs +// according to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. +type ActionProtocolBgpNotification struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of packet field metric tag - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION + // will be sent to all configured BGP peers. + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` + // Each BGP NOTIFICATION message includes an Error Code field indicating what type of + // problem occurred. For certain Error Codes, an Error Subcode field provides additional + // details about the specific nature of the problem. The choice value will provide + // the Error Code used in NOTIFICATION message. The Subcode can be set for each of + // the corresponding errors except for Hold Timer Expired error and BGP Finite State + // Machine error. In both of these cases Subcode 0 will be sent. If a user wants to + // use non zero Sub Code then custom choice can be used. + // default = Choice.Enum.cease + Choice *ActionProtocolBgpNotification_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.ActionProtocolBgpNotification_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Value *FlowMetricTagValue `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Cease *DeviceBgpCeaseError `protobuf:"bytes,3,opt,name=cease,proto3,oneof" json:"cease,omitempty"` + // Description missing in models + MessageHeaderError *DeviceBgpMessageHeaderError `protobuf:"bytes,4,opt,name=message_header_error,json=messageHeaderError,proto3,oneof" json:"message_header_error,omitempty"` + // Description missing in models + OpenMessageError *DeviceBgpOpenMessageError `protobuf:"bytes,5,opt,name=open_message_error,json=openMessageError,proto3,oneof" json:"open_message_error,omitempty"` + // Description missing in models + UpdateMessageError *DeviceBgpUpdateMessageError `protobuf:"bytes,6,opt,name=update_message_error,json=updateMessageError,proto3,oneof" json:"update_message_error,omitempty"` + // Description missing in models + HoldTimerExpired *DeviceBgpHoldTimerExpired `protobuf:"bytes,7,opt,name=hold_timer_expired,json=holdTimerExpired,proto3,oneof" json:"hold_timer_expired,omitempty"` + // Description missing in models + FiniteStateMachineError *DeviceBgpFiniteStateMachineError `protobuf:"bytes,8,opt,name=finite_state_machine_error,json=finiteStateMachineError,proto3,oneof" json:"finite_state_machine_error,omitempty"` + // Description missing in models + Custom *DeviceBgpCustomError `protobuf:"bytes,9,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *FlowMetricTag) Reset() { - *x = FlowMetricTag{} +func (x *ActionProtocolBgpNotification) Reset() { + *x = ActionProtocolBgpNotification{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[246] + mi := &file_otg_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTag) String() string { +func (x *ActionProtocolBgpNotification) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTag) ProtoMessage() {} +func (*ActionProtocolBgpNotification) ProtoMessage() {} -func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[246] +func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38834,124 +39257,113 @@ func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTag.ProtoReflect.Descriptor instead. -func (*FlowMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{246} -} - -func (x *FlowMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use ActionProtocolBgpNotification.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpNotification) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{253} } -func (x *FlowMetricTag) GetValue() *FlowMetricTagValue { +func (x *ActionProtocolBgpNotification) GetNames() []string { if x != nil { - return x.Value + return x.Names } return nil } -// A container for metric tag value -type FlowMetricTagValue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Available formats for metric tag value - // default = Choice.Enum.hex - Choice *FlowMetricTagValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowMetricTagValue_Choice_Enum,oneof" json:"choice,omitempty"` - // Value represented in hexadecimal format - Hex *string `protobuf:"bytes,2,opt,name=hex,proto3,oneof" json:"hex,omitempty"` - // Value represented in string format - Str *string `protobuf:"bytes,3,opt,name=str,proto3,oneof" json:"str,omitempty"` +func (x *ActionProtocolBgpNotification) GetChoice() ActionProtocolBgpNotification_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return ActionProtocolBgpNotification_Choice_unspecified } -func (x *FlowMetricTagValue) Reset() { - *x = FlowMetricTagValue{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[247] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ActionProtocolBgpNotification) GetCease() *DeviceBgpCeaseError { + if x != nil { + return x.Cease } + return nil } -func (x *FlowMetricTagValue) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ActionProtocolBgpNotification) GetMessageHeaderError() *DeviceBgpMessageHeaderError { + if x != nil { + return x.MessageHeaderError + } + return nil } -func (*FlowMetricTagValue) ProtoMessage() {} - -func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[247] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ActionProtocolBgpNotification) GetOpenMessageError() *DeviceBgpOpenMessageError { + if x != nil { + return x.OpenMessageError } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowMetricTagValue.ProtoReflect.Descriptor instead. -func (*FlowMetricTagValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247} +func (x *ActionProtocolBgpNotification) GetUpdateMessageError() *DeviceBgpUpdateMessageError { + if x != nil { + return x.UpdateMessageError + } + return nil } -func (x *FlowMetricTagValue) GetChoice() FlowMetricTagValue_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *ActionProtocolBgpNotification) GetHoldTimerExpired() *DeviceBgpHoldTimerExpired { + if x != nil { + return x.HoldTimerExpired } - return FlowMetricTagValue_Choice_unspecified + return nil } -func (x *FlowMetricTagValue) GetHex() string { - if x != nil && x.Hex != nil { - return *x.Hex +func (x *ActionProtocolBgpNotification) GetFiniteStateMachineError() *DeviceBgpFiniteStateMachineError { + if x != nil { + return x.FiniteStateMachineError } - return "" + return nil } -func (x *FlowMetricTagValue) GetStr() string { - if x != nil && x.Str != nil { - return *x.Str +func (x *ActionProtocolBgpNotification) GetCustom() *DeviceBgpCustomError { + if x != nil { + return x.Custom } - return "" + return nil } -// The container for timestamp metrics. -// The container will be empty if the timestamp has not been configured for -// the flow. -type MetricTimestamp struct { +// Initiates BGP Graceful Restart process for the selected BGP peers. If no name is +// specified then Graceful Restart will be sent to all configured BGP peers. +type ActionProtocolBgpInitiateGracefulRestart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // First timestamp in nanoseconds - FirstTimestampNs *float64 `protobuf:"fixed64,1,opt,name=first_timestamp_ns,json=firstTimestampNs,proto3,oneof" json:"first_timestamp_ns,omitempty"` - // Last timestamp in nanoseconds - LastTimestampNs *float64 `protobuf:"fixed64,2,opt,name=last_timestamp_ns,json=lastTimestampNs,proto3,oneof" json:"last_timestamp_ns,omitempty"` + // The names of device BGP peers objects to control. + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // Duration (in seconds) after which selected BGP peers will initiate + // Graceful restart by sending the Open Message with Restart State bit set in the Graceful + // Restart capability. + // default = 30 + RestartDelay *uint32 `protobuf:"varint,2,opt,name=restart_delay,json=restartDelay,proto3,oneof" json:"restart_delay,omitempty"` } -func (x *MetricTimestamp) Reset() { - *x = MetricTimestamp{} +func (x *ActionProtocolBgpInitiateGracefulRestart) Reset() { + *x = ActionProtocolBgpInitiateGracefulRestart{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[248] + mi := &file_otg_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricTimestamp) String() string { +func (x *ActionProtocolBgpInitiateGracefulRestart) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricTimestamp) ProtoMessage() {} +func (*ActionProtocolBgpInitiateGracefulRestart) ProtoMessage() {} -func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[248] +func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38962,60 +39374,71 @@ func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricTimestamp.ProtoReflect.Descriptor instead. -func (*MetricTimestamp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{248} +// Deprecated: Use ActionProtocolBgpInitiateGracefulRestart.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpInitiateGracefulRestart) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{254} } -func (x *MetricTimestamp) GetFirstTimestampNs() float64 { - if x != nil && x.FirstTimestampNs != nil { - return *x.FirstTimestampNs +func (x *ActionProtocolBgpInitiateGracefulRestart) GetPeerNames() []string { + if x != nil { + return x.PeerNames } - return 0 + return nil } -func (x *MetricTimestamp) GetLastTimestampNs() float64 { - if x != nil && x.LastTimestampNs != nil { - return *x.LastTimestampNs +func (x *ActionProtocolBgpInitiateGracefulRestart) GetRestartDelay() uint32 { + if x != nil && x.RestartDelay != nil { + return *x.RestartDelay } return 0 } -// The container for latency metrics. -// The min/max/avg values are dependent on the type of latency measurement -// mode that is configured. -// The container will be empty if the latency has not been configured for -// the flow. -type MetricLatency struct { +// Request to traffic generator for metrics of choice. +type MetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Minimum latency in nanoseconds - MinimumNs *float64 `protobuf:"fixed64,1,opt,name=minimum_ns,json=minimumNs,proto3,oneof" json:"minimum_ns,omitempty"` - // Maximum latency in nanoseconds - MaximumNs *float64 `protobuf:"fixed64,2,opt,name=maximum_ns,json=maximumNs,proto3,oneof" json:"maximum_ns,omitempty"` - // Average latency in nanoseconds - AverageNs *float64 `protobuf:"fixed64,3,opt,name=average_ns,json=averageNs,proto3,oneof" json:"average_ns,omitempty"` + // Description missing in models + // default = Choice.Enum.port + Choice *MetricsRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsRequest_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Port *PortMetricsRequest `protobuf:"bytes,2,opt,name=port,proto3,oneof" json:"port,omitempty"` + // Description missing in models + Flow *FlowMetricsRequest `protobuf:"bytes,3,opt,name=flow,proto3,oneof" json:"flow,omitempty"` + // Description missing in models + Bgpv4 *Bgpv4MetricsRequest `protobuf:"bytes,4,opt,name=bgpv4,proto3,oneof" json:"bgpv4,omitempty"` + // Description missing in models + Bgpv6 *Bgpv6MetricsRequest `protobuf:"bytes,5,opt,name=bgpv6,proto3,oneof" json:"bgpv6,omitempty"` + // Description missing in models + Isis *IsisMetricsRequest `protobuf:"bytes,6,opt,name=isis,proto3,oneof" json:"isis,omitempty"` + // Description missing in models + Lag *LagMetricsRequest `protobuf:"bytes,7,opt,name=lag,proto3,oneof" json:"lag,omitempty"` + // Description missing in models + Lacp *LacpMetricsRequest `protobuf:"bytes,8,opt,name=lacp,proto3,oneof" json:"lacp,omitempty"` + // Description missing in models + Lldp *LldpMetricsRequest `protobuf:"bytes,9,opt,name=lldp,proto3,oneof" json:"lldp,omitempty"` + // Description missing in models + Rsvp *RsvpMetricsRequest `protobuf:"bytes,10,opt,name=rsvp,proto3,oneof" json:"rsvp,omitempty"` } -func (x *MetricLatency) Reset() { - *x = MetricLatency{} +func (x *MetricsRequest) Reset() { + *x = MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[249] + mi := &file_otg_proto_msgTypes[255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricLatency) String() string { +func (x *MetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricLatency) ProtoMessage() {} +func (*MetricsRequest) ProtoMessage() {} -func (x *MetricLatency) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[249] +func (x *MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[255] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39026,70 +39449,127 @@ func (x *MetricLatency) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricLatency.ProtoReflect.Descriptor instead. -func (*MetricLatency) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{249} +// Deprecated: Use MetricsRequest.ProtoReflect.Descriptor instead. +func (*MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{255} } -func (x *MetricLatency) GetMinimumNs() float64 { - if x != nil && x.MinimumNs != nil { - return *x.MinimumNs +func (x *MetricsRequest) GetChoice() MetricsRequest_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return MetricsRequest_Choice_unspecified } -func (x *MetricLatency) GetMaximumNs() float64 { - if x != nil && x.MaximumNs != nil { - return *x.MaximumNs +func (x *MetricsRequest) GetPort() *PortMetricsRequest { + if x != nil { + return x.Port } - return 0 + return nil } -func (x *MetricLatency) GetAverageNs() float64 { - if x != nil && x.AverageNs != nil { - return *x.AverageNs +func (x *MetricsRequest) GetFlow() *FlowMetricsRequest { + if x != nil { + return x.Flow } - return 0 + return nil } -// The request to retrieve BGPv4 per peer metrics/statistics. -type Bgpv4MetricsRequest struct { +func (x *MetricsRequest) GetBgpv4() *Bgpv4MetricsRequest { + if x != nil { + return x.Bgpv4 + } + return nil +} + +func (x *MetricsRequest) GetBgpv6() *Bgpv6MetricsRequest { + if x != nil { + return x.Bgpv6 + } + return nil +} + +func (x *MetricsRequest) GetIsis() *IsisMetricsRequest { + if x != nil { + return x.Isis + } + return nil +} + +func (x *MetricsRequest) GetLag() *LagMetricsRequest { + if x != nil { + return x.Lag + } + return nil +} + +func (x *MetricsRequest) GetLacp() *LacpMetricsRequest { + if x != nil { + return x.Lacp + } + return nil +} + +func (x *MetricsRequest) GetLldp() *LldpMetricsRequest { + if x != nil { + return x.Lldp + } + return nil +} + +func (x *MetricsRequest) GetRsvp() *RsvpMetricsRequest { + if x != nil { + return x.Rsvp + } + return nil +} + +// Response containing chosen traffic generator metrics. +type MetricsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGPv4 peers to return results for. An empty list will return results - // for all BGPv4 peers. - // - // x-constraint: - // - /components/schemas/Bgp.V4peer/properties/name - // - // x-constraint: - // - /components/schemas/Bgp.V4peer/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the BGPv4 peer cannot be excluded. - ColumnNames []Bgpv4MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv4MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // Description missing in models + // default = Choice.Enum.port_metrics + Choice *MetricsResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsResponse_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + PortMetrics []*PortMetric `protobuf:"bytes,2,rep,name=port_metrics,json=portMetrics,proto3" json:"port_metrics,omitempty"` + // Description missing in models + FlowMetrics []*FlowMetric `protobuf:"bytes,3,rep,name=flow_metrics,json=flowMetrics,proto3" json:"flow_metrics,omitempty"` + // Description missing in models + Bgpv4Metrics []*Bgpv4Metric `protobuf:"bytes,4,rep,name=bgpv4_metrics,json=bgpv4Metrics,proto3" json:"bgpv4_metrics,omitempty"` + // Description missing in models + Bgpv6Metrics []*Bgpv6Metric `protobuf:"bytes,5,rep,name=bgpv6_metrics,json=bgpv6Metrics,proto3" json:"bgpv6_metrics,omitempty"` + // Description missing in models + IsisMetrics []*IsisMetric `protobuf:"bytes,6,rep,name=isis_metrics,json=isisMetrics,proto3" json:"isis_metrics,omitempty"` + // Description missing in models + LagMetrics []*LagMetric `protobuf:"bytes,7,rep,name=lag_metrics,json=lagMetrics,proto3" json:"lag_metrics,omitempty"` + // Description missing in models + LacpMetrics []*LacpMetric `protobuf:"bytes,8,rep,name=lacp_metrics,json=lacpMetrics,proto3" json:"lacp_metrics,omitempty"` + // Description missing in models + LldpMetrics []*LldpMetric `protobuf:"bytes,9,rep,name=lldp_metrics,json=lldpMetrics,proto3" json:"lldp_metrics,omitempty"` + // Description missing in models + RsvpMetrics []*RsvpMetric `protobuf:"bytes,10,rep,name=rsvp_metrics,json=rsvpMetrics,proto3" json:"rsvp_metrics,omitempty"` } -func (x *Bgpv4MetricsRequest) Reset() { - *x = Bgpv4MetricsRequest{} +func (x *MetricsResponse) Reset() { + *x = MetricsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[250] + mi := &file_otg_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4MetricsRequest) String() string { +func (x *MetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4MetricsRequest) ProtoMessage() {} +func (*MetricsResponse) ProtoMessage() {} -func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[250] +func (x *MetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39100,271 +39580,118 @@ func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4MetricsRequest.ProtoReflect.Descriptor instead. -func (*Bgpv4MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250} +// Deprecated: Use MetricsResponse.ProtoReflect.Descriptor instead. +func (*MetricsResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{256} } -func (x *Bgpv4MetricsRequest) GetPeerNames() []string { +func (x *MetricsResponse) GetChoice() MetricsResponse_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return MetricsResponse_Choice_unspecified +} + +func (x *MetricsResponse) GetPortMetrics() []*PortMetric { if x != nil { - return x.PeerNames + return x.PortMetrics } return nil } -func (x *Bgpv4MetricsRequest) GetColumnNames() []Bgpv4MetricsRequest_ColumnNames_Enum { +func (x *MetricsResponse) GetFlowMetrics() []*FlowMetric { if x != nil { - return x.ColumnNames + return x.FlowMetrics } return nil } -// BGPv4 per peer statistics information. -type Bgpv4Metric struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *MetricsResponse) GetBgpv4Metrics() []*Bgpv4Metric { + if x != nil { + return x.Bgpv4Metrics + } + return nil +} - // The name of a configured BGPv4 peer. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Session state as up or down. Up refers to an Established state and Down refers to - // any other state. - SessionState *Bgpv4Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv4Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` - // Number of times the session went from Up to Down state. - SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` - // Number of routes advertised. - RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` - // Number of routes received. - RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` - // Number of route withdraws sent. - RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` - // Number of route withdraws received. - RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` - // Number of Update messages sent. - UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` - // Number of Update messages received. - UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` - // Number of Open messages sent. - OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` - // Number of Open messages received. - OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` - // Number of Keepalive messages sent. - KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` - // Number of Keepalive messages received. - KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` - // Number of Notification messages sent. - NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` - // Number of Notification messages received. - NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` - // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm - // and Established. In all the states except Established the BGP session is down. Idle - // refers to the Idle state of the FSM. Connect refers to the state where the session - // is waiting for the underlying transport session to be established. Active refers - // to the state where the session is awaiting for a connection from the remote peer. - // OpenSent refers to the state where the session is in the process of being established. - // The local system has sent an OPEN message. OpenConfirm refers to the state where - // the session is in the process of being established. The local system has sent and - // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from - // remote peer. Established refers to the state where the BGP session with the peer - // is established. - FsmState *Bgpv4Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv4Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` - // Number of End-of-RIB markers received indicating the completion of the initial routing - // update for a particular address family after the session is established. - // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with - // the minimum length. For any other address family, it is an UPDATE message that contains - // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . - EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` -} - -func (x *Bgpv4Metric) Reset() { - *x = Bgpv4Metric{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[251] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Bgpv4Metric) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Bgpv4Metric) ProtoMessage() {} - -func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[251] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Bgpv4Metric.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251} -} - -func (x *Bgpv4Metric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *Bgpv4Metric) GetSessionState() Bgpv4Metric_SessionState_Enum { - if x != nil && x.SessionState != nil { - return *x.SessionState - } - return Bgpv4Metric_SessionState_unspecified -} - -func (x *Bgpv4Metric) GetSessionFlapCount() uint64 { - if x != nil && x.SessionFlapCount != nil { - return *x.SessionFlapCount - } - return 0 -} - -func (x *Bgpv4Metric) GetRoutesAdvertised() uint64 { - if x != nil && x.RoutesAdvertised != nil { - return *x.RoutesAdvertised - } - return 0 -} - -func (x *Bgpv4Metric) GetRoutesReceived() uint64 { - if x != nil && x.RoutesReceived != nil { - return *x.RoutesReceived - } - return 0 -} - -func (x *Bgpv4Metric) GetRouteWithdrawsSent() uint64 { - if x != nil && x.RouteWithdrawsSent != nil { - return *x.RouteWithdrawsSent - } - return 0 -} - -func (x *Bgpv4Metric) GetRouteWithdrawsReceived() uint64 { - if x != nil && x.RouteWithdrawsReceived != nil { - return *x.RouteWithdrawsReceived - } - return 0 -} - -func (x *Bgpv4Metric) GetUpdatesSent() uint64 { - if x != nil && x.UpdatesSent != nil { - return *x.UpdatesSent - } - return 0 -} - -func (x *Bgpv4Metric) GetUpdatesReceived() uint64 { - if x != nil && x.UpdatesReceived != nil { - return *x.UpdatesReceived - } - return 0 -} - -func (x *Bgpv4Metric) GetOpensSent() uint64 { - if x != nil && x.OpensSent != nil { - return *x.OpensSent - } - return 0 -} - -func (x *Bgpv4Metric) GetOpensReceived() uint64 { - if x != nil && x.OpensReceived != nil { - return *x.OpensReceived - } - return 0 -} - -func (x *Bgpv4Metric) GetKeepalivesSent() uint64 { - if x != nil && x.KeepalivesSent != nil { - return *x.KeepalivesSent +func (x *MetricsResponse) GetBgpv6Metrics() []*Bgpv6Metric { + if x != nil { + return x.Bgpv6Metrics } - return 0 + return nil } -func (x *Bgpv4Metric) GetKeepalivesReceived() uint64 { - if x != nil && x.KeepalivesReceived != nil { - return *x.KeepalivesReceived +func (x *MetricsResponse) GetIsisMetrics() []*IsisMetric { + if x != nil { + return x.IsisMetrics } - return 0 + return nil } -func (x *Bgpv4Metric) GetNotificationsSent() uint64 { - if x != nil && x.NotificationsSent != nil { - return *x.NotificationsSent +func (x *MetricsResponse) GetLagMetrics() []*LagMetric { + if x != nil { + return x.LagMetrics } - return 0 + return nil } -func (x *Bgpv4Metric) GetNotificationsReceived() uint64 { - if x != nil && x.NotificationsReceived != nil { - return *x.NotificationsReceived +func (x *MetricsResponse) GetLacpMetrics() []*LacpMetric { + if x != nil { + return x.LacpMetrics } - return 0 + return nil } -func (x *Bgpv4Metric) GetFsmState() Bgpv4Metric_FsmState_Enum { - if x != nil && x.FsmState != nil { - return *x.FsmState +func (x *MetricsResponse) GetLldpMetrics() []*LldpMetric { + if x != nil { + return x.LldpMetrics } - return Bgpv4Metric_FsmState_unspecified + return nil } -func (x *Bgpv4Metric) GetEndOfRibReceived() uint64 { - if x != nil && x.EndOfRibReceived != nil { - return *x.EndOfRibReceived +func (x *MetricsResponse) GetRsvpMetrics() []*RsvpMetric { + if x != nil { + return x.RsvpMetrics } - return 0 + return nil } -// The request to retrieve BGPv6 per peer metrics/statistics. -type Bgpv6MetricsRequest struct { +// The port result request to the traffic generator +type PortMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGPv6 peers to return results for. An empty list will return results - // for all BGPv6 peers. + // The names of objects to return results for. An empty list will return all port row + // results. // // x-constraint: - // - /components/schemas/Bgp.V6peer/properties/name + // - /components/schemas/Port/properties/name // // x-constraint: - // - /components/schemas/Bgp.V6peer/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the BGPv6 peer cannot be excluded. - ColumnNames []Bgpv6MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv6MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // empty then all columns will be returned. The name of the port cannot be excluded. + ColumnNames []PortMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.PortMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *Bgpv6MetricsRequest) Reset() { - *x = Bgpv6MetricsRequest{} +func (x *PortMetricsRequest) Reset() { + *x = PortMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[252] + mi := &file_otg_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6MetricsRequest) String() string { +func (x *PortMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6MetricsRequest) ProtoMessage() {} +func (*PortMetricsRequest) ProtoMessage() {} -func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[252] +func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39375,99 +39702,84 @@ func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6MetricsRequest.ProtoReflect.Descriptor instead. -func (*Bgpv6MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{252} +// Deprecated: Use PortMetricsRequest.ProtoReflect.Descriptor instead. +func (*PortMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{257} } -func (x *Bgpv6MetricsRequest) GetPeerNames() []string { +func (x *PortMetricsRequest) GetPortNames() []string { if x != nil { - return x.PeerNames + return x.PortNames } return nil } -func (x *Bgpv6MetricsRequest) GetColumnNames() []Bgpv6MetricsRequest_ColumnNames_Enum { +func (x *PortMetricsRequest) GetColumnNames() []PortMetricsRequest_ColumnNames_Enum { if x != nil { return x.ColumnNames } return nil } -// BGPv6 per peer statistics information. -type Bgpv6Metric struct { +// Description missing in models +type PortMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured BGPv6 peer. + // The name of a configured port + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Session state as up or down. Up refers to an Established state and Down refers to - // any other state. - SessionState *Bgpv6Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv6Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` - // Number of times the session went from Up to Down state. - SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` - // Number of routes advertised. - RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` - // Number of routes received. - RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` - // Number of route withdraws sent. - RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` - // Number of route withdraws received. - RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` - // Number of Update messages sent. - UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` - // Number of Update messages received. - UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` - // Number of Open messages sent. - OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` - // Number of Open messages received. - OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` - // Number of Keepalive messages sent. - KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` - // Number of Keepalive messages received. - KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` - // Number of Notification messages sent. - NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` - // Number of Notification messages received. - NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` - // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm - // and Established. In all the states except Established the BGP session is down. Idle - // refers to the Idle state of the FSM. Connect refers to the state where the session - // is waiting for the underlying transport session to be established. Active refers - // to the state where the session is awaiting for a connection from the remote peer. - // OpenSent refers to the state where the session is in the process of being established. - // The local system has sent an OPEN message. OpenConfirm refers to the state where - // the session is in the process of being established. The local system has sent and - // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from - // remote peer. Established refers to the state where the BGP session with the peer - // is established. - FsmState *Bgpv6Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv6Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` - // Number of End-of-RIB markers received indicating the completion of the initial routing - // update for a particular address family after the session is established. - // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with - // the minimum length. For any other address family, it is an UPDATE message that contains - // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . - EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` + // The state of the connection to the test port location. The format should be the configured + // port location along with any custom connection state message. + Location *string `protobuf:"bytes,2,opt,name=location,proto3,oneof" json:"location,omitempty"` + // The state of the test port link The string can be up, down or a custom error message. + Link *PortMetric_Link_Enum `protobuf:"varint,3,opt,name=link,proto3,enum=otg.PortMetric_Link_Enum,oneof" json:"link,omitempty"` + // The state of the test port capture infrastructure. The string can be started, stopped + // or a custom error message. + Capture *PortMetric_Capture_Enum `protobuf:"varint,4,opt,name=capture,proto3,enum=otg.PortMetric_Capture_Enum,oneof" json:"capture,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,5,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,6,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,7,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of valid bytes received + BytesRx *uint64 `protobuf:"varint,8,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,9,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,10,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The current rate of bytes transmitted + BytesTxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` + // The current rate of bytes received + BytesRxRate *float32 `protobuf:"fixed32,12,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` + // The transmit state of the flow. + Transmit *PortMetric_Transmit_Enum `protobuf:"varint,13,opt,name=transmit,proto3,enum=otg.PortMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` } -func (x *Bgpv6Metric) Reset() { - *x = Bgpv6Metric{} +func (x *PortMetric) Reset() { + *x = PortMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[253] + mi := &file_otg_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric) String() string { +func (x *PortMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric) ProtoMessage() {} +func (*PortMetric) ProtoMessage() {} -func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[253] +func (x *PortMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39478,168 +39790,141 @@ func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253} +// Deprecated: Use PortMetric.ProtoReflect.Descriptor instead. +func (*PortMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{258} } -func (x *Bgpv6Metric) GetName() string { +func (x *PortMetric) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *Bgpv6Metric) GetSessionState() Bgpv6Metric_SessionState_Enum { - if x != nil && x.SessionState != nil { - return *x.SessionState - } - return Bgpv6Metric_SessionState_unspecified -} - -func (x *Bgpv6Metric) GetSessionFlapCount() uint64 { - if x != nil && x.SessionFlapCount != nil { - return *x.SessionFlapCount - } - return 0 -} - -func (x *Bgpv6Metric) GetRoutesAdvertised() uint64 { - if x != nil && x.RoutesAdvertised != nil { - return *x.RoutesAdvertised - } - return 0 -} - -func (x *Bgpv6Metric) GetRoutesReceived() uint64 { - if x != nil && x.RoutesReceived != nil { - return *x.RoutesReceived +func (x *PortMetric) GetLocation() string { + if x != nil && x.Location != nil { + return *x.Location } - return 0 + return "" } -func (x *Bgpv6Metric) GetRouteWithdrawsSent() uint64 { - if x != nil && x.RouteWithdrawsSent != nil { - return *x.RouteWithdrawsSent +func (x *PortMetric) GetLink() PortMetric_Link_Enum { + if x != nil && x.Link != nil { + return *x.Link } - return 0 + return PortMetric_Link_unspecified } -func (x *Bgpv6Metric) GetRouteWithdrawsReceived() uint64 { - if x != nil && x.RouteWithdrawsReceived != nil { - return *x.RouteWithdrawsReceived +func (x *PortMetric) GetCapture() PortMetric_Capture_Enum { + if x != nil && x.Capture != nil { + return *x.Capture } - return 0 + return PortMetric_Capture_unspecified } -func (x *Bgpv6Metric) GetUpdatesSent() uint64 { - if x != nil && x.UpdatesSent != nil { - return *x.UpdatesSent +func (x *PortMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } return 0 } -func (x *Bgpv6Metric) GetUpdatesReceived() uint64 { - if x != nil && x.UpdatesReceived != nil { - return *x.UpdatesReceived +func (x *PortMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } return 0 } -func (x *Bgpv6Metric) GetOpensSent() uint64 { - if x != nil && x.OpensSent != nil { - return *x.OpensSent +func (x *PortMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx } return 0 } -func (x *Bgpv6Metric) GetOpensReceived() uint64 { - if x != nil && x.OpensReceived != nil { - return *x.OpensReceived +func (x *PortMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx } return 0 } -func (x *Bgpv6Metric) GetKeepalivesSent() uint64 { - if x != nil && x.KeepalivesSent != nil { - return *x.KeepalivesSent +func (x *PortMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate } return 0 } -func (x *Bgpv6Metric) GetKeepalivesReceived() uint64 { - if x != nil && x.KeepalivesReceived != nil { - return *x.KeepalivesReceived +func (x *PortMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate } return 0 } -func (x *Bgpv6Metric) GetNotificationsSent() uint64 { - if x != nil && x.NotificationsSent != nil { - return *x.NotificationsSent +func (x *PortMetric) GetBytesTxRate() float32 { + if x != nil && x.BytesTxRate != nil { + return *x.BytesTxRate } return 0 } -func (x *Bgpv6Metric) GetNotificationsReceived() uint64 { - if x != nil && x.NotificationsReceived != nil { - return *x.NotificationsReceived +func (x *PortMetric) GetBytesRxRate() float32 { + if x != nil && x.BytesRxRate != nil { + return *x.BytesRxRate } return 0 } -func (x *Bgpv6Metric) GetFsmState() Bgpv6Metric_FsmState_Enum { - if x != nil && x.FsmState != nil { - return *x.FsmState - } - return Bgpv6Metric_FsmState_unspecified -} - -func (x *Bgpv6Metric) GetEndOfRibReceived() uint64 { - if x != nil && x.EndOfRibReceived != nil { - return *x.EndOfRibReceived +func (x *PortMetric) GetTransmit() PortMetric_Transmit_Enum { + if x != nil && x.Transmit != nil { + return *x.Transmit } - return 0 + return PortMetric_Transmit_unspecified } -// The request to retrieve ISIS per Router metrics/statistics. -type IsisMetricsRequest struct { +// The container for a flow metric request. +type FlowMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ISIS Routers to return results for. An empty list will return results - // for all ISIS router. + // Flow metrics will be retrieved for these flow names. + // If no flow names are specified then all flows will be returned. // // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name + // - /components/schemas/Flow/properties/name // // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the ISIS Router cannot be excluded. - ColumnNames []IsisMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.IsisMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Flow/properties/name + FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` + // The list of metric names that the returned result set will contain. If the list is + // empty then all metrics will be returned. + MetricNames []FlowMetricsRequest_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowMetricsRequest_MetricNames_Enum" json:"metric_names,omitempty"` + // Description missing in models + TaggedMetrics *FlowTaggedMetricsFilter `protobuf:"bytes,4,opt,name=tagged_metrics,json=taggedMetrics,proto3,oneof" json:"tagged_metrics,omitempty"` } -func (x *IsisMetricsRequest) Reset() { - *x = IsisMetricsRequest{} +func (x *FlowMetricsRequest) Reset() { + *x = FlowMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[254] + mi := &file_otg_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisMetricsRequest) String() string { +func (x *FlowMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetricsRequest) ProtoMessage() {} +func (*FlowMetricsRequest) ProtoMessage() {} -func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[254] +func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39650,104 +39935,70 @@ func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetricsRequest.ProtoReflect.Descriptor instead. -func (*IsisMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254} +// Deprecated: Use FlowMetricsRequest.ProtoReflect.Descriptor instead. +func (*FlowMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{259} } -func (x *IsisMetricsRequest) GetRouterNames() []string { +func (x *FlowMetricsRequest) GetFlowNames() []string { if x != nil { - return x.RouterNames + return x.FlowNames } return nil } -func (x *IsisMetricsRequest) GetColumnNames() []IsisMetricsRequest_ColumnNames_Enum { +func (x *FlowMetricsRequest) GetMetricNames() []FlowMetricsRequest_MetricNames_Enum { if x != nil { - return x.ColumnNames + return x.MetricNames } return nil } -// ISIS per router statistics information. -type IsisMetric struct { +func (x *FlowMetricsRequest) GetTaggedMetrics() *FlowTaggedMetricsFilter { + if x != nil { + return x.TaggedMetrics + } + return nil +} + +// Filter for tagged metrics +type FlowTaggedMetricsFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured ISIS router. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The number of Level 1 (L1) sessions that are fully up. - L1SessionsUp *uint32 `protobuf:"varint,2,opt,name=l1_sessions_up,json=l1SessionsUp,proto3,oneof" json:"l1_sessions_up,omitempty"` - // The number of Level 1 Sessions Flap. - L1SessionFlap *uint64 `protobuf:"varint,3,opt,name=l1_session_flap,json=l1SessionFlap,proto3,oneof" json:"l1_session_flap,omitempty"` - // Number of Level 1 Hello messages sent. - L1BroadcastHellosSent *uint64 `protobuf:"varint,4,opt,name=l1_broadcast_hellos_sent,json=l1BroadcastHellosSent,proto3,oneof" json:"l1_broadcast_hellos_sent,omitempty"` - // Number of Level 1 Hello messages received. - L1BroadcastHellosReceived *uint64 `protobuf:"varint,5,opt,name=l1_broadcast_hellos_received,json=l1BroadcastHellosReceived,proto3,oneof" json:"l1_broadcast_hellos_received,omitempty"` - // Number of Level 1 Point-to-Point(P2P) Hello messages sent. - L1PointToPointHellosSent *uint64 `protobuf:"varint,6,opt,name=l1_point_to_point_hellos_sent,json=l1PointToPointHellosSent,proto3,oneof" json:"l1_point_to_point_hellos_sent,omitempty"` - // Number of Level 1 Point-to-Point(P2P) Hello messages received. - L1PointToPointHellosReceived *uint64 `protobuf:"varint,7,opt,name=l1_point_to_point_hellos_received,json=l1PointToPointHellosReceived,proto3,oneof" json:"l1_point_to_point_hellos_received,omitempty"` - // Number of Link State Updates (LSPs) in the Level 1 LSP Databases. - L1DatabaseSize *uint64 `protobuf:"varint,8,opt,name=l1_database_size,json=l1DatabaseSize,proto3,oneof" json:"l1_database_size,omitempty"` - // Number of Level 1 (L1) Partial Sequence Number Packet (PSNPs) sent. - L1PsnpSent *uint64 `protobuf:"varint,9,opt,name=l1_psnp_sent,json=l1PsnpSent,proto3,oneof" json:"l1_psnp_sent,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (PSNPs) received. - L1PsnpReceived *uint64 `protobuf:"varint,10,opt,name=l1_psnp_received,json=l1PsnpReceived,proto3,oneof" json:"l1_psnp_received,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) sent. - L1CsnpSent *uint64 `protobuf:"varint,11,opt,name=l1_csnp_sent,json=l1CsnpSent,proto3,oneof" json:"l1_csnp_sent,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) received. - L1CsnpReceived *uint64 `protobuf:"varint,12,opt,name=l1_csnp_received,json=l1CsnpReceived,proto3,oneof" json:"l1_csnp_received,omitempty"` - // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) sent. - L1LspSent *uint64 `protobuf:"varint,13,opt,name=l1_lsp_sent,json=l1LspSent,proto3,oneof" json:"l1_lsp_sent,omitempty"` - // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) received. - L1LspReceived *uint64 `protobuf:"varint,14,opt,name=l1_lsp_received,json=l1LspReceived,proto3,oneof" json:"l1_lsp_received,omitempty"` - // The number of Level 2 (L2) sessions that are fully up. - L2SessionsUp *uint32 `protobuf:"varint,15,opt,name=l2_sessions_up,json=l2SessionsUp,proto3,oneof" json:"l2_sessions_up,omitempty"` - // The number of Level 2 Sessions Flap. - L2SessionFlap *uint64 `protobuf:"varint,16,opt,name=l2_session_flap,json=l2SessionFlap,proto3,oneof" json:"l2_session_flap,omitempty"` - // Number of Level 2 Hello messages sent. - L2BroadcastHellosSent *uint64 `protobuf:"varint,17,opt,name=l2_broadcast_hellos_sent,json=l2BroadcastHellosSent,proto3,oneof" json:"l2_broadcast_hellos_sent,omitempty"` - // Number of Level 2 Hello messages received. - L2BroadcastHellosReceived *uint64 `protobuf:"varint,18,opt,name=l2_broadcast_hellos_received,json=l2BroadcastHellosReceived,proto3,oneof" json:"l2_broadcast_hellos_received,omitempty"` - // Number of Level 2 Point-to-Point(P2P) Hello messages sent. - L2PointToPointHellosSent *uint64 `protobuf:"varint,19,opt,name=l2_point_to_point_hellos_sent,json=l2PointToPointHellosSent,proto3,oneof" json:"l2_point_to_point_hellos_sent,omitempty"` - // Number of Level 2 Point-to-Point(P2P) Hello messages received. - L2PointToPointHellosReceived *uint64 `protobuf:"varint,20,opt,name=l2_point_to_point_hellos_received,json=l2PointToPointHellosReceived,proto3,oneof" json:"l2_point_to_point_hellos_received,omitempty"` - // Number of Link State Updates (LSPs) in the Level 2 LSP Databases. - L2DatabaseSize *uint64 `protobuf:"varint,21,opt,name=l2_database_size,json=l2DatabaseSize,proto3,oneof" json:"l2_database_size,omitempty"` - // Number of Level 2 (L2) Partial Sequence Number Packet (PSNPs) sent. - L2PsnpSent *uint64 `protobuf:"varint,22,opt,name=l2_psnp_sent,json=l2PsnpSent,proto3,oneof" json:"l2_psnp_sent,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (PSNPs) received. - L2PsnpReceived *uint64 `protobuf:"varint,23,opt,name=l2_psnp_received,json=l2PsnpReceived,proto3,oneof" json:"l2_psnp_received,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) sent. - L2CsnpSent *uint64 `protobuf:"varint,24,opt,name=l2_csnp_sent,json=l2CsnpSent,proto3,oneof" json:"l2_csnp_sent,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) received. - L2CsnpReceived *uint64 `protobuf:"varint,25,opt,name=l2_csnp_received,json=l2CsnpReceived,proto3,oneof" json:"l2_csnp_received,omitempty"` - // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) sent. - L2LspSent *uint64 `protobuf:"varint,26,opt,name=l2_lsp_sent,json=l2LspSent,proto3,oneof" json:"l2_lsp_sent,omitempty"` - // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) received. - L2LspReceived *uint64 `protobuf:"varint,27,opt,name=l2_lsp_received,json=l2LspReceived,proto3,oneof" json:"l2_lsp_received,omitempty"` + // Controls inclusion/exclusion of tagged metrics when fetching flow metrics. + // default = True + Include *bool `protobuf:"varint,1,opt,name=include,proto3,oneof" json:"include,omitempty"` + // Controls inclusion/exclusion of tagged metrics where each underlying attributes has + // zero value or absent value. + // default = False + IncludeEmptyMetrics *bool `protobuf:"varint,2,opt,name=include_empty_metrics,json=includeEmptyMetrics,proto3,oneof" json:"include_empty_metrics,omitempty"` + // The list of metric names that the returned result set will contain. If the list is + // empty then all metrics will be returned. + MetricNames []FlowTaggedMetricsFilter_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowTaggedMetricsFilter_MetricNames_Enum" json:"metric_names,omitempty"` + // List of filters to selectively fetch tagged metrics with certain tag and corresponding + // value. + Filters []*FlowMetricTagFilter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"` } -func (x *IsisMetric) Reset() { - *x = IsisMetric{} +func (x *FlowTaggedMetricsFilter) Reset() { + *x = FlowTaggedMetricsFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[255] + mi := &file_otg_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisMetric) String() string { +func (x *FlowTaggedMetricsFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetric) ProtoMessage() {} +func (*FlowTaggedMetricsFilter) ProtoMessage() {} -func (x *IsisMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[255] +func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39758,237 +40009,71 @@ func (x *IsisMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetric.ProtoReflect.Descriptor instead. -func (*IsisMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{255} -} - -func (x *IsisMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *IsisMetric) GetL1SessionsUp() uint32 { - if x != nil && x.L1SessionsUp != nil { - return *x.L1SessionsUp - } - return 0 -} - -func (x *IsisMetric) GetL1SessionFlap() uint64 { - if x != nil && x.L1SessionFlap != nil { - return *x.L1SessionFlap - } - return 0 -} - -func (x *IsisMetric) GetL1BroadcastHellosSent() uint64 { - if x != nil && x.L1BroadcastHellosSent != nil { - return *x.L1BroadcastHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL1BroadcastHellosReceived() uint64 { - if x != nil && x.L1BroadcastHellosReceived != nil { - return *x.L1BroadcastHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL1PointToPointHellosSent() uint64 { - if x != nil && x.L1PointToPointHellosSent != nil { - return *x.L1PointToPointHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL1PointToPointHellosReceived() uint64 { - if x != nil && x.L1PointToPointHellosReceived != nil { - return *x.L1PointToPointHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL1DatabaseSize() uint64 { - if x != nil && x.L1DatabaseSize != nil { - return *x.L1DatabaseSize - } - return 0 -} - -func (x *IsisMetric) GetL1PsnpSent() uint64 { - if x != nil && x.L1PsnpSent != nil { - return *x.L1PsnpSent - } - return 0 -} - -func (x *IsisMetric) GetL1PsnpReceived() uint64 { - if x != nil && x.L1PsnpReceived != nil { - return *x.L1PsnpReceived - } - return 0 -} - -func (x *IsisMetric) GetL1CsnpSent() uint64 { - if x != nil && x.L1CsnpSent != nil { - return *x.L1CsnpSent - } - return 0 -} - -func (x *IsisMetric) GetL1CsnpReceived() uint64 { - if x != nil && x.L1CsnpReceived != nil { - return *x.L1CsnpReceived - } - return 0 -} - -func (x *IsisMetric) GetL1LspSent() uint64 { - if x != nil && x.L1LspSent != nil { - return *x.L1LspSent - } - return 0 -} - -func (x *IsisMetric) GetL1LspReceived() uint64 { - if x != nil && x.L1LspReceived != nil { - return *x.L1LspReceived - } - return 0 -} - -func (x *IsisMetric) GetL2SessionsUp() uint32 { - if x != nil && x.L2SessionsUp != nil { - return *x.L2SessionsUp - } - return 0 -} - -func (x *IsisMetric) GetL2SessionFlap() uint64 { - if x != nil && x.L2SessionFlap != nil { - return *x.L2SessionFlap - } - return 0 -} - -func (x *IsisMetric) GetL2BroadcastHellosSent() uint64 { - if x != nil && x.L2BroadcastHellosSent != nil { - return *x.L2BroadcastHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL2BroadcastHellosReceived() uint64 { - if x != nil && x.L2BroadcastHellosReceived != nil { - return *x.L2BroadcastHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL2PointToPointHellosSent() uint64 { - if x != nil && x.L2PointToPointHellosSent != nil { - return *x.L2PointToPointHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL2PointToPointHellosReceived() uint64 { - if x != nil && x.L2PointToPointHellosReceived != nil { - return *x.L2PointToPointHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL2DatabaseSize() uint64 { - if x != nil && x.L2DatabaseSize != nil { - return *x.L2DatabaseSize - } - return 0 -} - -func (x *IsisMetric) GetL2PsnpSent() uint64 { - if x != nil && x.L2PsnpSent != nil { - return *x.L2PsnpSent - } - return 0 -} - -func (x *IsisMetric) GetL2PsnpReceived() uint64 { - if x != nil && x.L2PsnpReceived != nil { - return *x.L2PsnpReceived - } - return 0 +// Deprecated: Use FlowTaggedMetricsFilter.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetricsFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{260} } -func (x *IsisMetric) GetL2CsnpSent() uint64 { - if x != nil && x.L2CsnpSent != nil { - return *x.L2CsnpSent +func (x *FlowTaggedMetricsFilter) GetInclude() bool { + if x != nil && x.Include != nil { + return *x.Include } - return 0 + return false } -func (x *IsisMetric) GetL2CsnpReceived() uint64 { - if x != nil && x.L2CsnpReceived != nil { - return *x.L2CsnpReceived +func (x *FlowTaggedMetricsFilter) GetIncludeEmptyMetrics() bool { + if x != nil && x.IncludeEmptyMetrics != nil { + return *x.IncludeEmptyMetrics } - return 0 + return false } -func (x *IsisMetric) GetL2LspSent() uint64 { - if x != nil && x.L2LspSent != nil { - return *x.L2LspSent +func (x *FlowTaggedMetricsFilter) GetMetricNames() []FlowTaggedMetricsFilter_MetricNames_Enum { + if x != nil { + return x.MetricNames } - return 0 + return nil } -func (x *IsisMetric) GetL2LspReceived() uint64 { - if x != nil && x.L2LspReceived != nil { - return *x.L2LspReceived +func (x *FlowTaggedMetricsFilter) GetFilters() []*FlowMetricTagFilter { + if x != nil { + return x.Filters } - return 0 + return nil } -// The request to retrieve per LAG metrics/statistics. -type LagMetricsRequest struct { +// A container for filtering ingress and/or egress metric tags. +// The Tx stats may not be applicable in both the request and response filter. +type FlowMetricTagFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAGs to return results for. An empty list will return results for all - // LAGs. - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name - LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of the LAG cannot be excluded. - ColumnNames []LagMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LagMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // A metric tag name that MUST exist in a flow packet or + // flow egress_packet configuration + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // A list of filters that can be applied to the metric tag name. + // By default all values will be included in the flow metric results. + Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` } -func (x *LagMetricsRequest) Reset() { - *x = LagMetricsRequest{} +func (x *FlowMetricTagFilter) Reset() { + *x = FlowMetricTagFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[256] + mi := &file_otg_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetricsRequest) String() string { +func (x *FlowMetricTagFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetricsRequest) ProtoMessage() {} +func (*FlowMetricTagFilter) ProtoMessage() {} -func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[256] +func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39999,79 +40084,82 @@ func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetricsRequest.ProtoReflect.Descriptor instead. -func (*LagMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256} +// Deprecated: Use FlowMetricTagFilter.ProtoReflect.Descriptor instead. +func (*FlowMetricTagFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{261} } -func (x *LagMetricsRequest) GetLagNames() []string { - if x != nil { - return x.LagNames +func (x *FlowMetricTagFilter) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *LagMetricsRequest) GetColumnNames() []LagMetricsRequest_ColumnNames_Enum { +func (x *FlowMetricTagFilter) GetValues() []string { if x != nil { - return x.ColumnNames + return x.Values } return nil } -// Description missing in models -type LagMetric struct { +// A container for flow metrics. +// The container is keyed by the name, port_tx and port_rx. +type FlowMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured LAG - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name + // The name of the flow Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The current operational state of the LAG. The state can be up or down. State 'up' - // indicates member_ports_up >= min_links. - OperStatus *LagMetric_OperStatus_Enum `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,enum=otg.LagMetric_OperStatus_Enum,oneof" json:"oper_status,omitempty"` - // The number of LAG member ports up. - MemberPortsUp *uint32 `protobuf:"varint,3,opt,name=member_ports_up,json=memberPortsUp,proto3,oneof" json:"member_ports_up,omitempty"` - // The current total number of frames transmitted. - FramesTx *uint64 `protobuf:"varint,4,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received. - FramesRx *uint64 `protobuf:"varint,5,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted. - BytesTx *uint64 `protobuf:"varint,6,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of valid bytes received. - BytesRx *uint64 `protobuf:"varint,7,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted. - FramesTxRate *float32 `protobuf:"fixed32,8,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received. - FramesRxRate *float32 `protobuf:"fixed32,9,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The current rate of bytes transmitted. - BytesTxRate *float32 `protobuf:"fixed32,10,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` - // The current rate of bytes received. - BytesRxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` + // The name of the transmit port + PortTx *string `protobuf:"bytes,2,opt,name=port_tx,json=portTx,proto3,oneof" json:"port_tx,omitempty"` + // The name of the receive port + PortRx *string `protobuf:"bytes,3,opt,name=port_rx,json=portRx,proto3,oneof" json:"port_rx,omitempty"` + // The transmit state of the flow. + Transmit *FlowMetric_Transmit_Enum `protobuf:"varint,5,opt,name=transmit,proto3,enum=otg.FlowMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,6,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,7,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,8,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of bytes received + BytesRx *uint64 `protobuf:"varint,9,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,10,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,11,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The percentage of lost frames + Loss *float32 `protobuf:"fixed32,12,opt,name=loss,proto3,oneof" json:"loss,omitempty"` + // Description missing in models + Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + // Description missing in models + Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3,oneof" json:"latency,omitempty"` + // List of metrics corresponding to a set of values applicable + // for configured metric tags in ingress or egress packet header fields of corresponding + // flow. + // The container is keyed by list of tag-value pairs. + TaggedMetrics []*FlowTaggedMetric `protobuf:"bytes,15,rep,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` } -func (x *LagMetric) Reset() { - *x = LagMetric{} +func (x *FlowMetric) Reset() { + *x = FlowMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[257] + mi := &file_otg_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetric) String() string { +func (x *FlowMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetric) ProtoMessage() {} +func (*FlowMetric) ProtoMessage() {} -func (x *LagMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[257] +func (x *FlowMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[262] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40082,135 +40170,156 @@ func (x *LagMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetric.ProtoReflect.Descriptor instead. -func (*LagMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{257} +// Deprecated: Use FlowMetric.ProtoReflect.Descriptor instead. +func (*FlowMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{262} } -func (x *LagMetric) GetName() string { +func (x *FlowMetric) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *LagMetric) GetOperStatus() LagMetric_OperStatus_Enum { - if x != nil && x.OperStatus != nil { - return *x.OperStatus +func (x *FlowMetric) GetPortTx() string { + if x != nil && x.PortTx != nil { + return *x.PortTx } - return LagMetric_OperStatus_unspecified + return "" } -func (x *LagMetric) GetMemberPortsUp() uint32 { - if x != nil && x.MemberPortsUp != nil { - return *x.MemberPortsUp +func (x *FlowMetric) GetPortRx() string { + if x != nil && x.PortRx != nil { + return *x.PortRx } - return 0 + return "" } -func (x *LagMetric) GetFramesTx() uint64 { +func (x *FlowMetric) GetTransmit() FlowMetric_Transmit_Enum { + if x != nil && x.Transmit != nil { + return *x.Transmit + } + return FlowMetric_Transmit_unspecified +} + +func (x *FlowMetric) GetFramesTx() uint64 { if x != nil && x.FramesTx != nil { return *x.FramesTx } return 0 } -func (x *LagMetric) GetFramesRx() uint64 { +func (x *FlowMetric) GetFramesRx() uint64 { if x != nil && x.FramesRx != nil { return *x.FramesRx } return 0 } -func (x *LagMetric) GetBytesTx() uint64 { +func (x *FlowMetric) GetBytesTx() uint64 { if x != nil && x.BytesTx != nil { return *x.BytesTx } return 0 } -func (x *LagMetric) GetBytesRx() uint64 { +func (x *FlowMetric) GetBytesRx() uint64 { if x != nil && x.BytesRx != nil { return *x.BytesRx } return 0 } -func (x *LagMetric) GetFramesTxRate() float32 { +func (x *FlowMetric) GetFramesTxRate() float32 { if x != nil && x.FramesTxRate != nil { return *x.FramesTxRate } return 0 } -func (x *LagMetric) GetFramesRxRate() float32 { +func (x *FlowMetric) GetFramesRxRate() float32 { if x != nil && x.FramesRxRate != nil { return *x.FramesRxRate } return 0 } -func (x *LagMetric) GetBytesTxRate() float32 { - if x != nil && x.BytesTxRate != nil { - return *x.BytesTxRate +func (x *FlowMetric) GetLoss() float32 { + if x != nil && x.Loss != nil { + return *x.Loss } return 0 } -func (x *LagMetric) GetBytesRxRate() float32 { - if x != nil && x.BytesRxRate != nil { - return *x.BytesRxRate +func (x *FlowMetric) GetTimestamps() *MetricTimestamp { + if x != nil { + return x.Timestamps } - return 0 + return nil } -// The request to retrieve LACP per LAG member metrics/statistics. -type LacpMetricsRequest struct { +func (x *FlowMetric) GetLatency() *MetricLatency { + if x != nil { + return x.Latency + } + return nil +} + +func (x *FlowMetric) GetTaggedMetrics() []*FlowTaggedMetric { + if x != nil { + return x.TaggedMetrics + } + return nil +} + +// Metrics for each set of values applicable for configured +// metric tags in ingress or egress packet header fields of corresponding flow. +// The container is keyed by list of tag-value pairs. +type FlowTaggedMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAG (ports group) for which LACP metrics to be returned. An empty list - // will return metrics for all LAGs. - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name - LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` - // The names of LAG members (ports) for which LACP metrics to be returned. An empty - // list will return metrics for all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - LagMemberPortNames []string `protobuf:"bytes,2,rep,name=lag_member_port_names,json=lagMemberPortNames,proto3" json:"lag_member_port_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of LAG and LAG member can not be - // excluded. - ColumnNames []LacpMetricsRequest_ColumnNames_Enum `protobuf:"varint,3,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LacpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // List of tag and value pairs + Tags []*FlowMetricTag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,2,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,3,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,4,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of bytes received + BytesRx *uint64 `protobuf:"varint,5,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,6,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,7,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The percentage of lost frames + Loss *float32 `protobuf:"fixed32,8,opt,name=loss,proto3,oneof" json:"loss,omitempty"` + // Description missing in models + Timestamps *MetricTimestamp `protobuf:"bytes,9,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + // Description missing in models + Latency *MetricLatency `protobuf:"bytes,10,opt,name=latency,proto3,oneof" json:"latency,omitempty"` } -func (x *LacpMetricsRequest) Reset() { - *x = LacpMetricsRequest{} +func (x *FlowTaggedMetric) Reset() { + *x = FlowTaggedMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[258] + mi := &file_otg_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetricsRequest) String() string { +func (x *FlowTaggedMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetricsRequest) ProtoMessage() {} +func (*FlowTaggedMetric) ProtoMessage() {} -func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[258] +func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[263] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40221,94 +40330,110 @@ func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetricsRequest.ProtoReflect.Descriptor instead. -func (*LacpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{258} +// Deprecated: Use FlowTaggedMetric.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{263} } -func (x *LacpMetricsRequest) GetLagNames() []string { +func (x *FlowTaggedMetric) GetTags() []*FlowMetricTag { if x != nil { - return x.LagNames + return x.Tags } return nil } -func (x *LacpMetricsRequest) GetLagMemberPortNames() []string { +func (x *FlowTaggedMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx + } + return 0 +} + +func (x *FlowTaggedMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx + } + return 0 +} + +func (x *FlowTaggedMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx + } + return 0 +} + +func (x *FlowTaggedMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx + } + return 0 +} + +func (x *FlowTaggedMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate + } + return 0 +} + +func (x *FlowTaggedMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate + } + return 0 +} + +func (x *FlowTaggedMetric) GetLoss() float32 { + if x != nil && x.Loss != nil { + return *x.Loss + } + return 0 +} + +func (x *FlowTaggedMetric) GetTimestamps() *MetricTimestamp { if x != nil { - return x.LagMemberPortNames + return x.Timestamps } return nil } -func (x *LacpMetricsRequest) GetColumnNames() []LacpMetricsRequest_ColumnNames_Enum { +func (x *FlowTaggedMetric) GetLatency() *MetricLatency { if x != nil { - return x.ColumnNames + return x.Latency } return nil } -// LACP metrics (statistics) per LAG member. -type LacpMetric struct { +// Description missing in models +type FlowMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a LAG (ports group) configured with LACP. - LagName *string `protobuf:"bytes,1,opt,name=lag_name,json=lagName,proto3,oneof" json:"lag_name,omitempty"` - // The name of a LAG member (port) configured with LACP. - LagMemberPortName *string `protobuf:"bytes,2,opt,name=lag_member_port_name,json=lagMemberPortName,proto3,oneof" json:"lag_member_port_name,omitempty"` - // Number of LACPDUs received. - LacpPacketsRx *uint64 `protobuf:"varint,3,opt,name=lacp_packets_rx,json=lacpPacketsRx,proto3,oneof" json:"lacp_packets_rx,omitempty"` - // Number of LACPDUs transmitted. - LacpPacketsTx *uint64 `protobuf:"varint,4,opt,name=lacp_packets_tx,json=lacpPacketsTx,proto3,oneof" json:"lacp_packets_tx,omitempty"` - // Number of LACPDUs receive packet errors. - LacpRxErrors *uint64 `protobuf:"varint,5,opt,name=lacp_rx_errors,json=lacpRxErrors,proto3,oneof" json:"lacp_rx_errors,omitempty"` - // Indicates participant is active or passive. - Activity *LacpMetric_Activity_Enum `protobuf:"varint,6,opt,name=activity,proto3,enum=otg.LacpMetric_Activity_Enum,oneof" json:"activity,omitempty"` - // The timeout type (short or long) used by the participant. - Timeout *LacpMetric_Timeout_Enum `protobuf:"varint,7,opt,name=timeout,proto3,enum=otg.LacpMetric_Timeout_Enum,oneof" json:"timeout,omitempty"` - // Indicates whether the participant is in-sync or out-of-sync. - Synchronization *LacpMetric_Synchronization_Enum `protobuf:"varint,8,opt,name=synchronization,proto3,enum=otg.LacpMetric_Synchronization_Enum,oneof" json:"synchronization,omitempty"` - // A true value indicates that the participant will allow the link to be used as part - // of the aggregate. A false value indicates the link should be used as an individual - // link. - Aggregatable *bool `protobuf:"varint,9,opt,name=aggregatable,proto3,oneof" json:"aggregatable,omitempty"` - // If true, the participant is collecting incoming frames on the link, otherwise false. - Collecting *bool `protobuf:"varint,10,opt,name=collecting,proto3,oneof" json:"collecting,omitempty"` - // When true, the participant is distributing outgoing frames; when false, distribution - // is disabled. - Distributing *bool `protobuf:"varint,11,opt,name=distributing,proto3,oneof" json:"distributing,omitempty"` - // MAC address that defines the local system ID for the aggregate interface. - SystemId *string `protobuf:"bytes,12,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` - // Current operational value of the key for the aggregate interface. - OperKey *uint32 `protobuf:"varint,13,opt,name=oper_key,json=operKey,proto3,oneof" json:"oper_key,omitempty"` - // MAC address representing the protocol partner's interface system ID. - PartnerId *string `protobuf:"bytes,14,opt,name=partner_id,json=partnerId,proto3,oneof" json:"partner_id,omitempty"` - // Operational value of the protocol partner's key. - PartnerKey *uint32 `protobuf:"varint,15,opt,name=partner_key,json=partnerKey,proto3,oneof" json:"partner_key,omitempty"` - // Port number of the local (actor) aggregation member. - PortNum *uint32 `protobuf:"varint,16,opt,name=port_num,json=portNum,proto3,oneof" json:"port_num,omitempty"` - // Port number of the partner (remote) port for this member port. - PartnerPortNum *uint32 `protobuf:"varint,17,opt,name=partner_port_num,json=partnerPortNum,proto3,oneof" json:"partner_port_num,omitempty"` + // Name of packet field metric tag + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Description missing in models + Value *FlowMetricTagValue `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *LacpMetric) Reset() { - *x = LacpMetric{} +func (x *FlowMetricTag) Reset() { + *x = FlowMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[259] + mi := &file_otg_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric) String() string { +func (x *FlowMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric) ProtoMessage() {} +func (*FlowMetricTag) ProtoMessage() {} -func (x *LacpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[259] +func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[264] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40319,167 +40444,124 @@ func (x *LacpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric.ProtoReflect.Descriptor instead. -func (*LacpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259} -} - -func (x *LacpMetric) GetLagName() string { - if x != nil && x.LagName != nil { - return *x.LagName - } - return "" +// Deprecated: Use FlowMetricTag.ProtoReflect.Descriptor instead. +func (*FlowMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{264} } -func (x *LacpMetric) GetLagMemberPortName() string { - if x != nil && x.LagMemberPortName != nil { - return *x.LagMemberPortName +func (x *FlowMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *LacpMetric) GetLacpPacketsRx() uint64 { - if x != nil && x.LacpPacketsRx != nil { - return *x.LacpPacketsRx +func (x *FlowMetricTag) GetValue() *FlowMetricTagValue { + if x != nil { + return x.Value } - return 0 + return nil } -func (x *LacpMetric) GetLacpPacketsTx() uint64 { - if x != nil && x.LacpPacketsTx != nil { - return *x.LacpPacketsTx - } - return 0 -} +// A container for metric tag value +type FlowMetricTagValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *LacpMetric) GetLacpRxErrors() uint64 { - if x != nil && x.LacpRxErrors != nil { - return *x.LacpRxErrors - } - return 0 + // Available formats for metric tag value + // default = Choice.Enum.hex + Choice *FlowMetricTagValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowMetricTagValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Value represented in hexadecimal format + Hex *string `protobuf:"bytes,2,opt,name=hex,proto3,oneof" json:"hex,omitempty"` + // Value represented in string format + Str *string `protobuf:"bytes,3,opt,name=str,proto3,oneof" json:"str,omitempty"` } -func (x *LacpMetric) GetActivity() LacpMetric_Activity_Enum { - if x != nil && x.Activity != nil { - return *x.Activity +func (x *FlowMetricTagValue) Reset() { + *x = FlowMetricTagValue{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[265] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return LacpMetric_Activity_unspecified } -func (x *LacpMetric) GetTimeout() LacpMetric_Timeout_Enum { - if x != nil && x.Timeout != nil { - return *x.Timeout - } - return LacpMetric_Timeout_unspecified +func (x *FlowMetricTagValue) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *LacpMetric) GetSynchronization() LacpMetric_Synchronization_Enum { - if x != nil && x.Synchronization != nil { - return *x.Synchronization - } - return LacpMetric_Synchronization_unspecified -} +func (*FlowMetricTagValue) ProtoMessage() {} -func (x *LacpMetric) GetAggregatable() bool { - if x != nil && x.Aggregatable != nil { - return *x.Aggregatable +func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[265] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *LacpMetric) GetCollecting() bool { - if x != nil && x.Collecting != nil { - return *x.Collecting - } - return false +// Deprecated: Use FlowMetricTagValue.ProtoReflect.Descriptor instead. +func (*FlowMetricTagValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{265} } -func (x *LacpMetric) GetDistributing() bool { - if x != nil && x.Distributing != nil { - return *x.Distributing +func (x *FlowMetricTagValue) GetChoice() FlowMetricTagValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return FlowMetricTagValue_Choice_unspecified } -func (x *LacpMetric) GetSystemId() string { - if x != nil && x.SystemId != nil { - return *x.SystemId +func (x *FlowMetricTagValue) GetHex() string { + if x != nil && x.Hex != nil { + return *x.Hex } return "" } -func (x *LacpMetric) GetOperKey() uint32 { - if x != nil && x.OperKey != nil { - return *x.OperKey - } - return 0 -} - -func (x *LacpMetric) GetPartnerId() string { - if x != nil && x.PartnerId != nil { - return *x.PartnerId +func (x *FlowMetricTagValue) GetStr() string { + if x != nil && x.Str != nil { + return *x.Str } return "" } -func (x *LacpMetric) GetPartnerKey() uint32 { - if x != nil && x.PartnerKey != nil { - return *x.PartnerKey - } - return 0 -} - -func (x *LacpMetric) GetPortNum() uint32 { - if x != nil && x.PortNum != nil { - return *x.PortNum - } - return 0 -} - -func (x *LacpMetric) GetPartnerPortNum() uint32 { - if x != nil && x.PartnerPortNum != nil { - return *x.PartnerPortNum - } - return 0 -} - -// The request to retrieve LLDP per instance metrics/statistics. -type LldpMetricsRequest struct { +// The container for timestamp metrics. +// The container will be empty if the timestamp has not been configured for +// the flow. +type MetricTimestamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LLDP instances to return results for. An empty list will return results - // for all LLDP instances. - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` - // The requested list of column names for the result set. If the list is empty then - // metrics for all columns will be returned. The name of LLDP instance can not be excluded. - ColumnNames []LldpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LldpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // First timestamp in nanoseconds + FirstTimestampNs *float64 `protobuf:"fixed64,1,opt,name=first_timestamp_ns,json=firstTimestampNs,proto3,oneof" json:"first_timestamp_ns,omitempty"` + // Last timestamp in nanoseconds + LastTimestampNs *float64 `protobuf:"fixed64,2,opt,name=last_timestamp_ns,json=lastTimestampNs,proto3,oneof" json:"last_timestamp_ns,omitempty"` } -func (x *LldpMetricsRequest) Reset() { - *x = LldpMetricsRequest{} +func (x *MetricTimestamp) Reset() { + *x = MetricTimestamp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[260] + mi := &file_otg_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetricsRequest) String() string { +func (x *MetricTimestamp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetricsRequest) ProtoMessage() {} +func (*MetricTimestamp) ProtoMessage() {} -func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[260] +func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40490,74 +40572,60 @@ func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetricsRequest.ProtoReflect.Descriptor instead. -func (*LldpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260} +// Deprecated: Use MetricTimestamp.ProtoReflect.Descriptor instead. +func (*MetricTimestamp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{266} } -func (x *LldpMetricsRequest) GetLldpNames() []string { - if x != nil { - return x.LldpNames +func (x *MetricTimestamp) GetFirstTimestampNs() float64 { + if x != nil && x.FirstTimestampNs != nil { + return *x.FirstTimestampNs } - return nil + return 0 } -func (x *LldpMetricsRequest) GetColumnNames() []LldpMetricsRequest_ColumnNames_Enum { - if x != nil { - return x.ColumnNames +func (x *MetricTimestamp) GetLastTimestampNs() float64 { + if x != nil && x.LastTimestampNs != nil { + return *x.LastTimestampNs } - return nil + return 0 } -// LLDP per instance statistics information. -type LldpMetric struct { +// The container for latency metrics. +// The min/max/avg values are dependent on the type of latency measurement +// mode that is configured. +// The container will be empty if the latency has not been configured for +// the flow. +type MetricLatency struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the configured LLDP instance. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Number of LLDP frames received. - FramesRx *uint64 `protobuf:"varint,2,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // Number of LLDP frames transmitted. - FramesTx *uint64 `protobuf:"varint,3,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // Number of LLDP frames received with packet errors. This stat should be incremented - // based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 - // AB-2005. - FramesErrorRx *uint64 `protobuf:"varint,4,opt,name=frames_error_rx,json=framesErrorRx,proto3,oneof" json:"frames_error_rx,omitempty"` - // Number of LLDP frames received that are discarded. This stat should be incremented - // when one or more of the three mandatory TLVs at the beginning of the LLDPDU is missing, - // out of order or contains an out of range information string length. This stat should - // follow the validation rules in section 10.3.2 of IEEE Std 802.1 AB-2005. - FramesDiscard *uint64 `protobuf:"varint,5,opt,name=frames_discard,json=framesDiscard,proto3,oneof" json:"frames_discard,omitempty"` - // Number of LLDP tlvs received that are discarded. If any TLV contains an error condition - // specific for that particular TLV or if any TLV extends past the physical end of - // the frame then these TLVs will be discarded. - TlvsDiscard *uint64 `protobuf:"varint,6,opt,name=tlvs_discard,json=tlvsDiscard,proto3,oneof" json:"tlvs_discard,omitempty"` - // Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific - // TLV and/or organizationally defined subtype are not recognized,or if TLV type value - // is in the range of reserved TLV types then these TLVs will be considered as unknown - // TLVs. - TlvsUnknown *uint64 `protobuf:"varint,7,opt,name=tlvs_unknown,json=tlvsUnknown,proto3,oneof" json:"tlvs_unknown,omitempty"` + // Minimum latency in nanoseconds + MinimumNs *float64 `protobuf:"fixed64,1,opt,name=minimum_ns,json=minimumNs,proto3,oneof" json:"minimum_ns,omitempty"` + // Maximum latency in nanoseconds + MaximumNs *float64 `protobuf:"fixed64,2,opt,name=maximum_ns,json=maximumNs,proto3,oneof" json:"maximum_ns,omitempty"` + // Average latency in nanoseconds + AverageNs *float64 `protobuf:"fixed64,3,opt,name=average_ns,json=averageNs,proto3,oneof" json:"average_ns,omitempty"` } -func (x *LldpMetric) Reset() { - *x = LldpMetric{} +func (x *MetricLatency) Reset() { + *x = MetricLatency{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[261] + mi := &file_otg_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetric) String() string { +func (x *MetricLatency) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetric) ProtoMessage() {} +func (*MetricLatency) ProtoMessage() {} -func (x *LldpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[261] +func (x *MetricLatency) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[267] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40568,97 +40636,70 @@ func (x *LldpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetric.ProtoReflect.Descriptor instead. -func (*LldpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{261} -} - -func (x *LldpMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *LldpMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 -} - -func (x *LldpMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx - } - return 0 -} - -func (x *LldpMetric) GetFramesErrorRx() uint64 { - if x != nil && x.FramesErrorRx != nil { - return *x.FramesErrorRx - } - return 0 +// Deprecated: Use MetricLatency.ProtoReflect.Descriptor instead. +func (*MetricLatency) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{267} } -func (x *LldpMetric) GetFramesDiscard() uint64 { - if x != nil && x.FramesDiscard != nil { - return *x.FramesDiscard +func (x *MetricLatency) GetMinimumNs() float64 { + if x != nil && x.MinimumNs != nil { + return *x.MinimumNs } return 0 } -func (x *LldpMetric) GetTlvsDiscard() uint64 { - if x != nil && x.TlvsDiscard != nil { - return *x.TlvsDiscard +func (x *MetricLatency) GetMaximumNs() float64 { + if x != nil && x.MaximumNs != nil { + return *x.MaximumNs } return 0 } -func (x *LldpMetric) GetTlvsUnknown() uint64 { - if x != nil && x.TlvsUnknown != nil { - return *x.TlvsUnknown +func (x *MetricLatency) GetAverageNs() float64 { + if x != nil && x.AverageNs != nil { + return *x.AverageNs } return 0 } -// The request to retrieve RSVP-TE per Router metrics/statistics. -type RsvpMetricsRequest struct { +// The request to retrieve BGPv4 per peer metrics/statistics. +type Bgpv4MetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of RSVP-TE Routers to return results for. An empty list as input will return - // results for all RSVP-TE routers. + // The names of BGPv4 peers to return results for. An empty list will return results + // for all BGPv4 peers. // // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name + // - /components/schemas/Bgp.V4peer/properties/name // // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` - // The list of column names that the returned result set will contain. If the input - // list is empty then all columns will be returned except for any result_groups. - ColumnNames []RsvpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.RsvpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Bgp.V4peer/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the BGPv4 peer cannot be excluded. + ColumnNames []Bgpv4MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv4MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *RsvpMetricsRequest) Reset() { - *x = RsvpMetricsRequest{} +func (x *Bgpv4MetricsRequest) Reset() { + *x = Bgpv4MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[262] + mi := &file_otg_proto_msgTypes[268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpMetricsRequest) String() string { +func (x *Bgpv4MetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetricsRequest) ProtoMessage() {} +func (*Bgpv4MetricsRequest) ProtoMessage() {} -func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[262] +func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[268] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40669,119 +40710,99 @@ func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetricsRequest.ProtoReflect.Descriptor instead. -func (*RsvpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262} +// Deprecated: Use Bgpv4MetricsRequest.ProtoReflect.Descriptor instead. +func (*Bgpv4MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{268} } -func (x *RsvpMetricsRequest) GetRouterNames() []string { +func (x *Bgpv4MetricsRequest) GetPeerNames() []string { if x != nil { - return x.RouterNames + return x.PeerNames } return nil } -func (x *RsvpMetricsRequest) GetColumnNames() []RsvpMetricsRequest_ColumnNames_Enum { +func (x *Bgpv4MetricsRequest) GetColumnNames() []Bgpv4MetricsRequest_ColumnNames_Enum { if x != nil { return x.ColumnNames } return nil } -// RSVP-TE per router statistics information. -type RsvpMetric struct { +// BGPv4 per peer statistics information. +type Bgpv4Metric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured RSVP router. + // The name of a configured BGPv4 peer. Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The number of ingress point-to-point LSPs configured or transiting through the RSVP - // router which have been initated from the test port. - IngressP2PLspsConfigured *uint32 `protobuf:"varint,2,opt,name=ingress_p2p_lsps_configured,json=ingressP2pLspsConfigured,proto3,oneof" json:"ingress_p2p_lsps_configured,omitempty"` - // The number of ingress point-to-point LSPs for which Resv has been received and is - // currently up. - IngressP2PLspsUp *uint32 `protobuf:"varint,3,opt,name=ingress_p2p_lsps_up,json=ingressP2pLspsUp,proto3,oneof" json:"ingress_p2p_lsps_up,omitempty"` - // The number of egress point-to-point LSPs for which Path requests were successfully - // processed and is currently up. - EgressP2PLspsUp *uint32 `protobuf:"varint,4,opt,name=egress_p2p_lsps_up,json=egressP2pLspsUp,proto3,oneof" json:"egress_p2p_lsps_up,omitempty"` - // The number of times an LSP went from up to down state either because it timed out - // while waiting for Refreshes or a PathTear or ResvTear message was received which - // caused the LSP to flap. - LspFlapCount *uint64 `protobuf:"varint,5,opt,name=lsp_flap_count,json=lspFlapCount,proto3,oneof" json:"lsp_flap_count,omitempty"` - // The number of Path messages sent by this RSVP router. - PathsTx *uint64 `protobuf:"varint,6,opt,name=paths_tx,json=pathsTx,proto3,oneof" json:"paths_tx,omitempty"` - // The number of Path messages received by this RSVP router. - PathsRx *uint64 `protobuf:"varint,7,opt,name=paths_rx,json=pathsRx,proto3,oneof" json:"paths_rx,omitempty"` - // The number of Resv messages sent by this RSVP router. - ResvsTx *uint64 `protobuf:"varint,8,opt,name=resvs_tx,json=resvsTx,proto3,oneof" json:"resvs_tx,omitempty"` - // The number of Resv messages received by this RSVP router. - ResvsRx *uint64 `protobuf:"varint,9,opt,name=resvs_rx,json=resvsRx,proto3,oneof" json:"resvs_rx,omitempty"` - // The number of Path Tear messages sent by this RSVP router. - PathTearsTx *uint64 `protobuf:"varint,10,opt,name=path_tears_tx,json=pathTearsTx,proto3,oneof" json:"path_tears_tx,omitempty"` - // The number of Path Tear messages received by this RSVP router. - PathTearsRx *uint64 `protobuf:"varint,11,opt,name=path_tears_rx,json=pathTearsRx,proto3,oneof" json:"path_tears_rx,omitempty"` - // The number of Resv Tear messages sent by this RSVP router. - ResvTearsTx *uint64 `protobuf:"varint,12,opt,name=resv_tears_tx,json=resvTearsTx,proto3,oneof" json:"resv_tears_tx,omitempty"` - // The number of Resv Tear messages received by this RSVP router. - ResvTearsRx *uint64 `protobuf:"varint,13,opt,name=resv_tears_rx,json=resvTearsRx,proto3,oneof" json:"resv_tears_rx,omitempty"` - // The number of Path Error messages sent by this RSVP router. - PathErrorsTx *uint64 `protobuf:"varint,14,opt,name=path_errors_tx,json=pathErrorsTx,proto3,oneof" json:"path_errors_tx,omitempty"` - // The number of Path Error messages received by this RSVP router. - PathErrorsRx *uint64 `protobuf:"varint,15,opt,name=path_errors_rx,json=pathErrorsRx,proto3,oneof" json:"path_errors_rx,omitempty"` - // The number of Resv Error messages sent by this RSVP router. - ResvErrorsTx *uint64 `protobuf:"varint,16,opt,name=resv_errors_tx,json=resvErrorsTx,proto3,oneof" json:"resv_errors_tx,omitempty"` - // The number of Resv Error messages received by this RSVP router. - ResvErrorsRx *uint64 `protobuf:"varint,17,opt,name=resv_errors_rx,json=resvErrorsRx,proto3,oneof" json:"resv_errors_rx,omitempty"` - // The number of ResvConf messages sent by this RSVP router. - ResvConfTx *uint64 `protobuf:"varint,18,opt,name=resv_conf_tx,json=resvConfTx,proto3,oneof" json:"resv_conf_tx,omitempty"` - // The number of ResvConf messages received by this RSVP router. - ResvConfRx *uint64 `protobuf:"varint,19,opt,name=resv_conf_rx,json=resvConfRx,proto3,oneof" json:"resv_conf_rx,omitempty"` - // The number of Hello messages sent by this RSVP router. - HellosTx *uint64 `protobuf:"varint,20,opt,name=hellos_tx,json=hellosTx,proto3,oneof" json:"hellos_tx,omitempty"` - // The number of Hello messages received by this RSVP router. - HellosRx *uint64 `protobuf:"varint,21,opt,name=hellos_rx,json=hellosRx,proto3,oneof" json:"hellos_rx,omitempty"` - // The number of Ack messages sent by this RSVP router. - AcksTx *uint64 `protobuf:"varint,22,opt,name=acks_tx,json=acksTx,proto3,oneof" json:"acks_tx,omitempty"` - // The number of Ack messages received by this RSVP router. - AcksRx *uint64 `protobuf:"varint,23,opt,name=acks_rx,json=acksRx,proto3,oneof" json:"acks_rx,omitempty"` - // The number of Nack messages sent by this RSVP router. - NacksTx *uint64 `protobuf:"varint,24,opt,name=nacks_tx,json=nacksTx,proto3,oneof" json:"nacks_tx,omitempty"` - // The number of Nack messages received by this RSVP router. - NacksRx *uint64 `protobuf:"varint,25,opt,name=nacks_rx,json=nacksRx,proto3,oneof" json:"nacks_rx,omitempty"` - // The number of SRefresh messages sent by this RSVP router. - SrefreshTx *uint64 `protobuf:"varint,26,opt,name=srefresh_tx,json=srefreshTx,proto3,oneof" json:"srefresh_tx,omitempty"` - // The number of SRefresh messages received by this RSVP router. - SrefreshRx *uint64 `protobuf:"varint,27,opt,name=srefresh_rx,json=srefreshRx,proto3,oneof" json:"srefresh_rx,omitempty"` - // The number of Bundle messages sent by this RSVP router. - BundleTx *uint64 `protobuf:"varint,28,opt,name=bundle_tx,json=bundleTx,proto3,oneof" json:"bundle_tx,omitempty"` - // The number of Bundle messages received by this RSVP router. - BundleRx *uint64 `protobuf:"varint,29,opt,name=bundle_rx,json=bundleRx,proto3,oneof" json:"bundle_rx,omitempty"` - // The number of Path messages with Path Re-evaluation Request enabled sent by this - // RSVP router. - PathReevaluationRequestTx *uint64 `protobuf:"varint,30,opt,name=path_reevaluation_request_tx,json=pathReevaluationRequestTx,proto3,oneof" json:"path_reevaluation_request_tx,omitempty"` - // The number of successfully completed Make-Before-Break operations on LSPs on this - // RSVP router. - PathReoptimizations *uint64 `protobuf:"varint,31,opt,name=path_reoptimizations,json=pathReoptimizations,proto3,oneof" json:"path_reoptimizations,omitempty"` + // Session state as up or down. Up refers to an Established state and Down refers to + // any other state. + SessionState *Bgpv4Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv4Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` + // Number of times the session went from Up to Down state. + SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` + // Number of routes advertised. + RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` + // Number of routes received. + RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` + // Number of route withdraws sent. + RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` + // Number of route withdraws received. + RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` + // Number of Update messages sent. + UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` + // Number of Update messages received. + UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` + // Number of Open messages sent. + OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` + // Number of Open messages received. + OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` + // Number of Keepalive messages sent. + KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` + // Number of Keepalive messages received. + KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` + // Number of Notification messages sent. + NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` + // Number of Notification messages received. + NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` + // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm + // and Established. In all the states except Established the BGP session is down. Idle + // refers to the Idle state of the FSM. Connect refers to the state where the session + // is waiting for the underlying transport session to be established. Active refers + // to the state where the session is awaiting for a connection from the remote peer. + // OpenSent refers to the state where the session is in the process of being established. + // The local system has sent an OPEN message. OpenConfirm refers to the state where + // the session is in the process of being established. The local system has sent and + // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from + // remote peer. Established refers to the state where the BGP session with the peer + // is established. + FsmState *Bgpv4Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv4Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` + // Number of End-of-RIB markers received indicating the completion of the initial routing + // update for a particular address family after the session is established. + // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with + // the minimum length. For any other address family, it is an UPDATE message that contains + // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . + EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` } -func (x *RsvpMetric) Reset() { - *x = RsvpMetric{} +func (x *Bgpv4Metric) Reset() { + *x = Bgpv4Metric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[263] + mi := &file_otg_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpMetric) String() string { +func (x *Bgpv4Metric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetric) ProtoMessage() {} +func (*Bgpv4Metric) ProtoMessage() {} -func (x *RsvpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[263] +func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[269] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40792,268 +40813,271 @@ func (x *RsvpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetric.ProtoReflect.Descriptor instead. -func (*RsvpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{263} +// Deprecated: Use Bgpv4Metric.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{269} } -func (x *RsvpMetric) GetName() string { +func (x *Bgpv4Metric) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *RsvpMetric) GetIngressP2PLspsConfigured() uint32 { - if x != nil && x.IngressP2PLspsConfigured != nil { - return *x.IngressP2PLspsConfigured - } - return 0 -} - -func (x *RsvpMetric) GetIngressP2PLspsUp() uint32 { - if x != nil && x.IngressP2PLspsUp != nil { - return *x.IngressP2PLspsUp - } - return 0 -} - -func (x *RsvpMetric) GetEgressP2PLspsUp() uint32 { - if x != nil && x.EgressP2PLspsUp != nil { - return *x.EgressP2PLspsUp - } - return 0 -} - -func (x *RsvpMetric) GetLspFlapCount() uint64 { - if x != nil && x.LspFlapCount != nil { - return *x.LspFlapCount - } - return 0 -} - -func (x *RsvpMetric) GetPathsTx() uint64 { - if x != nil && x.PathsTx != nil { - return *x.PathsTx - } - return 0 -} - -func (x *RsvpMetric) GetPathsRx() uint64 { - if x != nil && x.PathsRx != nil { - return *x.PathsRx +func (x *Bgpv4Metric) GetSessionState() Bgpv4Metric_SessionState_Enum { + if x != nil && x.SessionState != nil { + return *x.SessionState } - return 0 + return Bgpv4Metric_SessionState_unspecified } -func (x *RsvpMetric) GetResvsTx() uint64 { - if x != nil && x.ResvsTx != nil { - return *x.ResvsTx +func (x *Bgpv4Metric) GetSessionFlapCount() uint64 { + if x != nil && x.SessionFlapCount != nil { + return *x.SessionFlapCount } return 0 } -func (x *RsvpMetric) GetResvsRx() uint64 { - if x != nil && x.ResvsRx != nil { - return *x.ResvsRx +func (x *Bgpv4Metric) GetRoutesAdvertised() uint64 { + if x != nil && x.RoutesAdvertised != nil { + return *x.RoutesAdvertised } return 0 } -func (x *RsvpMetric) GetPathTearsTx() uint64 { - if x != nil && x.PathTearsTx != nil { - return *x.PathTearsTx +func (x *Bgpv4Metric) GetRoutesReceived() uint64 { + if x != nil && x.RoutesReceived != nil { + return *x.RoutesReceived } return 0 } -func (x *RsvpMetric) GetPathTearsRx() uint64 { - if x != nil && x.PathTearsRx != nil { - return *x.PathTearsRx +func (x *Bgpv4Metric) GetRouteWithdrawsSent() uint64 { + if x != nil && x.RouteWithdrawsSent != nil { + return *x.RouteWithdrawsSent } return 0 } -func (x *RsvpMetric) GetResvTearsTx() uint64 { - if x != nil && x.ResvTearsTx != nil { - return *x.ResvTearsTx +func (x *Bgpv4Metric) GetRouteWithdrawsReceived() uint64 { + if x != nil && x.RouteWithdrawsReceived != nil { + return *x.RouteWithdrawsReceived } return 0 } -func (x *RsvpMetric) GetResvTearsRx() uint64 { - if x != nil && x.ResvTearsRx != nil { - return *x.ResvTearsRx +func (x *Bgpv4Metric) GetUpdatesSent() uint64 { + if x != nil && x.UpdatesSent != nil { + return *x.UpdatesSent } return 0 } -func (x *RsvpMetric) GetPathErrorsTx() uint64 { - if x != nil && x.PathErrorsTx != nil { - return *x.PathErrorsTx +func (x *Bgpv4Metric) GetUpdatesReceived() uint64 { + if x != nil && x.UpdatesReceived != nil { + return *x.UpdatesReceived } return 0 } -func (x *RsvpMetric) GetPathErrorsRx() uint64 { - if x != nil && x.PathErrorsRx != nil { - return *x.PathErrorsRx +func (x *Bgpv4Metric) GetOpensSent() uint64 { + if x != nil && x.OpensSent != nil { + return *x.OpensSent } return 0 } -func (x *RsvpMetric) GetResvErrorsTx() uint64 { - if x != nil && x.ResvErrorsTx != nil { - return *x.ResvErrorsTx +func (x *Bgpv4Metric) GetOpensReceived() uint64 { + if x != nil && x.OpensReceived != nil { + return *x.OpensReceived } return 0 } -func (x *RsvpMetric) GetResvErrorsRx() uint64 { - if x != nil && x.ResvErrorsRx != nil { - return *x.ResvErrorsRx +func (x *Bgpv4Metric) GetKeepalivesSent() uint64 { + if x != nil && x.KeepalivesSent != nil { + return *x.KeepalivesSent } return 0 } -func (x *RsvpMetric) GetResvConfTx() uint64 { - if x != nil && x.ResvConfTx != nil { - return *x.ResvConfTx +func (x *Bgpv4Metric) GetKeepalivesReceived() uint64 { + if x != nil && x.KeepalivesReceived != nil { + return *x.KeepalivesReceived } return 0 } -func (x *RsvpMetric) GetResvConfRx() uint64 { - if x != nil && x.ResvConfRx != nil { - return *x.ResvConfRx +func (x *Bgpv4Metric) GetNotificationsSent() uint64 { + if x != nil && x.NotificationsSent != nil { + return *x.NotificationsSent } return 0 } -func (x *RsvpMetric) GetHellosTx() uint64 { - if x != nil && x.HellosTx != nil { - return *x.HellosTx +func (x *Bgpv4Metric) GetNotificationsReceived() uint64 { + if x != nil && x.NotificationsReceived != nil { + return *x.NotificationsReceived } return 0 } -func (x *RsvpMetric) GetHellosRx() uint64 { - if x != nil && x.HellosRx != nil { - return *x.HellosRx +func (x *Bgpv4Metric) GetFsmState() Bgpv4Metric_FsmState_Enum { + if x != nil && x.FsmState != nil { + return *x.FsmState } - return 0 + return Bgpv4Metric_FsmState_unspecified } -func (x *RsvpMetric) GetAcksTx() uint64 { - if x != nil && x.AcksTx != nil { - return *x.AcksTx +func (x *Bgpv4Metric) GetEndOfRibReceived() uint64 { + if x != nil && x.EndOfRibReceived != nil { + return *x.EndOfRibReceived } return 0 } -func (x *RsvpMetric) GetAcksRx() uint64 { - if x != nil && x.AcksRx != nil { - return *x.AcksRx - } - return 0 -} +// The request to retrieve BGPv6 per peer metrics/statistics. +type Bgpv6MetricsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *RsvpMetric) GetNacksTx() uint64 { - if x != nil && x.NacksTx != nil { - return *x.NacksTx - } - return 0 + // The names of BGPv6 peers to return results for. An empty list will return results + // for all BGPv6 peers. + // + // x-constraint: + // - /components/schemas/Bgp.V6peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V6peer/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the BGPv6 peer cannot be excluded. + ColumnNames []Bgpv6MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv6MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *RsvpMetric) GetNacksRx() uint64 { - if x != nil && x.NacksRx != nil { - return *x.NacksRx +func (x *Bgpv6MetricsRequest) Reset() { + *x = Bgpv6MetricsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[270] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *RsvpMetric) GetSrefreshTx() uint64 { - if x != nil && x.SrefreshTx != nil { - return *x.SrefreshTx - } - return 0 +func (x *Bgpv6MetricsRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *RsvpMetric) GetSrefreshRx() uint64 { - if x != nil && x.SrefreshRx != nil { - return *x.SrefreshRx - } - return 0 -} +func (*Bgpv6MetricsRequest) ProtoMessage() {} -func (x *RsvpMetric) GetBundleTx() uint64 { - if x != nil && x.BundleTx != nil { - return *x.BundleTx +func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[270] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *RsvpMetric) GetBundleRx() uint64 { - if x != nil && x.BundleRx != nil { - return *x.BundleRx - } - return 0 +// Deprecated: Use Bgpv6MetricsRequest.ProtoReflect.Descriptor instead. +func (*Bgpv6MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{270} } -func (x *RsvpMetric) GetPathReevaluationRequestTx() uint64 { - if x != nil && x.PathReevaluationRequestTx != nil { - return *x.PathReevaluationRequestTx +func (x *Bgpv6MetricsRequest) GetPeerNames() []string { + if x != nil { + return x.PeerNames } - return 0 + return nil } -func (x *RsvpMetric) GetPathReoptimizations() uint64 { - if x != nil && x.PathReoptimizations != nil { - return *x.PathReoptimizations +func (x *Bgpv6MetricsRequest) GetColumnNames() []Bgpv6MetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames } - return 0 + return nil } -// Request to traffic generator for states of choice -type StatesRequest struct { +// BGPv6 per peer statistics information. +type Bgpv6Metric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.ipv4_neighbors - Choice *StatesRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesRequest_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ipv4Neighbors *Neighborsv4StatesRequest `protobuf:"bytes,2,opt,name=ipv4_neighbors,json=ipv4Neighbors,proto3,oneof" json:"ipv4_neighbors,omitempty"` - // Description missing in models - Ipv6Neighbors *Neighborsv6StatesRequest `protobuf:"bytes,3,opt,name=ipv6_neighbors,json=ipv6Neighbors,proto3,oneof" json:"ipv6_neighbors,omitempty"` - // Description missing in models - BgpPrefixes *BgpPrefixStateRequest `protobuf:"bytes,4,opt,name=bgp_prefixes,json=bgpPrefixes,proto3,oneof" json:"bgp_prefixes,omitempty"` - // Description missing in models - IsisLsps *IsisLspsStateRequest `protobuf:"bytes,5,opt,name=isis_lsps,json=isisLsps,proto3,oneof" json:"isis_lsps,omitempty"` - // Description missing in models - LldpNeighbors *LldpNeighborsStateRequest `protobuf:"bytes,6,opt,name=lldp_neighbors,json=lldpNeighbors,proto3,oneof" json:"lldp_neighbors,omitempty"` - // Description missing in models - RsvpLsps *RsvpLspsStateRequest `protobuf:"bytes,7,opt,name=rsvp_lsps,json=rsvpLsps,proto3,oneof" json:"rsvp_lsps,omitempty"` + // The name of a configured BGPv6 peer. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Session state as up or down. Up refers to an Established state and Down refers to + // any other state. + SessionState *Bgpv6Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv6Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` + // Number of times the session went from Up to Down state. + SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` + // Number of routes advertised. + RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` + // Number of routes received. + RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` + // Number of route withdraws sent. + RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` + // Number of route withdraws received. + RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` + // Number of Update messages sent. + UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` + // Number of Update messages received. + UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` + // Number of Open messages sent. + OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` + // Number of Open messages received. + OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` + // Number of Keepalive messages sent. + KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` + // Number of Keepalive messages received. + KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` + // Number of Notification messages sent. + NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` + // Number of Notification messages received. + NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` + // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm + // and Established. In all the states except Established the BGP session is down. Idle + // refers to the Idle state of the FSM. Connect refers to the state where the session + // is waiting for the underlying transport session to be established. Active refers + // to the state where the session is awaiting for a connection from the remote peer. + // OpenSent refers to the state where the session is in the process of being established. + // The local system has sent an OPEN message. OpenConfirm refers to the state where + // the session is in the process of being established. The local system has sent and + // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from + // remote peer. Established refers to the state where the BGP session with the peer + // is established. + FsmState *Bgpv6Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv6Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` + // Number of End-of-RIB markers received indicating the completion of the initial routing + // update for a particular address family after the session is established. + // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with + // the minimum length. For any other address family, it is an UPDATE message that contains + // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . + EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` } -func (x *StatesRequest) Reset() { - *x = StatesRequest{} +func (x *Bgpv6Metric) Reset() { + *x = Bgpv6Metric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[264] + mi := &file_otg_proto_msgTypes[271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesRequest) String() string { +func (x *Bgpv6Metric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesRequest) ProtoMessage() {} +func (*Bgpv6Metric) ProtoMessage() {} -func (x *StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[264] +func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[271] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41064,199 +41088,168 @@ func (x *StatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesRequest.ProtoReflect.Descriptor instead. -func (*StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264} +// Deprecated: Use Bgpv6Metric.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{271} } -func (x *StatesRequest) GetChoice() StatesRequest_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Bgpv6Metric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return StatesRequest_Choice_unspecified + return "" } -func (x *StatesRequest) GetIpv4Neighbors() *Neighborsv4StatesRequest { - if x != nil { - return x.Ipv4Neighbors +func (x *Bgpv6Metric) GetSessionState() Bgpv6Metric_SessionState_Enum { + if x != nil && x.SessionState != nil { + return *x.SessionState } - return nil + return Bgpv6Metric_SessionState_unspecified } -func (x *StatesRequest) GetIpv6Neighbors() *Neighborsv6StatesRequest { - if x != nil { - return x.Ipv6Neighbors +func (x *Bgpv6Metric) GetSessionFlapCount() uint64 { + if x != nil && x.SessionFlapCount != nil { + return *x.SessionFlapCount } - return nil + return 0 } -func (x *StatesRequest) GetBgpPrefixes() *BgpPrefixStateRequest { - if x != nil { - return x.BgpPrefixes +func (x *Bgpv6Metric) GetRoutesAdvertised() uint64 { + if x != nil && x.RoutesAdvertised != nil { + return *x.RoutesAdvertised } - return nil + return 0 } -func (x *StatesRequest) GetIsisLsps() *IsisLspsStateRequest { - if x != nil { - return x.IsisLsps +func (x *Bgpv6Metric) GetRoutesReceived() uint64 { + if x != nil && x.RoutesReceived != nil { + return *x.RoutesReceived } - return nil + return 0 } -func (x *StatesRequest) GetLldpNeighbors() *LldpNeighborsStateRequest { - if x != nil { - return x.LldpNeighbors +func (x *Bgpv6Metric) GetRouteWithdrawsSent() uint64 { + if x != nil && x.RouteWithdrawsSent != nil { + return *x.RouteWithdrawsSent } - return nil + return 0 } -func (x *StatesRequest) GetRsvpLsps() *RsvpLspsStateRequest { - if x != nil { - return x.RsvpLsps +func (x *Bgpv6Metric) GetRouteWithdrawsReceived() uint64 { + if x != nil && x.RouteWithdrawsReceived != nil { + return *x.RouteWithdrawsReceived } - return nil -} - -// Response containing chosen traffic generator states -type StatesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.ipv4_neighbors - Choice *StatesResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesResponse_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ipv4Neighbors []*Neighborsv4State `protobuf:"bytes,2,rep,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` - // Description missing in models - Ipv6Neighbors []*Neighborsv6State `protobuf:"bytes,3,rep,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` - // Description missing in models - BgpPrefixes []*BgpPrefixesState `protobuf:"bytes,4,rep,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` - // Description missing in models - IsisLsps []*IsisLspsState `protobuf:"bytes,5,rep,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` - // Description missing in models - LldpNeighbors []*LldpNeighborsState `protobuf:"bytes,6,rep,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` - // Description missing in models - RsvpLsps []*RsvpLspsState `protobuf:"bytes,7,rep,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` + return 0 } -func (x *StatesResponse) Reset() { - *x = StatesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[265] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Bgpv6Metric) GetUpdatesSent() uint64 { + if x != nil && x.UpdatesSent != nil { + return *x.UpdatesSent } + return 0 } -func (x *StatesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatesResponse) ProtoMessage() {} - -func (x *StatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[265] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Bgpv6Metric) GetUpdatesReceived() uint64 { + if x != nil && x.UpdatesReceived != nil { + return *x.UpdatesReceived } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use StatesResponse.ProtoReflect.Descriptor instead. -func (*StatesResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265} +func (x *Bgpv6Metric) GetOpensSent() uint64 { + if x != nil && x.OpensSent != nil { + return *x.OpensSent + } + return 0 } -func (x *StatesResponse) GetChoice() StatesResponse_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Bgpv6Metric) GetOpensReceived() uint64 { + if x != nil && x.OpensReceived != nil { + return *x.OpensReceived } - return StatesResponse_Choice_unspecified + return 0 } -func (x *StatesResponse) GetIpv4Neighbors() []*Neighborsv4State { - if x != nil { - return x.Ipv4Neighbors +func (x *Bgpv6Metric) GetKeepalivesSent() uint64 { + if x != nil && x.KeepalivesSent != nil { + return *x.KeepalivesSent } - return nil + return 0 } -func (x *StatesResponse) GetIpv6Neighbors() []*Neighborsv6State { - if x != nil { - return x.Ipv6Neighbors +func (x *Bgpv6Metric) GetKeepalivesReceived() uint64 { + if x != nil && x.KeepalivesReceived != nil { + return *x.KeepalivesReceived } - return nil + return 0 } -func (x *StatesResponse) GetBgpPrefixes() []*BgpPrefixesState { - if x != nil { - return x.BgpPrefixes +func (x *Bgpv6Metric) GetNotificationsSent() uint64 { + if x != nil && x.NotificationsSent != nil { + return *x.NotificationsSent } - return nil + return 0 } -func (x *StatesResponse) GetIsisLsps() []*IsisLspsState { - if x != nil { - return x.IsisLsps +func (x *Bgpv6Metric) GetNotificationsReceived() uint64 { + if x != nil && x.NotificationsReceived != nil { + return *x.NotificationsReceived } - return nil + return 0 } -func (x *StatesResponse) GetLldpNeighbors() []*LldpNeighborsState { - if x != nil { - return x.LldpNeighbors +func (x *Bgpv6Metric) GetFsmState() Bgpv6Metric_FsmState_Enum { + if x != nil && x.FsmState != nil { + return *x.FsmState } - return nil + return Bgpv6Metric_FsmState_unspecified } -func (x *StatesResponse) GetRsvpLsps() []*RsvpLspsState { - if x != nil { - return x.RsvpLsps +func (x *Bgpv6Metric) GetEndOfRibReceived() uint64 { + if x != nil && x.EndOfRibReceived != nil { + return *x.EndOfRibReceived } - return nil + return 0 } -// The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). -type Neighborsv4StatesRequest struct { +// The request to retrieve ISIS per Router metrics/statistics. +type IsisMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of Ethernet interfaces for which Neighbor state (ARP cache entries) will - // be retrieved. If no names are specified then the results will contain Neighbor state - // (ARP cache entries) for all available Ethernet interfaces. + // The names of ISIS Routers to return results for. An empty list will return results + // for all ISIS router. // // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.IsisRouter/properties/name // // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` + // - /components/schemas/Device.IsisRouter/properties/name + RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the ISIS Router cannot be excluded. + ColumnNames []IsisMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.IsisMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *Neighborsv4StatesRequest) Reset() { - *x = Neighborsv4StatesRequest{} +func (x *IsisMetricsRequest) Reset() { + *x = IsisMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[266] + mi := &file_otg_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Neighborsv4StatesRequest) String() string { +func (x *IsisMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Neighborsv4StatesRequest) ProtoMessage() {} +func (*IsisMetricsRequest) ProtoMessage() {} -func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[266] +func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[272] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41267,52 +41260,104 @@ func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Neighborsv4StatesRequest.ProtoReflect.Descriptor instead. -func (*Neighborsv4StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{266} +// Deprecated: Use IsisMetricsRequest.ProtoReflect.Descriptor instead. +func (*IsisMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{272} } -func (x *Neighborsv4StatesRequest) GetEthernetNames() []string { +func (x *IsisMetricsRequest) GetRouterNames() []string { if x != nil { - return x.EthernetNames + return x.RouterNames } return nil } -// IPv4 Neighbor state (ARP cache entry). -type Neighborsv4State struct { +func (x *IsisMetricsRequest) GetColumnNames() []IsisMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames + } + return nil +} + +// ISIS per router statistics information. +type IsisMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the Ethernet interface associated with the Neighbor state (ARP cache - // entry). - // required = true - EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` - // The IPv4 address of the neighbor. - // required = true - Ipv4Address string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` - // The link-layer address (MAC) of the neighbor. - LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` + // The name of a configured ISIS router. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The number of Level 1 (L1) sessions that are fully up. + L1SessionsUp *uint32 `protobuf:"varint,2,opt,name=l1_sessions_up,json=l1SessionsUp,proto3,oneof" json:"l1_sessions_up,omitempty"` + // The number of Level 1 Sessions Flap. + L1SessionFlap *uint64 `protobuf:"varint,3,opt,name=l1_session_flap,json=l1SessionFlap,proto3,oneof" json:"l1_session_flap,omitempty"` + // Number of Level 1 Hello messages sent. + L1BroadcastHellosSent *uint64 `protobuf:"varint,4,opt,name=l1_broadcast_hellos_sent,json=l1BroadcastHellosSent,proto3,oneof" json:"l1_broadcast_hellos_sent,omitempty"` + // Number of Level 1 Hello messages received. + L1BroadcastHellosReceived *uint64 `protobuf:"varint,5,opt,name=l1_broadcast_hellos_received,json=l1BroadcastHellosReceived,proto3,oneof" json:"l1_broadcast_hellos_received,omitempty"` + // Number of Level 1 Point-to-Point(P2P) Hello messages sent. + L1PointToPointHellosSent *uint64 `protobuf:"varint,6,opt,name=l1_point_to_point_hellos_sent,json=l1PointToPointHellosSent,proto3,oneof" json:"l1_point_to_point_hellos_sent,omitempty"` + // Number of Level 1 Point-to-Point(P2P) Hello messages received. + L1PointToPointHellosReceived *uint64 `protobuf:"varint,7,opt,name=l1_point_to_point_hellos_received,json=l1PointToPointHellosReceived,proto3,oneof" json:"l1_point_to_point_hellos_received,omitempty"` + // Number of Link State Updates (LSPs) in the Level 1 LSP Databases. + L1DatabaseSize *uint64 `protobuf:"varint,8,opt,name=l1_database_size,json=l1DatabaseSize,proto3,oneof" json:"l1_database_size,omitempty"` + // Number of Level 1 (L1) Partial Sequence Number Packet (PSNPs) sent. + L1PsnpSent *uint64 `protobuf:"varint,9,opt,name=l1_psnp_sent,json=l1PsnpSent,proto3,oneof" json:"l1_psnp_sent,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (PSNPs) received. + L1PsnpReceived *uint64 `protobuf:"varint,10,opt,name=l1_psnp_received,json=l1PsnpReceived,proto3,oneof" json:"l1_psnp_received,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) sent. + L1CsnpSent *uint64 `protobuf:"varint,11,opt,name=l1_csnp_sent,json=l1CsnpSent,proto3,oneof" json:"l1_csnp_sent,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) received. + L1CsnpReceived *uint64 `protobuf:"varint,12,opt,name=l1_csnp_received,json=l1CsnpReceived,proto3,oneof" json:"l1_csnp_received,omitempty"` + // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) sent. + L1LspSent *uint64 `protobuf:"varint,13,opt,name=l1_lsp_sent,json=l1LspSent,proto3,oneof" json:"l1_lsp_sent,omitempty"` + // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) received. + L1LspReceived *uint64 `protobuf:"varint,14,opt,name=l1_lsp_received,json=l1LspReceived,proto3,oneof" json:"l1_lsp_received,omitempty"` + // The number of Level 2 (L2) sessions that are fully up. + L2SessionsUp *uint32 `protobuf:"varint,15,opt,name=l2_sessions_up,json=l2SessionsUp,proto3,oneof" json:"l2_sessions_up,omitempty"` + // The number of Level 2 Sessions Flap. + L2SessionFlap *uint64 `protobuf:"varint,16,opt,name=l2_session_flap,json=l2SessionFlap,proto3,oneof" json:"l2_session_flap,omitempty"` + // Number of Level 2 Hello messages sent. + L2BroadcastHellosSent *uint64 `protobuf:"varint,17,opt,name=l2_broadcast_hellos_sent,json=l2BroadcastHellosSent,proto3,oneof" json:"l2_broadcast_hellos_sent,omitempty"` + // Number of Level 2 Hello messages received. + L2BroadcastHellosReceived *uint64 `protobuf:"varint,18,opt,name=l2_broadcast_hellos_received,json=l2BroadcastHellosReceived,proto3,oneof" json:"l2_broadcast_hellos_received,omitempty"` + // Number of Level 2 Point-to-Point(P2P) Hello messages sent. + L2PointToPointHellosSent *uint64 `protobuf:"varint,19,opt,name=l2_point_to_point_hellos_sent,json=l2PointToPointHellosSent,proto3,oneof" json:"l2_point_to_point_hellos_sent,omitempty"` + // Number of Level 2 Point-to-Point(P2P) Hello messages received. + L2PointToPointHellosReceived *uint64 `protobuf:"varint,20,opt,name=l2_point_to_point_hellos_received,json=l2PointToPointHellosReceived,proto3,oneof" json:"l2_point_to_point_hellos_received,omitempty"` + // Number of Link State Updates (LSPs) in the Level 2 LSP Databases. + L2DatabaseSize *uint64 `protobuf:"varint,21,opt,name=l2_database_size,json=l2DatabaseSize,proto3,oneof" json:"l2_database_size,omitempty"` + // Number of Level 2 (L2) Partial Sequence Number Packet (PSNPs) sent. + L2PsnpSent *uint64 `protobuf:"varint,22,opt,name=l2_psnp_sent,json=l2PsnpSent,proto3,oneof" json:"l2_psnp_sent,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (PSNPs) received. + L2PsnpReceived *uint64 `protobuf:"varint,23,opt,name=l2_psnp_received,json=l2PsnpReceived,proto3,oneof" json:"l2_psnp_received,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) sent. + L2CsnpSent *uint64 `protobuf:"varint,24,opt,name=l2_csnp_sent,json=l2CsnpSent,proto3,oneof" json:"l2_csnp_sent,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) received. + L2CsnpReceived *uint64 `protobuf:"varint,25,opt,name=l2_csnp_received,json=l2CsnpReceived,proto3,oneof" json:"l2_csnp_received,omitempty"` + // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) sent. + L2LspSent *uint64 `protobuf:"varint,26,opt,name=l2_lsp_sent,json=l2LspSent,proto3,oneof" json:"l2_lsp_sent,omitempty"` + // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) received. + L2LspReceived *uint64 `protobuf:"varint,27,opt,name=l2_lsp_received,json=l2LspReceived,proto3,oneof" json:"l2_lsp_received,omitempty"` } -func (x *Neighborsv4State) Reset() { - *x = Neighborsv4State{} +func (x *IsisMetric) Reset() { + *x = IsisMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[267] + mi := &file_otg_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Neighborsv4State) String() string { +func (x *IsisMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Neighborsv4State) ProtoMessage() {} +func (*IsisMetric) ProtoMessage() {} -func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[267] +func (x *IsisMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[273] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41323,285 +41368,237 @@ func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Neighborsv4State.ProtoReflect.Descriptor instead. -func (*Neighborsv4State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267} +// Deprecated: Use IsisMetric.ProtoReflect.Descriptor instead. +func (*IsisMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{273} } -func (x *Neighborsv4State) GetEthernetName() string { - if x != nil { - return x.EthernetName +func (x *IsisMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *Neighborsv4State) GetIpv4Address() string { - if x != nil { - return x.Ipv4Address +func (x *IsisMetric) GetL1SessionsUp() uint32 { + if x != nil && x.L1SessionsUp != nil { + return *x.L1SessionsUp } - return "" + return 0 } -func (x *Neighborsv4State) GetLinkLayerAddress() string { - if x != nil && x.LinkLayerAddress != nil { - return *x.LinkLayerAddress +func (x *IsisMetric) GetL1SessionFlap() uint64 { + if x != nil && x.L1SessionFlap != nil { + return *x.L1SessionFlap } - return "" + return 0 } -// The request to retrieve IPv6 Neighbor state (NDISC cache entries) of a network interface(s). -type Neighborsv6StatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The names of Ethernet interfaces for which Neighbor state (NDISC cache entries) will - // be retrieved. If no names are specified then the results will contain Neighbor state - // (NDISC cache entries) for all available Ethernet interfaces. - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` +func (x *IsisMetric) GetL1BroadcastHellosSent() uint64 { + if x != nil && x.L1BroadcastHellosSent != nil { + return *x.L1BroadcastHellosSent + } + return 0 } -func (x *Neighborsv6StatesRequest) Reset() { - *x = Neighborsv6StatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[268] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL1BroadcastHellosReceived() uint64 { + if x != nil && x.L1BroadcastHellosReceived != nil { + return *x.L1BroadcastHellosReceived } + return 0 } -func (x *Neighborsv6StatesRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL1PointToPointHellosSent() uint64 { + if x != nil && x.L1PointToPointHellosSent != nil { + return *x.L1PointToPointHellosSent + } + return 0 } -func (*Neighborsv6StatesRequest) ProtoMessage() {} - -func (x *Neighborsv6StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[268] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL1PointToPointHellosReceived() uint64 { + if x != nil && x.L1PointToPointHellosReceived != nil { + return *x.L1PointToPointHellosReceived } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use Neighborsv6StatesRequest.ProtoReflect.Descriptor instead. -func (*Neighborsv6StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{268} +func (x *IsisMetric) GetL1DatabaseSize() uint64 { + if x != nil && x.L1DatabaseSize != nil { + return *x.L1DatabaseSize + } + return 0 } -func (x *Neighborsv6StatesRequest) GetEthernetNames() []string { - if x != nil { - return x.EthernetNames +func (x *IsisMetric) GetL1PsnpSent() uint64 { + if x != nil && x.L1PsnpSent != nil { + return *x.L1PsnpSent } - return nil + return 0 } -// IPv6 Neighbor state (NDISC cache entry). -type Neighborsv6State struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The name of the Ethernet interface associated with the Neighbor state (NDISC cache - // entry). - // required = true - EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` - // The IPv6 address of the neighbor. - // required = true - Ipv6Address string `protobuf:"bytes,2,opt,name=ipv6_address,json=ipv6Address,proto3" json:"ipv6_address,omitempty"` - // The link-layer address (MAC) of the neighbor. - LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` +func (x *IsisMetric) GetL1PsnpReceived() uint64 { + if x != nil && x.L1PsnpReceived != nil { + return *x.L1PsnpReceived + } + return 0 } -func (x *Neighborsv6State) Reset() { - *x = Neighborsv6State{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[269] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL1CsnpSent() uint64 { + if x != nil && x.L1CsnpSent != nil { + return *x.L1CsnpSent } + return 0 } -func (x *Neighborsv6State) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL1CsnpReceived() uint64 { + if x != nil && x.L1CsnpReceived != nil { + return *x.L1CsnpReceived + } + return 0 } -func (*Neighborsv6State) ProtoMessage() {} - -func (x *Neighborsv6State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[269] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL1LspSent() uint64 { + if x != nil && x.L1LspSent != nil { + return *x.L1LspSent } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use Neighborsv6State.ProtoReflect.Descriptor instead. -func (*Neighborsv6State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{269} +func (x *IsisMetric) GetL1LspReceived() uint64 { + if x != nil && x.L1LspReceived != nil { + return *x.L1LspReceived + } + return 0 } -func (x *Neighborsv6State) GetEthernetName() string { - if x != nil { - return x.EthernetName +func (x *IsisMetric) GetL2SessionsUp() uint32 { + if x != nil && x.L2SessionsUp != nil { + return *x.L2SessionsUp } - return "" + return 0 } -func (x *Neighborsv6State) GetIpv6Address() string { - if x != nil { - return x.Ipv6Address +func (x *IsisMetric) GetL2SessionFlap() uint64 { + if x != nil && x.L2SessionFlap != nil { + return *x.L2SessionFlap } - return "" + return 0 } -func (x *Neighborsv6State) GetLinkLayerAddress() string { - if x != nil && x.LinkLayerAddress != nil { - return *x.LinkLayerAddress +func (x *IsisMetric) GetL2BroadcastHellosSent() uint64 { + if x != nil && x.L2BroadcastHellosSent != nil { + return *x.L2BroadcastHellosSent } - return "" + return 0 } -// The request to retrieve BGP peer prefix information. -type BgpPrefixStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The names of BGP peers for which prefix information will be retrieved. If no names - // are specified then the results will contain prefix information for all configured - // BGP peers. - // - // x-constraint: - // - /components/schemas/Bgp.V4Peer/properties/name - // - /components/schemas/Bgp.V6Peer/properties/name - // - // x-constraint: - // - /components/schemas/Bgp.V4Peer/properties/name - // - /components/schemas/Bgp.V6Peer/properties/name - BgpPeerNames []string `protobuf:"bytes,1,rep,name=bgp_peer_names,json=bgpPeerNames,proto3" json:"bgp_peer_names,omitempty"` - // Specify which prefixes to return. If the list is empty or missing then all prefixes - // will be returned. - PrefixFilters []BgpPrefixStateRequest_PrefixFilters_Enum `protobuf:"varint,2,rep,packed,name=prefix_filters,json=prefixFilters,proto3,enum=otg.BgpPrefixStateRequest_PrefixFilters_Enum" json:"prefix_filters,omitempty"` - // The IPv4 unicast results can be filtered by specifying additional prefix search criteria. - // If the ipv4_unicast_filters property is missing or empty then all IPv4 prefixes will - // be returned. - Ipv4UnicastFilters []*BgpPrefixIpv4UnicastFilter `protobuf:"bytes,3,rep,name=ipv4_unicast_filters,json=ipv4UnicastFilters,proto3" json:"ipv4_unicast_filters,omitempty"` - // The IPv6 unicast results can be filtered by specifying additional prefix search criteria. - // If the ipv6_unicast_filters property is missing or empty then all IPv6 prefixes will - // be returned. - Ipv6UnicastFilters []*BgpPrefixIpv6UnicastFilter `protobuf:"bytes,4,rep,name=ipv6_unicast_filters,json=ipv6UnicastFilters,proto3" json:"ipv6_unicast_filters,omitempty"` +func (x *IsisMetric) GetL2BroadcastHellosReceived() uint64 { + if x != nil && x.L2BroadcastHellosReceived != nil { + return *x.L2BroadcastHellosReceived + } + return 0 } -func (x *BgpPrefixStateRequest) Reset() { - *x = BgpPrefixStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[270] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL2PointToPointHellosSent() uint64 { + if x != nil && x.L2PointToPointHellosSent != nil { + return *x.L2PointToPointHellosSent } + return 0 } -func (x *BgpPrefixStateRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL2PointToPointHellosReceived() uint64 { + if x != nil && x.L2PointToPointHellosReceived != nil { + return *x.L2PointToPointHellosReceived + } + return 0 } -func (*BgpPrefixStateRequest) ProtoMessage() {} - -func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[270] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL2DatabaseSize() uint64 { + if x != nil && x.L2DatabaseSize != nil { + return *x.L2DatabaseSize } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use BgpPrefixStateRequest.ProtoReflect.Descriptor instead. -func (*BgpPrefixStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{270} +func (x *IsisMetric) GetL2PsnpSent() uint64 { + if x != nil && x.L2PsnpSent != nil { + return *x.L2PsnpSent + } + return 0 } -func (x *BgpPrefixStateRequest) GetBgpPeerNames() []string { - if x != nil { - return x.BgpPeerNames +func (x *IsisMetric) GetL2PsnpReceived() uint64 { + if x != nil && x.L2PsnpReceived != nil { + return *x.L2PsnpReceived } - return nil + return 0 } -func (x *BgpPrefixStateRequest) GetPrefixFilters() []BgpPrefixStateRequest_PrefixFilters_Enum { - if x != nil { - return x.PrefixFilters +func (x *IsisMetric) GetL2CsnpSent() uint64 { + if x != nil && x.L2CsnpSent != nil { + return *x.L2CsnpSent } - return nil + return 0 } -func (x *BgpPrefixStateRequest) GetIpv4UnicastFilters() []*BgpPrefixIpv4UnicastFilter { - if x != nil { - return x.Ipv4UnicastFilters +func (x *IsisMetric) GetL2CsnpReceived() uint64 { + if x != nil && x.L2CsnpReceived != nil { + return *x.L2CsnpReceived } - return nil + return 0 } -func (x *BgpPrefixStateRequest) GetIpv6UnicastFilters() []*BgpPrefixIpv6UnicastFilter { - if x != nil { - return x.Ipv6UnicastFilters +func (x *IsisMetric) GetL2LspSent() uint64 { + if x != nil && x.L2LspSent != nil { + return *x.L2LspSent } - return nil + return 0 } -// Description missing in models -type BgpPrefixIpv4UnicastFilter struct { +func (x *IsisMetric) GetL2LspReceived() uint64 { + if x != nil && x.L2LspReceived != nil { + return *x.L2LspReceived + } + return 0 +} + +// The request to retrieve per LAG metrics/statistics. +type LagMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The addresses to match. If the addresses property is missing or empty then all addresses - // will match. - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // The prefix length to match. If the prefix length is missing then all prefix lengths - // will match. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin to match. If the origin is missing then all origins will match. - Origin *BgpPrefixIpv4UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id to match. If the path id is missing then all path ids will match. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The names of LAGs to return results for. An empty list will return results for all + // LAGs. + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name + LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of the LAG cannot be excluded. + ColumnNames []LagMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LagMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *BgpPrefixIpv4UnicastFilter) Reset() { - *x = BgpPrefixIpv4UnicastFilter{} +func (x *LagMetricsRequest) Reset() { + *x = LagMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[271] + mi := &file_otg_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastFilter) String() string { +func (x *LagMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastFilter) ProtoMessage() {} +func (*LagMetricsRequest) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[271] +func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[274] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41612,74 +41609,79 @@ func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastFilter.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271} +// Deprecated: Use LagMetricsRequest.ProtoReflect.Descriptor instead. +func (*LagMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{274} } -func (x *BgpPrefixIpv4UnicastFilter) GetAddresses() []string { +func (x *LagMetricsRequest) GetLagNames() []string { if x != nil { - return x.Addresses + return x.LagNames } return nil } -func (x *BgpPrefixIpv4UnicastFilter) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 -} - -func (x *BgpPrefixIpv4UnicastFilter) GetOrigin() BgpPrefixIpv4UnicastFilter_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin - } - return BgpPrefixIpv4UnicastFilter_Origin_unspecified -} - -func (x *BgpPrefixIpv4UnicastFilter) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *LagMetricsRequest) GetColumnNames() []LagMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames } - return 0 + return nil } // Description missing in models -type BgpPrefixIpv6UnicastFilter struct { +type LagMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The addresses to match. If the addresses property is missing or empty then all addresses - // will match. - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // The prefix length to match. If the prefix length is missing then all prefix lengths - // will match. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin to match. If the origin is missing then all origins will match. - Origin *BgpPrefixIpv6UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id to match. If the path id is missing then all path ids will match. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The name of a configured LAG + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The current operational state of the LAG. The state can be up or down. State 'up' + // indicates member_ports_up >= min_links. + OperStatus *LagMetric_OperStatus_Enum `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,enum=otg.LagMetric_OperStatus_Enum,oneof" json:"oper_status,omitempty"` + // The number of LAG member ports up. + MemberPortsUp *uint32 `protobuf:"varint,3,opt,name=member_ports_up,json=memberPortsUp,proto3,oneof" json:"member_ports_up,omitempty"` + // The current total number of frames transmitted. + FramesTx *uint64 `protobuf:"varint,4,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received. + FramesRx *uint64 `protobuf:"varint,5,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted. + BytesTx *uint64 `protobuf:"varint,6,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of valid bytes received. + BytesRx *uint64 `protobuf:"varint,7,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted. + FramesTxRate *float32 `protobuf:"fixed32,8,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received. + FramesRxRate *float32 `protobuf:"fixed32,9,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The current rate of bytes transmitted. + BytesTxRate *float32 `protobuf:"fixed32,10,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` + // The current rate of bytes received. + BytesRxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` } -func (x *BgpPrefixIpv6UnicastFilter) Reset() { - *x = BgpPrefixIpv6UnicastFilter{} +func (x *LagMetric) Reset() { + *x = LagMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[272] + mi := &file_otg_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastFilter) String() string { +func (x *LagMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastFilter) ProtoMessage() {} +func (*LagMetric) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[272] +func (x *LagMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[275] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41690,70 +41692,135 @@ func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastFilter.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272} +// Deprecated: Use LagMetric.ProtoReflect.Descriptor instead. +func (*LagMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{275} } -func (x *BgpPrefixIpv6UnicastFilter) GetAddresses() []string { - if x != nil { - return x.Addresses +func (x *LagMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *BgpPrefixIpv6UnicastFilter) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *LagMetric) GetOperStatus() LagMetric_OperStatus_Enum { + if x != nil && x.OperStatus != nil { + return *x.OperStatus + } + return LagMetric_OperStatus_unspecified +} + +func (x *LagMetric) GetMemberPortsUp() uint32 { + if x != nil && x.MemberPortsUp != nil { + return *x.MemberPortsUp } return 0 } -func (x *BgpPrefixIpv6UnicastFilter) GetOrigin() BgpPrefixIpv6UnicastFilter_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *LagMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } - return BgpPrefixIpv6UnicastFilter_Origin_unspecified + return 0 } -func (x *BgpPrefixIpv6UnicastFilter) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *LagMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } return 0 } -// BGP peer prefixes. -type BgpPrefixesState struct { +func (x *LagMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx + } + return 0 +} + +func (x *LagMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx + } + return 0 +} + +func (x *LagMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate + } + return 0 +} + +func (x *LagMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate + } + return 0 +} + +func (x *LagMetric) GetBytesTxRate() float32 { + if x != nil && x.BytesTxRate != nil { + return *x.BytesTxRate + } + return 0 +} + +func (x *LagMetric) GetBytesRxRate() float32 { + if x != nil && x.BytesRxRate != nil { + return *x.BytesRxRate + } + return 0 +} + +// The request to retrieve LACP per LAG member metrics/statistics. +type LacpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a BGP peer. - BgpPeerName *string `protobuf:"bytes,1,opt,name=bgp_peer_name,json=bgpPeerName,proto3,oneof" json:"bgp_peer_name,omitempty"` - // Description missing in models - Ipv4UnicastPrefixes []*BgpPrefixIpv4UnicastState `protobuf:"bytes,2,rep,name=ipv4_unicast_prefixes,json=ipv4UnicastPrefixes,proto3" json:"ipv4_unicast_prefixes,omitempty"` - // Description missing in models - Ipv6UnicastPrefixes []*BgpPrefixIpv6UnicastState `protobuf:"bytes,3,rep,name=ipv6_unicast_prefixes,json=ipv6UnicastPrefixes,proto3" json:"ipv6_unicast_prefixes,omitempty"` + // The names of LAG (ports group) for which LACP metrics to be returned. An empty list + // will return metrics for all LAGs. + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name + LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` + // The names of LAG members (ports) for which LACP metrics to be returned. An empty + // list will return metrics for all LAG members. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + LagMemberPortNames []string `protobuf:"bytes,2,rep,name=lag_member_port_names,json=lagMemberPortNames,proto3" json:"lag_member_port_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of LAG and LAG member can not be + // excluded. + ColumnNames []LacpMetricsRequest_ColumnNames_Enum `protobuf:"varint,3,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LacpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *BgpPrefixesState) Reset() { - *x = BgpPrefixesState{} +func (x *LacpMetricsRequest) Reset() { + *x = LacpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[273] + mi := &file_otg_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixesState) String() string { +func (x *LacpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixesState) ProtoMessage() {} +func (*LacpMetricsRequest) ProtoMessage() {} -func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[273] +func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[276] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41764,79 +41831,94 @@ func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixesState.ProtoReflect.Descriptor instead. -func (*BgpPrefixesState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{273} +// Deprecated: Use LacpMetricsRequest.ProtoReflect.Descriptor instead. +func (*LacpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{276} } -func (x *BgpPrefixesState) GetBgpPeerName() string { - if x != nil && x.BgpPeerName != nil { - return *x.BgpPeerName +func (x *LacpMetricsRequest) GetLagNames() []string { + if x != nil { + return x.LagNames } - return "" + return nil } -func (x *BgpPrefixesState) GetIpv4UnicastPrefixes() []*BgpPrefixIpv4UnicastState { +func (x *LacpMetricsRequest) GetLagMemberPortNames() []string { if x != nil { - return x.Ipv4UnicastPrefixes + return x.LagMemberPortNames } return nil } -func (x *BgpPrefixesState) GetIpv6UnicastPrefixes() []*BgpPrefixIpv6UnicastState { +func (x *LacpMetricsRequest) GetColumnNames() []LacpMetricsRequest_ColumnNames_Enum { if x != nil { - return x.Ipv6UnicastPrefixes + return x.ColumnNames } return nil } -// IPv4 unicast prefix. -type BgpPrefixIpv4UnicastState struct { +// LACP metrics (statistics) per LAG member. +type LacpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast address - Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin of the prefix. - Origin *BgpPrefixIpv4UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` - // The IPv4 address of the egress interface. - Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` - // The IPv6 address of the egress interface. - Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` - // Optional community attributes. - Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Description missing in models - AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` - // The local preference is a well-known attribute and the value is used for route selection. - // The route with the highest local preference value is preferred. - LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` - // The multi exit discriminator (MED) is an optional non-transitive attribute and the - // value is used for route selection. The route with the lowest MED value is preferred. - MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` + // The name of a LAG (ports group) configured with LACP. + LagName *string `protobuf:"bytes,1,opt,name=lag_name,json=lagName,proto3,oneof" json:"lag_name,omitempty"` + // The name of a LAG member (port) configured with LACP. + LagMemberPortName *string `protobuf:"bytes,2,opt,name=lag_member_port_name,json=lagMemberPortName,proto3,oneof" json:"lag_member_port_name,omitempty"` + // Number of LACPDUs received. + LacpPacketsRx *uint64 `protobuf:"varint,3,opt,name=lacp_packets_rx,json=lacpPacketsRx,proto3,oneof" json:"lacp_packets_rx,omitempty"` + // Number of LACPDUs transmitted. + LacpPacketsTx *uint64 `protobuf:"varint,4,opt,name=lacp_packets_tx,json=lacpPacketsTx,proto3,oneof" json:"lacp_packets_tx,omitempty"` + // Number of LACPDUs receive packet errors. + LacpRxErrors *uint64 `protobuf:"varint,5,opt,name=lacp_rx_errors,json=lacpRxErrors,proto3,oneof" json:"lacp_rx_errors,omitempty"` + // Indicates participant is active or passive. + Activity *LacpMetric_Activity_Enum `protobuf:"varint,6,opt,name=activity,proto3,enum=otg.LacpMetric_Activity_Enum,oneof" json:"activity,omitempty"` + // The timeout type (short or long) used by the participant. + Timeout *LacpMetric_Timeout_Enum `protobuf:"varint,7,opt,name=timeout,proto3,enum=otg.LacpMetric_Timeout_Enum,oneof" json:"timeout,omitempty"` + // Indicates whether the participant is in-sync or out-of-sync. + Synchronization *LacpMetric_Synchronization_Enum `protobuf:"varint,8,opt,name=synchronization,proto3,enum=otg.LacpMetric_Synchronization_Enum,oneof" json:"synchronization,omitempty"` + // A true value indicates that the participant will allow the link to be used as part + // of the aggregate. A false value indicates the link should be used as an individual + // link. + Aggregatable *bool `protobuf:"varint,9,opt,name=aggregatable,proto3,oneof" json:"aggregatable,omitempty"` + // If true, the participant is collecting incoming frames on the link, otherwise false. + Collecting *bool `protobuf:"varint,10,opt,name=collecting,proto3,oneof" json:"collecting,omitempty"` + // When true, the participant is distributing outgoing frames; when false, distribution + // is disabled. + Distributing *bool `protobuf:"varint,11,opt,name=distributing,proto3,oneof" json:"distributing,omitempty"` + // MAC address that defines the local system ID for the aggregate interface. + SystemId *string `protobuf:"bytes,12,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` + // Current operational value of the key for the aggregate interface. + OperKey *uint32 `protobuf:"varint,13,opt,name=oper_key,json=operKey,proto3,oneof" json:"oper_key,omitempty"` + // MAC address representing the protocol partner's interface system ID. + PartnerId *string `protobuf:"bytes,14,opt,name=partner_id,json=partnerId,proto3,oneof" json:"partner_id,omitempty"` + // Operational value of the protocol partner's key. + PartnerKey *uint32 `protobuf:"varint,15,opt,name=partner_key,json=partnerKey,proto3,oneof" json:"partner_key,omitempty"` + // Port number of the local (actor) aggregation member. + PortNum *uint32 `protobuf:"varint,16,opt,name=port_num,json=portNum,proto3,oneof" json:"port_num,omitempty"` + // Port number of the partner (remote) port for this member port. + PartnerPortNum *uint32 `protobuf:"varint,17,opt,name=partner_port_num,json=partnerPortNum,proto3,oneof" json:"partner_port_num,omitempty"` } -func (x *BgpPrefixIpv4UnicastState) Reset() { - *x = BgpPrefixIpv4UnicastState{} +func (x *LacpMetric) Reset() { + *x = LacpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[274] + mi := &file_otg_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastState) String() string { +func (x *LacpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastState) ProtoMessage() {} +func (*LacpMetric) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[274] +func (x *LacpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[277] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41847,128 +41929,167 @@ func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastState.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274} +// Deprecated: Use LacpMetric.ProtoReflect.Descriptor instead. +func (*LacpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277} } -func (x *BgpPrefixIpv4UnicastState) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *LacpMetric) GetLagName() string { + if x != nil && x.LagName != nil { + return *x.LagName } return "" } -func (x *BgpPrefixIpv4UnicastState) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *LacpMetric) GetLagMemberPortName() string { + if x != nil && x.LagMemberPortName != nil { + return *x.LagMemberPortName + } + return "" +} + +func (x *LacpMetric) GetLacpPacketsRx() uint64 { + if x != nil && x.LacpPacketsRx != nil { + return *x.LacpPacketsRx } return 0 } -func (x *BgpPrefixIpv4UnicastState) GetOrigin() BgpPrefixIpv4UnicastState_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *LacpMetric) GetLacpPacketsTx() uint64 { + if x != nil && x.LacpPacketsTx != nil { + return *x.LacpPacketsTx } - return BgpPrefixIpv4UnicastState_Origin_unspecified + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *LacpMetric) GetLacpRxErrors() uint64 { + if x != nil && x.LacpRxErrors != nil { + return *x.LacpRxErrors } return 0 } -func (x *BgpPrefixIpv4UnicastState) GetIpv4NextHop() string { - if x != nil && x.Ipv4NextHop != nil { - return *x.Ipv4NextHop +func (x *LacpMetric) GetActivity() LacpMetric_Activity_Enum { + if x != nil && x.Activity != nil { + return *x.Activity } - return "" + return LacpMetric_Activity_unspecified } -func (x *BgpPrefixIpv4UnicastState) GetIpv6NextHop() string { - if x != nil && x.Ipv6NextHop != nil { - return *x.Ipv6NextHop +func (x *LacpMetric) GetTimeout() LacpMetric_Timeout_Enum { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return LacpMetric_Timeout_unspecified +} + +func (x *LacpMetric) GetSynchronization() LacpMetric_Synchronization_Enum { + if x != nil && x.Synchronization != nil { + return *x.Synchronization + } + return LacpMetric_Synchronization_unspecified +} + +func (x *LacpMetric) GetAggregatable() bool { + if x != nil && x.Aggregatable != nil { + return *x.Aggregatable + } + return false +} + +func (x *LacpMetric) GetCollecting() bool { + if x != nil && x.Collecting != nil { + return *x.Collecting + } + return false +} + +func (x *LacpMetric) GetDistributing() bool { + if x != nil && x.Distributing != nil { + return *x.Distributing + } + return false +} + +func (x *LacpMetric) GetSystemId() string { + if x != nil && x.SystemId != nil { + return *x.SystemId } return "" } -func (x *BgpPrefixIpv4UnicastState) GetCommunities() []*ResultBgpCommunity { - if x != nil { - return x.Communities +func (x *LacpMetric) GetOperKey() uint32 { + if x != nil && x.OperKey != nil { + return *x.OperKey } - return nil + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetAsPath() *ResultBgpAsPath { - if x != nil { - return x.AsPath +func (x *LacpMetric) GetPartnerId() string { + if x != nil && x.PartnerId != nil { + return *x.PartnerId } - return nil + return "" } -func (x *BgpPrefixIpv4UnicastState) GetLocalPreference() uint32 { - if x != nil && x.LocalPreference != nil { - return *x.LocalPreference +func (x *LacpMetric) GetPartnerKey() uint32 { + if x != nil && x.PartnerKey != nil { + return *x.PartnerKey } return 0 } -func (x *BgpPrefixIpv4UnicastState) GetMultiExitDiscriminator() uint32 { - if x != nil && x.MultiExitDiscriminator != nil { - return *x.MultiExitDiscriminator +func (x *LacpMetric) GetPortNum() uint32 { + if x != nil && x.PortNum != nil { + return *x.PortNum } return 0 } -// IPv6 unicast prefix. -type BgpPrefixIpv6UnicastState struct { +func (x *LacpMetric) GetPartnerPortNum() uint32 { + if x != nil && x.PartnerPortNum != nil { + return *x.PartnerPortNum + } + return 0 +} + +// The request to retrieve LLDP per instance metrics/statistics. +type LldpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv6 unicast address - Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` - // The length of the prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin of the prefix. - Origin *BgpPrefixIpv6UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` - // The IPv4 address of the egress interface. - Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` - // The IPv6 address of the egress interface. - Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` - // Optional community attributes. - Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Description missing in models - AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` - // The local preference is a well-known attribute and the value is used for route selection. - // The route with the highest local preference value is preferred. - LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` - // The multi exit discriminator (MED) is an optional non-transitive attribute and the - // value is used for route selection. The route with the lowest MED value is preferred. - MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` + // The names of LLDP instances to return results for. An empty list will return results + // for all LLDP instances. + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` + // The requested list of column names for the result set. If the list is empty then + // metrics for all columns will be returned. The name of LLDP instance can not be excluded. + ColumnNames []LldpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LldpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *BgpPrefixIpv6UnicastState) Reset() { - *x = BgpPrefixIpv6UnicastState{} +func (x *LldpMetricsRequest) Reset() { + *x = LldpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[275] + mi := &file_otg_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastState) String() string { +func (x *LldpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastState) ProtoMessage() {} +func (*LldpMetricsRequest) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[275] +func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[278] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41979,115 +42100,74 @@ func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastState.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275} -} - -func (x *BgpPrefixIpv6UnicastState) GetIpv6Address() string { - if x != nil && x.Ipv6Address != nil { - return *x.Ipv6Address - } - return "" -} - -func (x *BgpPrefixIpv6UnicastState) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 -} - -func (x *BgpPrefixIpv6UnicastState) GetOrigin() BgpPrefixIpv6UnicastState_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin - } - return BgpPrefixIpv6UnicastState_Origin_unspecified -} - -func (x *BgpPrefixIpv6UnicastState) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId - } - return 0 -} - -func (x *BgpPrefixIpv6UnicastState) GetIpv4NextHop() string { - if x != nil && x.Ipv4NextHop != nil { - return *x.Ipv4NextHop - } - return "" -} - -func (x *BgpPrefixIpv6UnicastState) GetIpv6NextHop() string { - if x != nil && x.Ipv6NextHop != nil { - return *x.Ipv6NextHop - } - return "" +// Deprecated: Use LldpMetricsRequest.ProtoReflect.Descriptor instead. +func (*LldpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{278} } -func (x *BgpPrefixIpv6UnicastState) GetCommunities() []*ResultBgpCommunity { +func (x *LldpMetricsRequest) GetLldpNames() []string { if x != nil { - return x.Communities + return x.LldpNames } return nil } -func (x *BgpPrefixIpv6UnicastState) GetAsPath() *ResultBgpAsPath { +func (x *LldpMetricsRequest) GetColumnNames() []LldpMetricsRequest_ColumnNames_Enum { if x != nil { - return x.AsPath + return x.ColumnNames } return nil } -func (x *BgpPrefixIpv6UnicastState) GetLocalPreference() uint32 { - if x != nil && x.LocalPreference != nil { - return *x.LocalPreference - } - return 0 -} - -func (x *BgpPrefixIpv6UnicastState) GetMultiExitDiscriminator() uint32 { - if x != nil && x.MultiExitDiscriminator != nil { - return *x.MultiExitDiscriminator - } - return 0 -} - -// BGP communities provide additional capability for tagging routes and for modifying -// BGP routing policy on upstream and downstream routers. BGP community is a 32-bit -// number which is broken into 16-bit AS number and a 16-bit custom value. -type ResultBgpCommunity struct { +// LLDP per instance statistics information. +type LldpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of community AS number. If community type is manual_as_number then as_number - // and as_custom will be available. - Type *ResultBgpCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpCommunity_Type_Enum,oneof" json:"type,omitempty"` - // First two octets of 32 bit community AS number. - AsNumber *uint32 `protobuf:"varint,2,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // Last two octets of the community value. - AsCustom *uint32 `protobuf:"varint,3,opt,name=as_custom,json=asCustom,proto3,oneof" json:"as_custom,omitempty"` + // The name of the configured LLDP instance. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Number of LLDP frames received. + FramesRx *uint64 `protobuf:"varint,2,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // Number of LLDP frames transmitted. + FramesTx *uint64 `protobuf:"varint,3,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // Number of LLDP frames received with packet errors. This stat should be incremented + // based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 + // AB-2005. + FramesErrorRx *uint64 `protobuf:"varint,4,opt,name=frames_error_rx,json=framesErrorRx,proto3,oneof" json:"frames_error_rx,omitempty"` + // Number of LLDP frames received that are discarded. This stat should be incremented + // when one or more of the three mandatory TLVs at the beginning of the LLDPDU is missing, + // out of order or contains an out of range information string length. This stat should + // follow the validation rules in section 10.3.2 of IEEE Std 802.1 AB-2005. + FramesDiscard *uint64 `protobuf:"varint,5,opt,name=frames_discard,json=framesDiscard,proto3,oneof" json:"frames_discard,omitempty"` + // Number of LLDP tlvs received that are discarded. If any TLV contains an error condition + // specific for that particular TLV or if any TLV extends past the physical end of + // the frame then these TLVs will be discarded. + TlvsDiscard *uint64 `protobuf:"varint,6,opt,name=tlvs_discard,json=tlvsDiscard,proto3,oneof" json:"tlvs_discard,omitempty"` + // Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific + // TLV and/or organizationally defined subtype are not recognized,or if TLV type value + // is in the range of reserved TLV types then these TLVs will be considered as unknown + // TLVs. + TlvsUnknown *uint64 `protobuf:"varint,7,opt,name=tlvs_unknown,json=tlvsUnknown,proto3,oneof" json:"tlvs_unknown,omitempty"` } -func (x *ResultBgpCommunity) Reset() { - *x = ResultBgpCommunity{} +func (x *LldpMetric) Reset() { + *x = LldpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[276] + mi := &file_otg_proto_msgTypes[279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpCommunity) String() string { +func (x *LldpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpCommunity) ProtoMessage() {} +func (*LldpMetric) ProtoMessage() {} -func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[276] +func (x *LldpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[279] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42098,118 +42178,97 @@ func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpCommunity.ProtoReflect.Descriptor instead. -func (*ResultBgpCommunity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{276} +// Deprecated: Use LldpMetric.ProtoReflect.Descriptor instead. +func (*LldpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{279} } -func (x *ResultBgpCommunity) GetType() ResultBgpCommunity_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *LldpMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return ResultBgpCommunity_Type_unspecified + return "" } -func (x *ResultBgpCommunity) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber +func (x *LldpMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } return 0 } -func (x *ResultBgpCommunity) GetAsCustom() uint32 { - if x != nil && x.AsCustom != nil { - return *x.AsCustom +func (x *LldpMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } return 0 } -// This attribute identifies the autonomous systems through which routing information -// carried in this UPDATE message has passed. -type ResultBgpAsPath struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // AS Path segments present in the received AS Path attribute. - Segments []*ResultBgpAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` -} - -func (x *ResultBgpAsPath) Reset() { - *x = ResultBgpAsPath{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[277] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *LldpMetric) GetFramesErrorRx() uint64 { + if x != nil && x.FramesErrorRx != nil { + return *x.FramesErrorRx } + return 0 } -func (x *ResultBgpAsPath) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResultBgpAsPath) ProtoMessage() {} - -func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[277] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *LldpMetric) GetFramesDiscard() uint64 { + if x != nil && x.FramesDiscard != nil { + return *x.FramesDiscard } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultBgpAsPath.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPath) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{277} +func (x *LldpMetric) GetTlvsDiscard() uint64 { + if x != nil && x.TlvsDiscard != nil { + return *x.TlvsDiscard + } + return 0 } -func (x *ResultBgpAsPath) GetSegments() []*ResultBgpAsPathSegment { - if x != nil { - return x.Segments +func (x *LldpMetric) GetTlvsUnknown() uint64 { + if x != nil && x.TlvsUnknown != nil { + return *x.TlvsUnknown } - return nil + return 0 } -// Configuration for a single BGP AS path segment -type ResultBgpAsPathSegment struct { +// The request to retrieve RSVP-TE per Router metrics/statistics. +type RsvpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // AS sequence is the most common type of AS_PATH, it contains the list of ASNs starting - // with the most recent ASN being added read from left to right. - // The other three AS_PATH types are used for Confederations - AS_SET is the type of - // AS_PATH attribute that summarizes routes using using the aggregate-address command, - // allowing AS_PATHs to be summarized in the update as well. - AS_CONFED_SEQ gives - // the list of ASNs in the path starting with the most recent ASN to be added reading - // left to right - AS_CONFED_SET will allow summarization of multiple AS PATHs to be - // sent in BGP Updates. - Type *ResultBgpAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` - // The AS numbers in this AS path segment. - AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` + // The names of RSVP-TE Routers to return results for. An empty list as input will return + // results for all RSVP-TE routers. + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` + // The list of column names that the returned result set will contain. If the input + // list is empty then all columns will be returned except for any result_groups. + ColumnNames []RsvpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.RsvpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *ResultBgpAsPathSegment) Reset() { - *x = ResultBgpAsPathSegment{} +func (x *RsvpMetricsRequest) Reset() { + *x = RsvpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[278] + mi := &file_otg_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpAsPathSegment) String() string { +func (x *RsvpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpAsPathSegment) ProtoMessage() {} +func (*RsvpMetricsRequest) ProtoMessage() {} -func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[278] +func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[280] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42220,59 +42279,119 @@ func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpAsPathSegment.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPathSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278} +// Deprecated: Use RsvpMetricsRequest.ProtoReflect.Descriptor instead. +func (*RsvpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{280} } -func (x *ResultBgpAsPathSegment) GetType() ResultBgpAsPathSegment_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *RsvpMetricsRequest) GetRouterNames() []string { + if x != nil { + return x.RouterNames } - return ResultBgpAsPathSegment_Type_unspecified + return nil } -func (x *ResultBgpAsPathSegment) GetAsNumbers() []uint32 { +func (x *RsvpMetricsRequest) GetColumnNames() []RsvpMetricsRequest_ColumnNames_Enum { if x != nil { - return x.AsNumbers + return x.ColumnNames } return nil } -// The request to retrieve ISIS Link State PDU (LSP) information learned by the router. -type IsisLspsStateRequest struct { +// RSVP-TE per router statistics information. +type RsvpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ISIS routers for which learned information is requested. An empty list - // will return results for all ISIS routers. - // - // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - // - // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - IsisRouterNames []string `protobuf:"bytes,1,rep,name=isis_router_names,json=isisRouterNames,proto3" json:"isis_router_names,omitempty"` + // The name of a configured RSVP router. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The number of ingress point-to-point LSPs configured or transiting through the RSVP + // router which have been initated from the test port. + IngressP2PLspsConfigured *uint32 `protobuf:"varint,2,opt,name=ingress_p2p_lsps_configured,json=ingressP2pLspsConfigured,proto3,oneof" json:"ingress_p2p_lsps_configured,omitempty"` + // The number of ingress point-to-point LSPs for which Resv has been received and is + // currently up. + IngressP2PLspsUp *uint32 `protobuf:"varint,3,opt,name=ingress_p2p_lsps_up,json=ingressP2pLspsUp,proto3,oneof" json:"ingress_p2p_lsps_up,omitempty"` + // The number of egress point-to-point LSPs for which Path requests were successfully + // processed and is currently up. + EgressP2PLspsUp *uint32 `protobuf:"varint,4,opt,name=egress_p2p_lsps_up,json=egressP2pLspsUp,proto3,oneof" json:"egress_p2p_lsps_up,omitempty"` + // The number of times an LSP went from up to down state either because it timed out + // while waiting for Refreshes or a PathTear or ResvTear message was received which + // caused the LSP to flap. + LspFlapCount *uint64 `protobuf:"varint,5,opt,name=lsp_flap_count,json=lspFlapCount,proto3,oneof" json:"lsp_flap_count,omitempty"` + // The number of Path messages sent by this RSVP router. + PathsTx *uint64 `protobuf:"varint,6,opt,name=paths_tx,json=pathsTx,proto3,oneof" json:"paths_tx,omitempty"` + // The number of Path messages received by this RSVP router. + PathsRx *uint64 `protobuf:"varint,7,opt,name=paths_rx,json=pathsRx,proto3,oneof" json:"paths_rx,omitempty"` + // The number of Resv messages sent by this RSVP router. + ResvsTx *uint64 `protobuf:"varint,8,opt,name=resvs_tx,json=resvsTx,proto3,oneof" json:"resvs_tx,omitempty"` + // The number of Resv messages received by this RSVP router. + ResvsRx *uint64 `protobuf:"varint,9,opt,name=resvs_rx,json=resvsRx,proto3,oneof" json:"resvs_rx,omitempty"` + // The number of Path Tear messages sent by this RSVP router. + PathTearsTx *uint64 `protobuf:"varint,10,opt,name=path_tears_tx,json=pathTearsTx,proto3,oneof" json:"path_tears_tx,omitempty"` + // The number of Path Tear messages received by this RSVP router. + PathTearsRx *uint64 `protobuf:"varint,11,opt,name=path_tears_rx,json=pathTearsRx,proto3,oneof" json:"path_tears_rx,omitempty"` + // The number of Resv Tear messages sent by this RSVP router. + ResvTearsTx *uint64 `protobuf:"varint,12,opt,name=resv_tears_tx,json=resvTearsTx,proto3,oneof" json:"resv_tears_tx,omitempty"` + // The number of Resv Tear messages received by this RSVP router. + ResvTearsRx *uint64 `protobuf:"varint,13,opt,name=resv_tears_rx,json=resvTearsRx,proto3,oneof" json:"resv_tears_rx,omitempty"` + // The number of Path Error messages sent by this RSVP router. + PathErrorsTx *uint64 `protobuf:"varint,14,opt,name=path_errors_tx,json=pathErrorsTx,proto3,oneof" json:"path_errors_tx,omitempty"` + // The number of Path Error messages received by this RSVP router. + PathErrorsRx *uint64 `protobuf:"varint,15,opt,name=path_errors_rx,json=pathErrorsRx,proto3,oneof" json:"path_errors_rx,omitempty"` + // The number of Resv Error messages sent by this RSVP router. + ResvErrorsTx *uint64 `protobuf:"varint,16,opt,name=resv_errors_tx,json=resvErrorsTx,proto3,oneof" json:"resv_errors_tx,omitempty"` + // The number of Resv Error messages received by this RSVP router. + ResvErrorsRx *uint64 `protobuf:"varint,17,opt,name=resv_errors_rx,json=resvErrorsRx,proto3,oneof" json:"resv_errors_rx,omitempty"` + // The number of ResvConf messages sent by this RSVP router. + ResvConfTx *uint64 `protobuf:"varint,18,opt,name=resv_conf_tx,json=resvConfTx,proto3,oneof" json:"resv_conf_tx,omitempty"` + // The number of ResvConf messages received by this RSVP router. + ResvConfRx *uint64 `protobuf:"varint,19,opt,name=resv_conf_rx,json=resvConfRx,proto3,oneof" json:"resv_conf_rx,omitempty"` + // The number of Hello messages sent by this RSVP router. + HellosTx *uint64 `protobuf:"varint,20,opt,name=hellos_tx,json=hellosTx,proto3,oneof" json:"hellos_tx,omitempty"` + // The number of Hello messages received by this RSVP router. + HellosRx *uint64 `protobuf:"varint,21,opt,name=hellos_rx,json=hellosRx,proto3,oneof" json:"hellos_rx,omitempty"` + // The number of Ack messages sent by this RSVP router. + AcksTx *uint64 `protobuf:"varint,22,opt,name=acks_tx,json=acksTx,proto3,oneof" json:"acks_tx,omitempty"` + // The number of Ack messages received by this RSVP router. + AcksRx *uint64 `protobuf:"varint,23,opt,name=acks_rx,json=acksRx,proto3,oneof" json:"acks_rx,omitempty"` + // The number of Nack messages sent by this RSVP router. + NacksTx *uint64 `protobuf:"varint,24,opt,name=nacks_tx,json=nacksTx,proto3,oneof" json:"nacks_tx,omitempty"` + // The number of Nack messages received by this RSVP router. + NacksRx *uint64 `protobuf:"varint,25,opt,name=nacks_rx,json=nacksRx,proto3,oneof" json:"nacks_rx,omitempty"` + // The number of SRefresh messages sent by this RSVP router. + SrefreshTx *uint64 `protobuf:"varint,26,opt,name=srefresh_tx,json=srefreshTx,proto3,oneof" json:"srefresh_tx,omitempty"` + // The number of SRefresh messages received by this RSVP router. + SrefreshRx *uint64 `protobuf:"varint,27,opt,name=srefresh_rx,json=srefreshRx,proto3,oneof" json:"srefresh_rx,omitempty"` + // The number of Bundle messages sent by this RSVP router. + BundleTx *uint64 `protobuf:"varint,28,opt,name=bundle_tx,json=bundleTx,proto3,oneof" json:"bundle_tx,omitempty"` + // The number of Bundle messages received by this RSVP router. + BundleRx *uint64 `protobuf:"varint,29,opt,name=bundle_rx,json=bundleRx,proto3,oneof" json:"bundle_rx,omitempty"` + // The number of Path messages with Path Re-evaluation Request enabled sent by this + // RSVP router. + PathReevaluationRequestTx *uint64 `protobuf:"varint,30,opt,name=path_reevaluation_request_tx,json=pathReevaluationRequestTx,proto3,oneof" json:"path_reevaluation_request_tx,omitempty"` + // The number of successfully completed Make-Before-Break operations on LSPs on this + // RSVP router. + PathReoptimizations *uint64 `protobuf:"varint,31,opt,name=path_reoptimizations,json=pathReoptimizations,proto3,oneof" json:"path_reoptimizations,omitempty"` } -func (x *IsisLspsStateRequest) Reset() { - *x = IsisLspsStateRequest{} +func (x *RsvpMetric) Reset() { + *x = RsvpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[279] + mi := &file_otg_proto_msgTypes[281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspsStateRequest) String() string { +func (x *RsvpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspsStateRequest) ProtoMessage() {} +func (*RsvpMetric) ProtoMessage() {} -func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[279] +func (x *RsvpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[281] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42283,222 +42402,253 @@ func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspsStateRequest.ProtoReflect.Descriptor instead. -func (*IsisLspsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{279} +// Deprecated: Use RsvpMetric.ProtoReflect.Descriptor instead. +func (*RsvpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{281} } -func (x *IsisLspsStateRequest) GetIsisRouterNames() []string { - if x != nil { - return x.IsisRouterNames +func (x *RsvpMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -// The result of ISIS LSP information that are retrieved. -type IsisLspsState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *RsvpMetric) GetIngressP2PLspsConfigured() uint32 { + if x != nil && x.IngressP2PLspsConfigured != nil { + return *x.IngressP2PLspsConfigured + } + return 0 +} - // The name of the ISIS Router. - IsisRouterName *string `protobuf:"bytes,1,opt,name=isis_router_name,json=isisRouterName,proto3,oneof" json:"isis_router_name,omitempty"` - // One or more LSPs that are learned by this ISIS router. - Lsps []*IsisLspState `protobuf:"bytes,2,rep,name=lsps,proto3" json:"lsps,omitempty"` +func (x *RsvpMetric) GetIngressP2PLspsUp() uint32 { + if x != nil && x.IngressP2PLspsUp != nil { + return *x.IngressP2PLspsUp + } + return 0 } -func (x *IsisLspsState) Reset() { - *x = IsisLspsState{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[280] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpMetric) GetEgressP2PLspsUp() uint32 { + if x != nil && x.EgressP2PLspsUp != nil { + return *x.EgressP2PLspsUp } + return 0 } -func (x *IsisLspsState) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpMetric) GetLspFlapCount() uint64 { + if x != nil && x.LspFlapCount != nil { + return *x.LspFlapCount + } + return 0 } -func (*IsisLspsState) ProtoMessage() {} +func (x *RsvpMetric) GetPathsTx() uint64 { + if x != nil && x.PathsTx != nil { + return *x.PathsTx + } + return 0 +} -func (x *IsisLspsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[280] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpMetric) GetPathsRx() uint64 { + if x != nil && x.PathsRx != nil { + return *x.PathsRx } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use IsisLspsState.ProtoReflect.Descriptor instead. -func (*IsisLspsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{280} +func (x *RsvpMetric) GetResvsTx() uint64 { + if x != nil && x.ResvsTx != nil { + return *x.ResvsTx + } + return 0 } -func (x *IsisLspsState) GetIsisRouterName() string { - if x != nil && x.IsisRouterName != nil { - return *x.IsisRouterName +func (x *RsvpMetric) GetResvsRx() uint64 { + if x != nil && x.ResvsRx != nil { + return *x.ResvsRx } - return "" + return 0 } -func (x *IsisLspsState) GetLsps() []*IsisLspState { - if x != nil { - return x.Lsps +func (x *RsvpMetric) GetPathTearsTx() uint64 { + if x != nil && x.PathTearsTx != nil { + return *x.PathTearsTx } - return nil + return 0 } -// ISIS LSP. -type IsisLspState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *RsvpMetric) GetPathTearsRx() uint64 { + if x != nil && x.PathTearsRx != nil { + return *x.PathTearsRx + } + return 0 +} - // LSP ID in the format, e.g. '640000000001-00-00'. LSP ID consists of the System ID - // of a neighbor, the Pseudonode ID, and the LSP number. The last two bytes represent - // Pseudonode ID and LSP number respectively. A pseudonode is a logical representation - // of the LAN which is generated by a Designated Intermediate System (DIS) on a LAN - // segment. If one LSP exceeds the maximum LSP size then it is sent in another LSP with - // the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. - // Then the sequence number is incremented by 1. - // required = true - LspId string `protobuf:"bytes,1,opt,name=lsp_id,json=lspId,proto3" json:"lsp_id,omitempty"` - // Link State PDU type. - PduType *IsisLspState_PduType_Enum `protobuf:"varint,2,opt,name=pdu_type,json=pduType,proto3,enum=otg.IsisLspState_PduType_Enum,oneof" json:"pdu_type,omitempty"` - // Remaining lifetime in seconds before LSP expires. - RemainingLifetime *uint32 `protobuf:"varint,3,opt,name=remaining_lifetime,json=remainingLifetime,proto3,oneof" json:"remaining_lifetime,omitempty"` - // Sequence number of the LSP. - SequenceNumber *uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` - // Total length of the LSP. - PduLength *uint32 `protobuf:"varint,5,opt,name=pdu_length,json=pduLength,proto3,oneof" json:"pdu_length,omitempty"` - // LSP Type-Block flags. - Flags *IsisLspFlags `protobuf:"bytes,6,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // IS Type - bits 1 and 2 indicate the type of Intermediate System. - // 1 - ( i.e. bit 1 set) Level 1 Intermediate system. - // 2 - Unused value. - // 3 - (i.e. bits 1 and 2 set) Level 2 Intermediate system. - IsType *uint32 `protobuf:"varint,7,opt,name=is_type,json=isType,proto3,oneof" json:"is_type,omitempty"` - // It refers to Link State PDU State TLVs container. - Tlvs *IsisLspTlvs `protobuf:"bytes,8,opt,name=tlvs,proto3,oneof" json:"tlvs,omitempty"` +func (x *RsvpMetric) GetResvTearsTx() uint64 { + if x != nil && x.ResvTearsTx != nil { + return *x.ResvTearsTx + } + return 0 } -func (x *IsisLspState) Reset() { - *x = IsisLspState{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[281] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpMetric) GetResvTearsRx() uint64 { + if x != nil && x.ResvTearsRx != nil { + return *x.ResvTearsRx } + return 0 } -func (x *IsisLspState) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpMetric) GetPathErrorsTx() uint64 { + if x != nil && x.PathErrorsTx != nil { + return *x.PathErrorsTx + } + return 0 } -func (*IsisLspState) ProtoMessage() {} +func (x *RsvpMetric) GetPathErrorsRx() uint64 { + if x != nil && x.PathErrorsRx != nil { + return *x.PathErrorsRx + } + return 0 +} -func (x *IsisLspState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[281] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpMetric) GetResvErrorsTx() uint64 { + if x != nil && x.ResvErrorsTx != nil { + return *x.ResvErrorsTx } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use IsisLspState.ProtoReflect.Descriptor instead. -func (*IsisLspState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281} +func (x *RsvpMetric) GetResvErrorsRx() uint64 { + if x != nil && x.ResvErrorsRx != nil { + return *x.ResvErrorsRx + } + return 0 } -func (x *IsisLspState) GetLspId() string { - if x != nil { - return x.LspId +func (x *RsvpMetric) GetResvConfTx() uint64 { + if x != nil && x.ResvConfTx != nil { + return *x.ResvConfTx } - return "" + return 0 } -func (x *IsisLspState) GetPduType() IsisLspState_PduType_Enum { - if x != nil && x.PduType != nil { - return *x.PduType +func (x *RsvpMetric) GetResvConfRx() uint64 { + if x != nil && x.ResvConfRx != nil { + return *x.ResvConfRx } - return IsisLspState_PduType_unspecified + return 0 } -func (x *IsisLspState) GetRemainingLifetime() uint32 { - if x != nil && x.RemainingLifetime != nil { - return *x.RemainingLifetime +func (x *RsvpMetric) GetHellosTx() uint64 { + if x != nil && x.HellosTx != nil { + return *x.HellosTx } return 0 } -func (x *IsisLspState) GetSequenceNumber() uint64 { - if x != nil && x.SequenceNumber != nil { - return *x.SequenceNumber +func (x *RsvpMetric) GetHellosRx() uint64 { + if x != nil && x.HellosRx != nil { + return *x.HellosRx } return 0 } -func (x *IsisLspState) GetPduLength() uint32 { - if x != nil && x.PduLength != nil { - return *x.PduLength +func (x *RsvpMetric) GetAcksTx() uint64 { + if x != nil && x.AcksTx != nil { + return *x.AcksTx } return 0 } -func (x *IsisLspState) GetFlags() *IsisLspFlags { - if x != nil { - return x.Flags +func (x *RsvpMetric) GetAcksRx() uint64 { + if x != nil && x.AcksRx != nil { + return *x.AcksRx } - return nil + return 0 } -func (x *IsisLspState) GetIsType() uint32 { - if x != nil && x.IsType != nil { - return *x.IsType +func (x *RsvpMetric) GetNacksTx() uint64 { + if x != nil && x.NacksTx != nil { + return *x.NacksTx } return 0 } -func (x *IsisLspState) GetTlvs() *IsisLspTlvs { - if x != nil { - return x.Tlvs +func (x *RsvpMetric) GetNacksRx() uint64 { + if x != nil && x.NacksRx != nil { + return *x.NacksRx } - return nil + return 0 } -// This contains the list of TLVs present in one LSP. -type IsisLspTlvs struct { +func (x *RsvpMetric) GetSrefreshTx() uint64 { + if x != nil && x.SrefreshTx != nil { + return *x.SrefreshTx + } + return 0 +} + +func (x *RsvpMetric) GetSrefreshRx() uint64 { + if x != nil && x.SrefreshRx != nil { + return *x.SrefreshRx + } + return 0 +} + +func (x *RsvpMetric) GetBundleTx() uint64 { + if x != nil && x.BundleTx != nil { + return *x.BundleTx + } + return 0 +} + +func (x *RsvpMetric) GetBundleRx() uint64 { + if x != nil && x.BundleRx != nil { + return *x.BundleRx + } + return 0 +} + +func (x *RsvpMetric) GetPathReevaluationRequestTx() uint64 { + if x != nil && x.PathReevaluationRequestTx != nil { + return *x.PathReevaluationRequestTx + } + return 0 +} + +func (x *RsvpMetric) GetPathReoptimizations() uint64 { + if x != nil && x.PathReoptimizations != nil { + return *x.PathReoptimizations + } + return 0 +} + +// Request to traffic generator for states of choice +type StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Array of Hostname TLVs ( type 137) present in this LSP. - HostnameTlvs []*IsisLspHostname `protobuf:"bytes,1,rep,name=hostname_tlvs,json=hostnameTlvs,proto3" json:"hostname_tlvs,omitempty"` - // Array of IS-Reachability TLVs (type 2) present in this LSP. - IsReachabilityTlvs []*IsisLspIsReachabilityTlv `protobuf:"bytes,2,rep,name=is_reachability_tlvs,json=isReachabilityTlvs,proto3" json:"is_reachability_tlvs,omitempty"` - // Array of Extended IS-Reachability TLVs (type 22) present in this LSP. - ExtendedIsReachabilityTlvs []*IsisLspExtendedIsReachabilityTlv `protobuf:"bytes,3,rep,name=extended_is_reachability_tlvs,json=extendedIsReachabilityTlvs,proto3" json:"extended_is_reachability_tlvs,omitempty"` - // Array of IPv4 Internal Reachability TLVs (type 128) present in this LSP. - Ipv4InternalReachabilityTlvs []*IsisLspIpv4InternalReachabilityTlv `protobuf:"bytes,4,rep,name=ipv4_internal_reachability_tlvs,json=ipv4InternalReachabilityTlvs,proto3" json:"ipv4_internal_reachability_tlvs,omitempty"` - // Array of IPv4 External Reachability TLVs (type 130) present in this LSP. - Ipv4ExternalReachabilityTlvs []*IsisLspIpv4ExternalReachabilityTlv `protobuf:"bytes,5,rep,name=ipv4_external_reachability_tlvs,json=ipv4ExternalReachabilityTlvs,proto3" json:"ipv4_external_reachability_tlvs,omitempty"` - // Array of IPv4 Extended Reachability TLVs (type 135) present in this LSP. - ExtendedIpv4ReachabilityTlvs []*IsisLspExtendedIpv4ReachabilityTlv `protobuf:"bytes,6,rep,name=extended_ipv4_reachability_tlvs,json=extendedIpv4ReachabilityTlvs,proto3" json:"extended_ipv4_reachability_tlvs,omitempty"` - // Array of IPv6 Reachability TLVs (type 236) present in this LSP. - Ipv6ReachabilityTlvs []*IsisLspIpv6ReachabilityTlv `protobuf:"bytes,7,rep,name=ipv6_reachability_tlvs,json=ipv6ReachabilityTlvs,proto3" json:"ipv6_reachability_tlvs,omitempty"` + // Description missing in models + // default = Choice.Enum.ipv4_neighbors + Choice *StatesRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesRequest_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4Neighbors *Neighborsv4StatesRequest `protobuf:"bytes,2,opt,name=ipv4_neighbors,json=ipv4Neighbors,proto3,oneof" json:"ipv4_neighbors,omitempty"` + // Description missing in models + Ipv6Neighbors *Neighborsv6StatesRequest `protobuf:"bytes,3,opt,name=ipv6_neighbors,json=ipv6Neighbors,proto3,oneof" json:"ipv6_neighbors,omitempty"` + // Description missing in models + BgpPrefixes *BgpPrefixStateRequest `protobuf:"bytes,4,opt,name=bgp_prefixes,json=bgpPrefixes,proto3,oneof" json:"bgp_prefixes,omitempty"` + // Description missing in models + IsisLsps *IsisLspsStateRequest `protobuf:"bytes,5,opt,name=isis_lsps,json=isisLsps,proto3,oneof" json:"isis_lsps,omitempty"` + // Description missing in models + LldpNeighbors *LldpNeighborsStateRequest `protobuf:"bytes,6,opt,name=lldp_neighbors,json=lldpNeighbors,proto3,oneof" json:"lldp_neighbors,omitempty"` + // Description missing in models + RsvpLsps *RsvpLspsStateRequest `protobuf:"bytes,7,opt,name=rsvp_lsps,json=rsvpLsps,proto3,oneof" json:"rsvp_lsps,omitempty"` } -func (x *IsisLspTlvs) Reset() { - *x = IsisLspTlvs{} +func (x *StatesRequest) Reset() { + *x = StatesRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42506,13 +42656,13 @@ func (x *IsisLspTlvs) Reset() { } } -func (x *IsisLspTlvs) String() string { +func (x *StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspTlvs) ProtoMessage() {} +func (*StatesRequest) ProtoMessage() {} -func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { +func (x *StatesRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[282] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42524,72 +42674,85 @@ func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspTlvs.ProtoReflect.Descriptor instead. -func (*IsisLspTlvs) Descriptor() ([]byte, []int) { +// Deprecated: Use StatesRequest.ProtoReflect.Descriptor instead. +func (*StatesRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{282} } -func (x *IsisLspTlvs) GetHostnameTlvs() []*IsisLspHostname { - if x != nil { - return x.HostnameTlvs +func (x *StatesRequest) GetChoice() StatesRequest_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return StatesRequest_Choice_unspecified } -func (x *IsisLspTlvs) GetIsReachabilityTlvs() []*IsisLspIsReachabilityTlv { +func (x *StatesRequest) GetIpv4Neighbors() *Neighborsv4StatesRequest { if x != nil { - return x.IsReachabilityTlvs + return x.Ipv4Neighbors } return nil } -func (x *IsisLspTlvs) GetExtendedIsReachabilityTlvs() []*IsisLspExtendedIsReachabilityTlv { +func (x *StatesRequest) GetIpv6Neighbors() *Neighborsv6StatesRequest { if x != nil { - return x.ExtendedIsReachabilityTlvs + return x.Ipv6Neighbors } return nil } -func (x *IsisLspTlvs) GetIpv4InternalReachabilityTlvs() []*IsisLspIpv4InternalReachabilityTlv { +func (x *StatesRequest) GetBgpPrefixes() *BgpPrefixStateRequest { if x != nil { - return x.Ipv4InternalReachabilityTlvs + return x.BgpPrefixes } return nil } -func (x *IsisLspTlvs) GetIpv4ExternalReachabilityTlvs() []*IsisLspIpv4ExternalReachabilityTlv { +func (x *StatesRequest) GetIsisLsps() *IsisLspsStateRequest { if x != nil { - return x.Ipv4ExternalReachabilityTlvs + return x.IsisLsps } return nil } -func (x *IsisLspTlvs) GetExtendedIpv4ReachabilityTlvs() []*IsisLspExtendedIpv4ReachabilityTlv { +func (x *StatesRequest) GetLldpNeighbors() *LldpNeighborsStateRequest { if x != nil { - return x.ExtendedIpv4ReachabilityTlvs + return x.LldpNeighbors } return nil } -func (x *IsisLspTlvs) GetIpv6ReachabilityTlvs() []*IsisLspIpv6ReachabilityTlv { +func (x *StatesRequest) GetRsvpLsps() *RsvpLspsStateRequest { if x != nil { - return x.Ipv6ReachabilityTlvs + return x.RsvpLsps } return nil } -// It contains Hostname for the TLV 137. -type IsisLspHostname struct { +// Response containing chosen traffic generator states +type StatesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Hostname for an ISIS router. - Hostname *string `protobuf:"bytes,1,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` + // Description missing in models + // default = Choice.Enum.ipv4_neighbors + Choice *StatesResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesResponse_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4Neighbors []*Neighborsv4State `protobuf:"bytes,2,rep,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` + // Description missing in models + Ipv6Neighbors []*Neighborsv6State `protobuf:"bytes,3,rep,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` + // Description missing in models + BgpPrefixes []*BgpPrefixesState `protobuf:"bytes,4,rep,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` + // Description missing in models + IsisLsps []*IsisLspsState `protobuf:"bytes,5,rep,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` + // Description missing in models + LldpNeighbors []*LldpNeighborsState `protobuf:"bytes,6,rep,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` + // Description missing in models + RsvpLsps []*RsvpLspsState `protobuf:"bytes,7,rep,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` } -func (x *IsisLspHostname) Reset() { - *x = IsisLspHostname{} +func (x *StatesResponse) Reset() { + *x = StatesResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42597,13 +42760,13 @@ func (x *IsisLspHostname) Reset() { } } -func (x *IsisLspHostname) String() string { +func (x *StatesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspHostname) ProtoMessage() {} +func (*StatesResponse) ProtoMessage() {} -func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { +func (x *StatesResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[283] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42615,44 +42778,80 @@ func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspHostname.ProtoReflect.Descriptor instead. -func (*IsisLspHostname) Descriptor() ([]byte, []int) { +// Deprecated: Use StatesResponse.ProtoReflect.Descriptor instead. +func (*StatesResponse) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{283} } -func (x *IsisLspHostname) GetHostname() string { - if x != nil && x.Hostname != nil { - return *x.Hostname +func (x *StatesResponse) GetChoice() StatesResponse_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return StatesResponse_Choice_unspecified } -// LSP Type flags. -type IsisLspFlags struct { +func (x *StatesResponse) GetIpv4Neighbors() []*Neighborsv4State { + if x != nil { + return x.Ipv4Neighbors + } + return nil +} + +func (x *StatesResponse) GetIpv6Neighbors() []*Neighborsv6State { + if x != nil { + return x.Ipv6Neighbors + } + return nil +} + +func (x *StatesResponse) GetBgpPrefixes() []*BgpPrefixesState { + if x != nil { + return x.BgpPrefixes + } + return nil +} + +func (x *StatesResponse) GetIsisLsps() []*IsisLspsState { + if x != nil { + return x.IsisLsps + } + return nil +} + +func (x *StatesResponse) GetLldpNeighbors() []*LldpNeighborsState { + if x != nil { + return x.LldpNeighbors + } + return nil +} + +func (x *StatesResponse) GetRsvpLsps() []*RsvpLspsState { + if x != nil { + return x.RsvpLsps + } + return nil +} + +// The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). +type Neighborsv4StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // When set, the originator supports partition repair. - PartitionRepair *bool `protobuf:"varint,1,opt,name=partition_repair,json=partitionRepair,proto3,oneof" json:"partition_repair,omitempty"` - // When set, the originator is attached to another area using the referred metric. - AttachedError *bool `protobuf:"varint,2,opt,name=attached_error,json=attachedError,proto3,oneof" json:"attached_error,omitempty"` - // When set, the originator is attached to another - // area using the referred metric. - AttachedExpense *bool `protobuf:"varint,3,opt,name=attached_expense,json=attachedExpense,proto3,oneof" json:"attached_expense,omitempty"` - // Delay Metric - when set, the originator is attached to another - // area using the referred metric. - AttachedDelay *bool `protobuf:"varint,4,opt,name=attached_delay,json=attachedDelay,proto3,oneof" json:"attached_delay,omitempty"` - // Default Metric - when set, the originator is attached to another - // area using the referred metric. - AttachedDefault *bool `protobuf:"varint,5,opt,name=attached_default,json=attachedDefault,proto3,oneof" json:"attached_default,omitempty"` - // Overload bit - when set, the originator is overloaded, and must - // be avoided in path calculation. - Overload *bool `protobuf:"varint,6,opt,name=overload,proto3,oneof" json:"overload,omitempty"` + // The names of Ethernet interfaces for which Neighbor state (ARP cache entries) will + // be retrieved. If no names are specified then the results will contain Neighbor state + // (ARP cache entries) for all available Ethernet interfaces. + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` } -func (x *IsisLspFlags) Reset() { - *x = IsisLspFlags{} +func (x *Neighborsv4StatesRequest) Reset() { + *x = Neighborsv4StatesRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42660,13 +42859,13 @@ func (x *IsisLspFlags) Reset() { } } -func (x *IsisLspFlags) String() string { +func (x *Neighborsv4StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspFlags) ProtoMessage() {} +func (*Neighborsv4StatesRequest) ProtoMessage() {} -func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { +func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[284] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42678,66 +42877,37 @@ func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspFlags.ProtoReflect.Descriptor instead. -func (*IsisLspFlags) Descriptor() ([]byte, []int) { +// Deprecated: Use Neighborsv4StatesRequest.ProtoReflect.Descriptor instead. +func (*Neighborsv4StatesRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{284} } -func (x *IsisLspFlags) GetPartitionRepair() bool { - if x != nil && x.PartitionRepair != nil { - return *x.PartitionRepair - } - return false -} - -func (x *IsisLspFlags) GetAttachedError() bool { - if x != nil && x.AttachedError != nil { - return *x.AttachedError - } - return false -} - -func (x *IsisLspFlags) GetAttachedExpense() bool { - if x != nil && x.AttachedExpense != nil { - return *x.AttachedExpense - } - return false -} - -func (x *IsisLspFlags) GetAttachedDelay() bool { - if x != nil && x.AttachedDelay != nil { - return *x.AttachedDelay - } - return false -} - -func (x *IsisLspFlags) GetAttachedDefault() bool { - if x != nil && x.AttachedDefault != nil { - return *x.AttachedDefault - } - return false -} - -func (x *IsisLspFlags) GetOverload() bool { - if x != nil && x.Overload != nil { - return *x.Overload +func (x *Neighborsv4StatesRequest) GetEthernetNames() []string { + if x != nil { + return x.EthernetNames } - return false + return nil } -// This container describes list of ISIS neighbors and attributes in IS-Reachability -// TLV (type 2). -type IsisLspIsReachabilityTlv struct { +// IPv4 Neighbor state (ARP cache entry). +type Neighborsv4State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This container describes Intermediate System (IS) neighbors. - Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` + // The name of the Ethernet interface associated with the Neighbor state (ARP cache + // entry). + // required = true + EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` + // The IPv4 address of the neighbor. + // required = true + Ipv4Address string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` + // The link-layer address (MAC) of the neighbor. + LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` } -func (x *IsisLspIsReachabilityTlv) Reset() { - *x = IsisLspIsReachabilityTlv{} +func (x *Neighborsv4State) Reset() { + *x = Neighborsv4State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42745,13 +42915,13 @@ func (x *IsisLspIsReachabilityTlv) Reset() { } } -func (x *IsisLspIsReachabilityTlv) String() string { +func (x *Neighborsv4State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspIsReachabilityTlv) ProtoMessage() {} +func (*Neighborsv4State) ProtoMessage() {} -func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[285] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42763,31 +42933,52 @@ func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspIsReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIsReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use Neighborsv4State.ProtoReflect.Descriptor instead. +func (*Neighborsv4State) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{285} } -func (x *IsisLspIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { +func (x *Neighborsv4State) GetEthernetName() string { if x != nil { - return x.Neighbors + return x.EthernetName } - return nil + return "" } -// This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type -// 22). -type IsisLspExtendedIsReachabilityTlv struct { +func (x *Neighborsv4State) GetIpv4Address() string { + if x != nil { + return x.Ipv4Address + } + return "" +} + +func (x *Neighborsv4State) GetLinkLayerAddress() string { + if x != nil && x.LinkLayerAddress != nil { + return *x.LinkLayerAddress + } + return "" +} + +// The request to retrieve IPv6 Neighbor state (NDISC cache entries) of a network interface(s). +type Neighborsv6StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This container describes IS neighbors. - Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` + // The names of Ethernet interfaces for which Neighbor state (NDISC cache entries) will + // be retrieved. If no names are specified then the results will contain Neighbor state + // (NDISC cache entries) for all available Ethernet interfaces. + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` } -func (x *IsisLspExtendedIsReachabilityTlv) Reset() { - *x = IsisLspExtendedIsReachabilityTlv{} +func (x *Neighborsv6StatesRequest) Reset() { + *x = Neighborsv6StatesRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42795,13 +42986,13 @@ func (x *IsisLspExtendedIsReachabilityTlv) Reset() { } } -func (x *IsisLspExtendedIsReachabilityTlv) String() string { +func (x *Neighborsv6StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedIsReachabilityTlv) ProtoMessage() {} +func (*Neighborsv6StatesRequest) ProtoMessage() {} -func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *Neighborsv6StatesRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[286] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42813,30 +43004,37 @@ func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedIsReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedIsReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use Neighborsv6StatesRequest.ProtoReflect.Descriptor instead. +func (*Neighborsv6StatesRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{286} } -func (x *IsisLspExtendedIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { +func (x *Neighborsv6StatesRequest) GetEthernetNames() []string { if x != nil { - return x.Neighbors + return x.EthernetNames } return nil } -// This contains IS neighbors. -type IsisLspneighbor struct { +// IPv6 Neighbor state (NDISC cache entry). +type Neighborsv6State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The System ID for this emulated ISIS router, e.g. 640100010000. - SystemId *string `protobuf:"bytes,1,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` + // The name of the Ethernet interface associated with the Neighbor state (NDISC cache + // entry). + // required = true + EthernetName string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3" json:"ethernet_name,omitempty"` + // The IPv6 address of the neighbor. + // required = true + Ipv6Address string `protobuf:"bytes,2,opt,name=ipv6_address,json=ipv6Address,proto3" json:"ipv6_address,omitempty"` + // The link-layer address (MAC) of the neighbor. + LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` } -func (x *IsisLspneighbor) Reset() { - *x = IsisLspneighbor{} +func (x *Neighborsv6State) Reset() { + *x = Neighborsv6State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42844,13 +43042,13 @@ func (x *IsisLspneighbor) Reset() { } } -func (x *IsisLspneighbor) String() string { +func (x *Neighborsv6State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspneighbor) ProtoMessage() {} +func (*Neighborsv6State) ProtoMessage() {} -func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { +func (x *Neighborsv6State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[287] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42862,32 +43060,65 @@ func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspneighbor.ProtoReflect.Descriptor instead. -func (*IsisLspneighbor) Descriptor() ([]byte, []int) { +// Deprecated: Use Neighborsv6State.ProtoReflect.Descriptor instead. +func (*Neighborsv6State) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{287} } -func (x *IsisLspneighbor) GetSystemId() string { - if x != nil && x.SystemId != nil { - return *x.SystemId +func (x *Neighborsv6State) GetEthernetName() string { + if x != nil { + return x.EthernetName } return "" } -// This container defines list of IPv4 internal reachability information in one IPv4 -// internal reachability TLV. -// This is advertised when the origin-type is set 'internal' in route range configurations. -type IsisLspIpv4InternalReachabilityTlv struct { +func (x *Neighborsv6State) GetIpv6Address() string { + if x != nil { + return x.Ipv6Address + } + return "" +} + +func (x *Neighborsv6State) GetLinkLayerAddress() string { + if x != nil && x.LinkLayerAddress != nil { + return *x.LinkLayerAddress + } + return "" +} + +// The request to retrieve BGP peer prefix information. +type BgpPrefixStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Describes list of IPv4 prefixes in this TLV. - Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + // The names of BGP peers for which prefix information will be retrieved. If no names + // are specified then the results will contain prefix information for all configured + // BGP peers. + // + // x-constraint: + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name + BgpPeerNames []string `protobuf:"bytes,1,rep,name=bgp_peer_names,json=bgpPeerNames,proto3" json:"bgp_peer_names,omitempty"` + // Specify which prefixes to return. If the list is empty or missing then all prefixes + // will be returned. + PrefixFilters []BgpPrefixStateRequest_PrefixFilters_Enum `protobuf:"varint,2,rep,packed,name=prefix_filters,json=prefixFilters,proto3,enum=otg.BgpPrefixStateRequest_PrefixFilters_Enum" json:"prefix_filters,omitempty"` + // The IPv4 unicast results can be filtered by specifying additional prefix search criteria. + // If the ipv4_unicast_filters property is missing or empty then all IPv4 prefixes will + // be returned. + Ipv4UnicastFilters []*BgpPrefixIpv4UnicastFilter `protobuf:"bytes,3,rep,name=ipv4_unicast_filters,json=ipv4UnicastFilters,proto3" json:"ipv4_unicast_filters,omitempty"` + // The IPv6 unicast results can be filtered by specifying additional prefix search criteria. + // If the ipv6_unicast_filters property is missing or empty then all IPv6 prefixes will + // be returned. + Ipv6UnicastFilters []*BgpPrefixIpv6UnicastFilter `protobuf:"bytes,4,rep,name=ipv6_unicast_filters,json=ipv6UnicastFilters,proto3" json:"ipv6_unicast_filters,omitempty"` } -func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { - *x = IsisLspIpv4InternalReachabilityTlv{} +func (x *BgpPrefixStateRequest) Reset() { + *x = BgpPrefixStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42895,13 +43126,13 @@ func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { } } -func (x *IsisLspIpv4InternalReachabilityTlv) String() string { +func (x *BgpPrefixStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspIpv4InternalReachabilityTlv) ProtoMessage() {} +func (*BgpPrefixStateRequest) ProtoMessage() {} -func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[288] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42913,32 +43144,59 @@ func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspIpv4InternalReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv4InternalReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixStateRequest.ProtoReflect.Descriptor instead. +func (*BgpPrefixStateRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{288} } -func (x *IsisLspIpv4InternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { +func (x *BgpPrefixStateRequest) GetBgpPeerNames() []string { if x != nil { - return x.Prefixes + return x.BgpPeerNames } return nil } -// This container defines list of IPv4 external reachability information in one IPv4 -// external reachability TLV. -// This is advertised when the origin-type is set 'external' in route range configurations. -type IsisLspIpv4ExternalReachabilityTlv struct { +func (x *BgpPrefixStateRequest) GetPrefixFilters() []BgpPrefixStateRequest_PrefixFilters_Enum { + if x != nil { + return x.PrefixFilters + } + return nil +} + +func (x *BgpPrefixStateRequest) GetIpv4UnicastFilters() []*BgpPrefixIpv4UnicastFilter { + if x != nil { + return x.Ipv4UnicastFilters + } + return nil +} + +func (x *BgpPrefixStateRequest) GetIpv6UnicastFilters() []*BgpPrefixIpv6UnicastFilter { + if x != nil { + return x.Ipv6UnicastFilters + } + return nil +} + +// Description missing in models +type BgpPrefixIpv4UnicastFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Describes list of IPv4 prefixes in this TLV.. - Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + // The addresses to match. If the addresses property is missing or empty then all addresses + // will match. + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // The prefix length to match. If the prefix length is missing then all prefix lengths + // will match. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // The origin to match. If the origin is missing then all origins will match. + Origin *BgpPrefixIpv4UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id to match. If the path id is missing then all path ids will match. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` } -func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { - *x = IsisLspIpv4ExternalReachabilityTlv{} +func (x *BgpPrefixIpv4UnicastFilter) Reset() { + *x = BgpPrefixIpv4UnicastFilter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42946,13 +43204,13 @@ func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { } } -func (x *IsisLspIpv4ExternalReachabilityTlv) String() string { +func (x *BgpPrefixIpv4UnicastFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspIpv4ExternalReachabilityTlv) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastFilter) ProtoMessage() {} -func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[289] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42964,46 +43222,59 @@ func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspIpv4ExternalReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv4ExternalReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixIpv4UnicastFilter.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastFilter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{289} } -func (x *IsisLspIpv4ExternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { +func (x *BgpPrefixIpv4UnicastFilter) GetAddresses() []string { if x != nil { - return x.Prefixes + return x.Addresses } return nil } -// This group defines attributes of an IPv4 standard prefix. -type IsisLspV4Prefix struct { +func (x *BgpPrefixIpv4UnicastFilter) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength + } + return 0 +} + +func (x *BgpPrefixIpv4UnicastFilter) GetOrigin() BgpPrefixIpv4UnicastFilter_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin + } + return BgpPrefixIpv4UnicastFilter_Origin_unspecified +} + +func (x *BgpPrefixIpv4UnicastFilter) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId + } + return 0 +} + +// Description missing in models +type BgpPrefixIpv6UnicastFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast prefix reachable via the originator of this LSP. - Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the IPv4 prefix. + // The addresses to match. If the addresses property is missing or empty then all addresses + // will match. + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // The prefix length to match. If the prefix length is missing then all prefix lengths + // will match. PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, - // and for all other prefixes in L1 and L2 LSPs. (default) - // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. - // The prefixes are being advertised from a higher level (L2) down to a lower level - // (L1). - RedistributionType *IsisLspV4Prefix_RedistributionType_Enum `protobuf:"varint,3,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // ISIS default metric value. - DefaultMetric *uint32 `protobuf:"varint,4,opt,name=default_metric,json=defaultMetric,proto3,oneof" json:"default_metric,omitempty"` - // The origin of the advertised route-internal or external to the ISIS area. Options - // include the following: - // Internal-for intra-area routes, through Level 1 LSPs. - // External-for inter-area routes redistributed within L1, through Level - // 1 LSPs. - OriginType *IsisLspV4Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV4Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` + // The origin to match. If the origin is missing then all origins will match. + Origin *BgpPrefixIpv6UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id to match. If the path id is missing then all path ids will match. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` } -func (x *IsisLspV4Prefix) Reset() { - *x = IsisLspV4Prefix{} +func (x *BgpPrefixIpv6UnicastFilter) Reset() { + *x = BgpPrefixIpv6UnicastFilter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43011,13 +43282,13 @@ func (x *IsisLspV4Prefix) Reset() { } } -func (x *IsisLspV4Prefix) String() string { +func (x *BgpPrefixIpv6UnicastFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastFilter) ProtoMessage() {} -func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[290] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43029,60 +43300,55 @@ func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV4Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixIpv6UnicastFilter.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastFilter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{290} } -func (x *IsisLspV4Prefix) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *BgpPrefixIpv6UnicastFilter) GetAddresses() []string { + if x != nil { + return x.Addresses } - return "" + return nil } -func (x *IsisLspV4Prefix) GetPrefixLength() uint32 { +func (x *BgpPrefixIpv6UnicastFilter) GetPrefixLength() uint32 { if x != nil && x.PrefixLength != nil { return *x.PrefixLength } return 0 } -func (x *IsisLspV4Prefix) GetRedistributionType() IsisLspV4Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *BgpPrefixIpv6UnicastFilter) GetOrigin() BgpPrefixIpv6UnicastFilter_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin } - return IsisLspV4Prefix_RedistributionType_unspecified + return BgpPrefixIpv6UnicastFilter_Origin_unspecified } -func (x *IsisLspV4Prefix) GetDefaultMetric() uint32 { - if x != nil && x.DefaultMetric != nil { - return *x.DefaultMetric +func (x *BgpPrefixIpv6UnicastFilter) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId } return 0 } -func (x *IsisLspV4Prefix) GetOriginType() IsisLspV4Prefix_OriginType_Enum { - if x != nil && x.OriginType != nil { - return *x.OriginType - } - return IsisLspV4Prefix_OriginType_unspecified -} - -// This container defines list of IPv4 extended reachability information in one Extended -// IPv4 External Reachability TLV. -// It is advertised when the 'wide metric' is enabled. -type IsisLspExtendedIpv4ReachabilityTlv struct { +// BGP peer prefixes. +type BgpPrefixesState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 prefix contained within extended reachability TLVs. - Prefixes []*IsisLspExtendedV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + // The name of a BGP peer. + BgpPeerName *string `protobuf:"bytes,1,opt,name=bgp_peer_name,json=bgpPeerName,proto3,oneof" json:"bgp_peer_name,omitempty"` + // Description missing in models + Ipv4UnicastPrefixes []*BgpPrefixIpv4UnicastState `protobuf:"bytes,2,rep,name=ipv4_unicast_prefixes,json=ipv4UnicastPrefixes,proto3" json:"ipv4_unicast_prefixes,omitempty"` + // Description missing in models + Ipv6UnicastPrefixes []*BgpPrefixIpv6UnicastState `protobuf:"bytes,3,rep,name=ipv6_unicast_prefixes,json=ipv6UnicastPrefixes,proto3" json:"ipv6_unicast_prefixes,omitempty"` } -func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { - *x = IsisLspExtendedIpv4ReachabilityTlv{} +func (x *BgpPrefixesState) Reset() { + *x = BgpPrefixesState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43090,13 +43356,13 @@ func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { } } -func (x *IsisLspExtendedIpv4ReachabilityTlv) String() string { +func (x *BgpPrefixesState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedIpv4ReachabilityTlv) ProtoMessage() {} +func (*BgpPrefixesState) ProtoMessage() {} -func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[291] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43108,42 +43374,64 @@ func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedIpv4ReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedIpv4ReachabilityTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixesState.ProtoReflect.Descriptor instead. +func (*BgpPrefixesState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{291} } -func (x *IsisLspExtendedIpv4ReachabilityTlv) GetPrefixes() []*IsisLspExtendedV4Prefix { +func (x *BgpPrefixesState) GetBgpPeerName() string { + if x != nil && x.BgpPeerName != nil { + return *x.BgpPeerName + } + return "" +} + +func (x *BgpPrefixesState) GetIpv4UnicastPrefixes() []*BgpPrefixIpv4UnicastState { if x != nil { - return x.Prefixes + return x.Ipv4UnicastPrefixes } return nil } -// This group defines attributes of an IPv4 standard prefix. -type IsisLspExtendedV4Prefix struct { +func (x *BgpPrefixesState) GetIpv6UnicastPrefixes() []*BgpPrefixIpv6UnicastState { + if x != nil { + return x.Ipv6UnicastPrefixes + } + return nil +} + +// IPv4 unicast prefix. +type BgpPrefixIpv4UnicastState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast prefix reachable via the originator of this LSP. + // An IPv4 unicast address Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the IPv4 prefix. + // The length of the prefix. PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // ISIS wide metric. - Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` - // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, - // and for all other prefixes in L1 and L2 LSPs. (default) - // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. - // The prefixes are being advertised from a higher level (L2) down to a lower level - // (L1). - RedistributionType *IsisLspExtendedV4Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspExtendedV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // The origin of the prefix. + Origin *BgpPrefixIpv4UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The IPv4 address of the egress interface. + Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` + // The IPv6 address of the egress interface. + Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` + // Optional community attributes. + Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,5,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` + AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // The local preference is a well-known attribute and the value is used for route selection. + // The route with the highest local preference value is preferred. + LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` + // The multi exit discriminator (MED) is an optional non-transitive attribute and the + // value is used for route selection. The route with the lowest MED value is preferred. + MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` } -func (x *IsisLspExtendedV4Prefix) Reset() { - *x = IsisLspExtendedV4Prefix{} +func (x *BgpPrefixIpv4UnicastState) Reset() { + *x = BgpPrefixIpv4UnicastState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43151,13 +43439,13 @@ func (x *IsisLspExtendedV4Prefix) Reset() { } } -func (x *IsisLspExtendedV4Prefix) String() string { +func (x *BgpPrefixIpv4UnicastState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedV4Prefix) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastState) ProtoMessage() {} -func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[292] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43169,141 +43457,128 @@ func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedV4Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedV4Prefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpPrefixIpv4UnicastState.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{292} } -func (x *IsisLspExtendedV4Prefix) GetIpv4Address() string { +func (x *BgpPrefixIpv4UnicastState) GetIpv4Address() string { if x != nil && x.Ipv4Address != nil { return *x.Ipv4Address } return "" } -func (x *IsisLspExtendedV4Prefix) GetPrefixLength() uint32 { +func (x *BgpPrefixIpv4UnicastState) GetPrefixLength() uint32 { if x != nil && x.PrefixLength != nil { return *x.PrefixLength } return 0 } -func (x *IsisLspExtendedV4Prefix) GetMetric() uint32 { - if x != nil && x.Metric != nil { - return *x.Metric +func (x *BgpPrefixIpv4UnicastState) GetOrigin() BgpPrefixIpv4UnicastState_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin } - return 0 + return BgpPrefixIpv4UnicastState_Origin_unspecified } -func (x *IsisLspExtendedV4Prefix) GetRedistributionType() IsisLspExtendedV4Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *BgpPrefixIpv4UnicastState) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId } - return IsisLspExtendedV4Prefix_RedistributionType_unspecified + return 0 } -func (x *IsisLspExtendedV4Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { - if x != nil { - return x.PrefixAttributes +func (x *BgpPrefixIpv4UnicastState) GetIpv4NextHop() string { + if x != nil && x.Ipv4NextHop != nil { + return *x.Ipv4NextHop } - return nil -} - -// It defines list of IPv6 extended reachability information in one IPv6 Reachability -// TLV. -type IsisLspIpv6ReachabilityTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // IPv6 prefix contained within reachability TLVs. - Prefixes []*IsisLspV6Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + return "" } -func (x *IsisLspIpv6ReachabilityTlv) Reset() { - *x = IsisLspIpv6ReachabilityTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[293] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpPrefixIpv4UnicastState) GetIpv6NextHop() string { + if x != nil && x.Ipv6NextHop != nil { + return *x.Ipv6NextHop } + return "" } -func (x *IsisLspIpv6ReachabilityTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpPrefixIpv4UnicastState) GetCommunities() []*ResultBgpCommunity { + if x != nil { + return x.Communities + } + return nil } -func (*IsisLspIpv6ReachabilityTlv) ProtoMessage() {} - -func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[293] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpPrefixIpv4UnicastState) GetAsPath() *ResultBgpAsPath { + if x != nil { + return x.AsPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use IsisLspIpv6ReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv6ReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{293} +func (x *BgpPrefixIpv4UnicastState) GetLocalPreference() uint32 { + if x != nil && x.LocalPreference != nil { + return *x.LocalPreference + } + return 0 } -func (x *IsisLspIpv6ReachabilityTlv) GetPrefixes() []*IsisLspV6Prefix { - if x != nil { - return x.Prefixes +func (x *BgpPrefixIpv4UnicastState) GetMultiExitDiscriminator() uint32 { + if x != nil && x.MultiExitDiscriminator != nil { + return *x.MultiExitDiscriminator } - return nil + return 0 } -// It defines attributes of an IPv6 standard prefix. -type IsisLspV6Prefix struct { +// IPv6 unicast prefix. +type BgpPrefixIpv6UnicastState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv6 unicast prefix reachable via the originator of this LSP. + // An IPv6 unicast address Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` - // The length of the IPv6 prefix. + // The length of the prefix. PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // ISIS wide metric. - Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` - // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, - // and for all other prefixes in L1 and L2 LSPs. (default) - // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. - // The prefixes are being advertised from a higher level (L2) down to a lower level - // (L1). - RedistributionType *IsisLspV6Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV6Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // The origin of the advertised route-internal or external to the ISIS area. Options - // include the following: - // Internal-for intra-area routes, through Level 1 LSPs. - // External-for inter-area routes redistributed within L1, through Level - // 1 LSPs. - OriginType *IsisLspV6Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV6Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` + // The origin of the prefix. + Origin *BgpPrefixIpv6UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The IPv4 address of the egress interface. + Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` + // The IPv6 address of the egress interface. + Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` + // Optional community attributes. + Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,6,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` + AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3,oneof" json:"as_path,omitempty"` + // The local preference is a well-known attribute and the value is used for route selection. + // The route with the highest local preference value is preferred. + LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` + // The multi exit discriminator (MED) is an optional non-transitive attribute and the + // value is used for route selection. The route with the lowest MED value is preferred. + MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` } -func (x *IsisLspV6Prefix) Reset() { - *x = IsisLspV6Prefix{} +func (x *BgpPrefixIpv6UnicastState) Reset() { + *x = BgpPrefixIpv6UnicastState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[294] + mi := &file_otg_proto_msgTypes[293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix) String() string { +func (x *BgpPrefixIpv6UnicastState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastState) ProtoMessage() {} -func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[294] +func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[293] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43314,85 +43589,115 @@ func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294} +// Deprecated: Use BgpPrefixIpv6UnicastState.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{293} } -func (x *IsisLspV6Prefix) GetIpv6Address() string { +func (x *BgpPrefixIpv6UnicastState) GetIpv6Address() string { if x != nil && x.Ipv6Address != nil { return *x.Ipv6Address } return "" } -func (x *IsisLspV6Prefix) GetPrefixLength() uint32 { +func (x *BgpPrefixIpv6UnicastState) GetPrefixLength() uint32 { if x != nil && x.PrefixLength != nil { return *x.PrefixLength } return 0 } -func (x *IsisLspV6Prefix) GetMetric() uint32 { - if x != nil && x.Metric != nil { - return *x.Metric +func (x *BgpPrefixIpv6UnicastState) GetOrigin() BgpPrefixIpv6UnicastState_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin } - return 0 + return BgpPrefixIpv6UnicastState_Origin_unspecified } -func (x *IsisLspV6Prefix) GetRedistributionType() IsisLspV6Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *BgpPrefixIpv6UnicastState) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId } - return IsisLspV6Prefix_RedistributionType_unspecified + return 0 } -func (x *IsisLspV6Prefix) GetOriginType() IsisLspV6Prefix_OriginType_Enum { - if x != nil && x.OriginType != nil { - return *x.OriginType +func (x *BgpPrefixIpv6UnicastState) GetIpv4NextHop() string { + if x != nil && x.Ipv4NextHop != nil { + return *x.Ipv4NextHop } - return IsisLspV6Prefix_OriginType_unspecified + return "" } -func (x *IsisLspV6Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { +func (x *BgpPrefixIpv6UnicastState) GetIpv6NextHop() string { + if x != nil && x.Ipv6NextHop != nil { + return *x.Ipv6NextHop + } + return "" +} + +func (x *BgpPrefixIpv6UnicastState) GetCommunities() []*ResultBgpCommunity { if x != nil { - return x.PrefixAttributes + return x.Communities } return nil } -// This contains the properties of ISIS Prefix attributes for the extended IPv4 and -// IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html -type IsisLspPrefixAttributes struct { +func (x *BgpPrefixIpv6UnicastState) GetAsPath() *ResultBgpAsPath { + if x != nil { + return x.AsPath + } + return nil +} + +func (x *BgpPrefixIpv6UnicastState) GetLocalPreference() uint32 { + if x != nil && x.LocalPreference != nil { + return *x.LocalPreference + } + return 0 +} + +func (x *BgpPrefixIpv6UnicastState) GetMultiExitDiscriminator() uint32 { + if x != nil && x.MultiExitDiscriminator != nil { + return *x.MultiExitDiscriminator + } + return 0 +} + +// BGP communities provide additional capability for tagging routes and for modifying +// BGP routing policy on upstream and downstream routers. BGP community is a 32-bit +// number which is broken into 16-bit AS number and a 16-bit custom value. +type ResultBgpCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // External Prefix Flag (Bit 0) - XFlag *bool `protobuf:"varint,1,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` - // Re-advertisement Flag (Bit 1) - RFlag *bool `protobuf:"varint,2,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` - // Node Flag (Bit 2) - NFlag *bool `protobuf:"varint,3,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` + // The type of community AS number. If community type is manual_as_number then as_number + // and as_custom will be available. + Type *ResultBgpCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpCommunity_Type_Enum,oneof" json:"type,omitempty"` + // First two octets of 32 bit community AS number. + AsNumber *uint32 `protobuf:"varint,2,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // Last two octets of the community value. + AsCustom *uint32 `protobuf:"varint,3,opt,name=as_custom,json=asCustom,proto3,oneof" json:"as_custom,omitempty"` } -func (x *IsisLspPrefixAttributes) Reset() { - *x = IsisLspPrefixAttributes{} +func (x *ResultBgpCommunity) Reset() { + *x = ResultBgpCommunity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[295] + mi := &file_otg_proto_msgTypes[294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspPrefixAttributes) String() string { +func (x *ResultBgpCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspPrefixAttributes) ProtoMessage() {} +func (*ResultBgpCommunity) ProtoMessage() {} -func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[295] +func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[294] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43403,70 +43708,60 @@ func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspPrefixAttributes.ProtoReflect.Descriptor instead. -func (*IsisLspPrefixAttributes) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{295} +// Deprecated: Use ResultBgpCommunity.ProtoReflect.Descriptor instead. +func (*ResultBgpCommunity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{294} } -func (x *IsisLspPrefixAttributes) GetXFlag() bool { - if x != nil && x.XFlag != nil { - return *x.XFlag +func (x *ResultBgpCommunity) GetType() ResultBgpCommunity_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return false + return ResultBgpCommunity_Type_unspecified } -func (x *IsisLspPrefixAttributes) GetRFlag() bool { - if x != nil && x.RFlag != nil { - return *x.RFlag +func (x *ResultBgpCommunity) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } - return false + return 0 } -func (x *IsisLspPrefixAttributes) GetNFlag() bool { - if x != nil && x.NFlag != nil { - return *x.NFlag +func (x *ResultBgpCommunity) GetAsCustom() uint32 { + if x != nil && x.AsCustom != nil { + return *x.AsCustom } - return false + return 0 } -// The request to retrieve LLDP neighbor information for a given instance. -type LldpNeighborsStateRequest struct { +// This attribute identifies the autonomous systems through which routing information +// carried in this UPDATE message has passed. +type ResultBgpAsPath struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LLDP instances for which neighbor information will be retrieved. If - // no names are specified then the results will contain neighbor information for all - // configured LLDP instances. - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - // - // x-constraint: - // - /components/schemas/Lldp/properties/name - LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` - // Specify the neighbors for which information will be returned. If empty or missing - // then information for all neighbors will be returned. - NeighborIdFilters []string `protobuf:"bytes,2,rep,name=neighbor_id_filters,json=neighborIdFilters,proto3" json:"neighbor_id_filters,omitempty"` + // AS Path segments present in the received AS Path attribute. + Segments []*ResultBgpAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *LldpNeighborsStateRequest) Reset() { - *x = LldpNeighborsStateRequest{} +func (x *ResultBgpAsPath) Reset() { + *x = ResultBgpAsPath{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[296] + mi := &file_otg_proto_msgTypes[295] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsStateRequest) String() string { +func (x *ResultBgpAsPath) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsStateRequest) ProtoMessage() {} +func (*ResultBgpAsPath) ProtoMessage() {} -func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[296] +func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[295] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43477,101 +43772,54 @@ func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsStateRequest.ProtoReflect.Descriptor instead. -func (*LldpNeighborsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{296} -} - -func (x *LldpNeighborsStateRequest) GetLldpNames() []string { - if x != nil { - return x.LldpNames - } - return nil +// Deprecated: Use ResultBgpAsPath.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPath) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{295} } -func (x *LldpNeighborsStateRequest) GetNeighborIdFilters() []string { +func (x *ResultBgpAsPath) GetSegments() []*ResultBgpAsPathSegment { if x != nil { - return x.NeighborIdFilters + return x.Segments } return nil } -// LLDP neighbor information. -type LldpNeighborsState struct { +// Configuration for a single BGP AS path segment +type ResultBgpAsPathSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the LLDP instance. - LldpName *string `protobuf:"bytes,1,opt,name=lldp_name,json=lldpName,proto3,oneof" json:"lldp_name,omitempty"` - // The system name field shall contain an alpha-numeric string that indicates the system's - // administratively assigned name. The system name should be the system's fully qualified - // domain name. If implementations support IETF RFC 3418, the sysName object should - // be used for this field. - SystemName *string `protobuf:"bytes,2,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` - // The system description field shall contain an alpha-numeric string that is the textual - // description of the network entity. The system description should include the full - // name and version identification of the system's hardware type, software operating - // system, and networking software. If implementations support IETF RFC 3418, the sysDescr - // object should be used for this field. - SystemDescription *string `protobuf:"bytes,3,opt,name=system_description,json=systemDescription,proto3,oneof" json:"system_description,omitempty"` - // The Chassis ID is a mandatory TLV which identifies the chassis component of the - // endpoint identifier associated with the transmitting LLDP agent. - ChassisId *string `protobuf:"bytes,4,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` - // This field identifies the format and source of the chassis identifier string. It - // is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. - ChassisIdType *LldpNeighborsState_ChassisIdType_Enum `protobuf:"varint,5,opt,name=chassis_id_type,json=chassisIdType,proto3,enum=otg.LldpNeighborsState_ChassisIdType_Enum,oneof" json:"chassis_id_type,omitempty"` - // System generated identifier for the neighbor on the LLDP instance. - NeighborId *string `protobuf:"bytes,6,opt,name=neighbor_id,json=neighborId,proto3,oneof" json:"neighbor_id,omitempty"` - // Age since discovery in seconds. - Age *uint32 `protobuf:"varint,7,opt,name=age,proto3,oneof" json:"age,omitempty"` - // Seconds since last update received. - LastUpdate *uint32 `protobuf:"varint,8,opt,name=last_update,json=lastUpdate,proto3,oneof" json:"last_update,omitempty"` - // The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information - // from the neighbor should be considered valid. - Ttl *uint32 `protobuf:"varint,9,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` - // The Port ID is a mandatory TLV which identifies the port component of the endpoint - // identifier associated with the transmitting LLDP agent. If the specified port is - // an IEEE 802.3 Repeater port, then this TLV is optional. - PortId *string `protobuf:"bytes,10,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` - // This field identifies the format and source of the port identifier string. It is - // an enumerator defined by the PtopoPortIdType object from RFC2922. - PortIdType *LldpNeighborsState_PortIdType_Enum `protobuf:"varint,11,opt,name=port_id_type,json=portIdType,proto3,enum=otg.LldpNeighborsState_PortIdType_Enum,oneof" json:"port_id_type,omitempty"` - // The binary string containing the actual port identifier for the port which this LLDP - // PDU was transmitted. The source and format of this field is defined by PtopoPortId - // from RFC2922. - PortDescription *string `protobuf:"bytes,12,opt,name=port_description,json=portDescription,proto3,oneof" json:"port_description,omitempty"` - // The Management Address is a mandatory TLV which identifies a network address associated - // with the local LLDP agent, which can be used to reach the agent on the port identified - // in the Port ID TLV. - ManagementAddress *string `protobuf:"bytes,13,opt,name=management_address,json=managementAddress,proto3,oneof" json:"management_address,omitempty"` - // The enumerated value for the network address type identified in this TLV. This enumeration - // is defined in the 'Assigned Numbers' RFC [RFC3232] and the ianaAddressFamilyNumbers - // object. - ManagementAddressType *string `protobuf:"bytes,14,opt,name=management_address_type,json=managementAddressType,proto3,oneof" json:"management_address_type,omitempty"` - // Description missing in models - CustomTlvs []*LldpCustomTLVState `protobuf:"bytes,15,rep,name=custom_tlvs,json=customTlvs,proto3" json:"custom_tlvs,omitempty"` - // Description missing in models - Capabilities []*LldpCapabilityState `protobuf:"bytes,16,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + // AS sequence is the most common type of AS_PATH, it contains the list of ASNs starting + // with the most recent ASN being added read from left to right. + // The other three AS_PATH types are used for Confederations - AS_SET is the type of + // AS_PATH attribute that summarizes routes using using the aggregate-address command, + // allowing AS_PATHs to be summarized in the update as well. - AS_CONFED_SEQ gives + // the list of ASNs in the path starting with the most recent ASN to be added reading + // left to right - AS_CONFED_SET will allow summarization of multiple AS PATHs to be + // sent in BGP Updates. + Type *ResultBgpAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` + // The AS numbers in this AS path segment. + AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` } -func (x *LldpNeighborsState) Reset() { - *x = LldpNeighborsState{} +func (x *ResultBgpAsPathSegment) Reset() { + *x = ResultBgpAsPathSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[297] + mi := &file_otg_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState) String() string { +func (x *ResultBgpAsPathSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState) ProtoMessage() {} +func (*ResultBgpAsPathSegment) ProtoMessage() {} -func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[297] +func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[296] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43582,144 +43830,95 @@ func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297} -} - -func (x *LldpNeighborsState) GetLldpName() string { - if x != nil && x.LldpName != nil { - return *x.LldpName - } - return "" -} - -func (x *LldpNeighborsState) GetSystemName() string { - if x != nil && x.SystemName != nil { - return *x.SystemName - } - return "" -} - -func (x *LldpNeighborsState) GetSystemDescription() string { - if x != nil && x.SystemDescription != nil { - return *x.SystemDescription - } - return "" -} - -func (x *LldpNeighborsState) GetChassisId() string { - if x != nil && x.ChassisId != nil { - return *x.ChassisId - } - return "" -} - -func (x *LldpNeighborsState) GetChassisIdType() LldpNeighborsState_ChassisIdType_Enum { - if x != nil && x.ChassisIdType != nil { - return *x.ChassisIdType - } - return LldpNeighborsState_ChassisIdType_unspecified -} - -func (x *LldpNeighborsState) GetNeighborId() string { - if x != nil && x.NeighborId != nil { - return *x.NeighborId - } - return "" +// Deprecated: Use ResultBgpAsPathSegment.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPathSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{296} } -func (x *LldpNeighborsState) GetAge() uint32 { - if x != nil && x.Age != nil { - return *x.Age +func (x *ResultBgpAsPathSegment) GetType() ResultBgpAsPathSegment_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return 0 + return ResultBgpAsPathSegment_Type_unspecified } -func (x *LldpNeighborsState) GetLastUpdate() uint32 { - if x != nil && x.LastUpdate != nil { - return *x.LastUpdate +func (x *ResultBgpAsPathSegment) GetAsNumbers() []uint32 { + if x != nil { + return x.AsNumbers } - return 0 + return nil } -func (x *LldpNeighborsState) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl - } - return 0 -} +// The request to retrieve ISIS Link State PDU (LSP) information learned by the router. +type IsisLspsStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *LldpNeighborsState) GetPortId() string { - if x != nil && x.PortId != nil { - return *x.PortId - } - return "" + // The names of ISIS routers for which learned information is requested. An empty list + // will return results for all ISIS routers. + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + IsisRouterNames []string `protobuf:"bytes,1,rep,name=isis_router_names,json=isisRouterNames,proto3" json:"isis_router_names,omitempty"` } -func (x *LldpNeighborsState) GetPortIdType() LldpNeighborsState_PortIdType_Enum { - if x != nil && x.PortIdType != nil { - return *x.PortIdType +func (x *IsisLspsStateRequest) Reset() { + *x = IsisLspsStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[297] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return LldpNeighborsState_PortIdType_unspecified } -func (x *LldpNeighborsState) GetPortDescription() string { - if x != nil && x.PortDescription != nil { - return *x.PortDescription - } - return "" +func (x *IsisLspsStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *LldpNeighborsState) GetManagementAddress() string { - if x != nil && x.ManagementAddress != nil { - return *x.ManagementAddress - } - return "" -} +func (*IsisLspsStateRequest) ProtoMessage() {} -func (x *LldpNeighborsState) GetManagementAddressType() string { - if x != nil && x.ManagementAddressType != nil { - return *x.ManagementAddressType +func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[297] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *LldpNeighborsState) GetCustomTlvs() []*LldpCustomTLVState { - if x != nil { - return x.CustomTlvs - } - return nil +// Deprecated: Use IsisLspsStateRequest.ProtoReflect.Descriptor instead. +func (*IsisLspsStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{297} } -func (x *LldpNeighborsState) GetCapabilities() []*LldpCapabilityState { +func (x *IsisLspsStateRequest) GetIsisRouterNames() []string { if x != nil { - return x.Capabilities + return x.IsisRouterNames } return nil } -// Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised -// with TLV type 127. -type LldpCustomTLVState struct { +// The result of ISIS LSP information that are retrieved. +type IsisLspsState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The integer value identifying the type of information contained in the value field. - CustomType *uint32 `protobuf:"varint,1,opt,name=custom_type,json=customType,proto3,oneof" json:"custom_type,omitempty"` - // The organizationally unique identifier field shall contain the organization's OUI - // as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order - // 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in - // network byte order, as defined in the 'Assigned Numbers' RFC [RFC3232]. - Oui *string `protobuf:"bytes,2,opt,name=oui,proto3,oneof" json:"oui,omitempty"` - // The organizationally defined subtype field shall contain a unique subtype value assigned - // by the defining organization. - OuiSubtype *string `protobuf:"bytes,3,opt,name=oui_subtype,json=ouiSubtype,proto3,oneof" json:"oui_subtype,omitempty"` + // The name of the ISIS Router. + IsisRouterName *string `protobuf:"bytes,1,opt,name=isis_router_name,json=isisRouterName,proto3,oneof" json:"isis_router_name,omitempty"` + // One or more LSPs that are learned by this ISIS router. + Lsps []*IsisLspState `protobuf:"bytes,2,rep,name=lsps,proto3" json:"lsps,omitempty"` } -func (x *LldpCustomTLVState) Reset() { - *x = LldpCustomTLVState{} +func (x *IsisLspsState) Reset() { + *x = IsisLspsState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43727,13 +43926,13 @@ func (x *LldpCustomTLVState) Reset() { } } -func (x *LldpCustomTLVState) String() string { +func (x *IsisLspsState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCustomTLVState) ProtoMessage() {} +func (*IsisLspsState) ProtoMessage() {} -func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { +func (x *IsisLspsState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[298] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43745,48 +43944,61 @@ func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpCustomTLVState.ProtoReflect.Descriptor instead. -func (*LldpCustomTLVState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspsState.ProtoReflect.Descriptor instead. +func (*IsisLspsState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{298} } -func (x *LldpCustomTLVState) GetCustomType() uint32 { - if x != nil && x.CustomType != nil { - return *x.CustomType - } - return 0 -} - -func (x *LldpCustomTLVState) GetOui() string { - if x != nil && x.Oui != nil { - return *x.Oui +func (x *IsisLspsState) GetIsisRouterName() string { + if x != nil && x.IsisRouterName != nil { + return *x.IsisRouterName } return "" } -func (x *LldpCustomTLVState) GetOuiSubtype() string { - if x != nil && x.OuiSubtype != nil { - return *x.OuiSubtype +func (x *IsisLspsState) GetLsps() []*IsisLspState { + if x != nil { + return x.Lsps } - return "" + return nil } -// LLDP system capability advertised by the neighbor -type LldpCapabilityState struct { +// ISIS LSP. +type IsisLspState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of the system capability advertised by the neighbor. Capabilities are represented - // in a bitmap that defines the primary functions of the system. The capabilities are - // defined in IEEE 802.1AB. - CapabilityName *LldpCapabilityState_CapabilityName_Enum `protobuf:"varint,1,opt,name=capability_name,json=capabilityName,proto3,enum=otg.LldpCapabilityState_CapabilityName_Enum,oneof" json:"capability_name,omitempty"` - // Indicates whether the corresponding system capability is enabled on the neighbor. - CapabilityEnabled *bool `protobuf:"varint,2,opt,name=capability_enabled,json=capabilityEnabled,proto3,oneof" json:"capability_enabled,omitempty"` + // LSP ID in the format, e.g. '640000000001-00-00'. LSP ID consists of the System ID + // of a neighbor, the Pseudonode ID, and the LSP number. The last two bytes represent + // Pseudonode ID and LSP number respectively. A pseudonode is a logical representation + // of the LAN which is generated by a Designated Intermediate System (DIS) on a LAN + // segment. If one LSP exceeds the maximum LSP size then it is sent in another LSP with + // the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. + // Then the sequence number is incremented by 1. + // required = true + LspId string `protobuf:"bytes,1,opt,name=lsp_id,json=lspId,proto3" json:"lsp_id,omitempty"` + // Link State PDU type. + PduType *IsisLspState_PduType_Enum `protobuf:"varint,2,opt,name=pdu_type,json=pduType,proto3,enum=otg.IsisLspState_PduType_Enum,oneof" json:"pdu_type,omitempty"` + // Remaining lifetime in seconds before LSP expires. + RemainingLifetime *uint32 `protobuf:"varint,3,opt,name=remaining_lifetime,json=remainingLifetime,proto3,oneof" json:"remaining_lifetime,omitempty"` + // Sequence number of the LSP. + SequenceNumber *uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + // Total length of the LSP. + PduLength *uint32 `protobuf:"varint,5,opt,name=pdu_length,json=pduLength,proto3,oneof" json:"pdu_length,omitempty"` + // LSP Type-Block flags. + Flags *IsisLspFlags `protobuf:"bytes,6,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // IS Type - bits 1 and 2 indicate the type of Intermediate System. + // 1 - ( i.e. bit 1 set) Level 1 Intermediate system. + // 2 - Unused value. + // 3 - (i.e. bits 1 and 2 set) Level 2 Intermediate system. + IsType *uint32 `protobuf:"varint,7,opt,name=is_type,json=isType,proto3,oneof" json:"is_type,omitempty"` + // It refers to Link State PDU State TLVs container. + Tlvs *IsisLspTlvs `protobuf:"bytes,8,opt,name=tlvs,proto3,oneof" json:"tlvs,omitempty"` } -func (x *LldpCapabilityState) Reset() { - *x = LldpCapabilityState{} +func (x *IsisLspState) Reset() { + *x = IsisLspState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43794,13 +44006,13 @@ func (x *LldpCapabilityState) Reset() { } } -func (x *LldpCapabilityState) String() string { +func (x *IsisLspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCapabilityState) ProtoMessage() {} +func (*IsisLspState) ProtoMessage() {} -func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { +func (x *IsisLspState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[299] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43812,45 +44024,91 @@ func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpCapabilityState.ProtoReflect.Descriptor instead. -func (*LldpCapabilityState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspState.ProtoReflect.Descriptor instead. +func (*IsisLspState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{299} } -func (x *LldpCapabilityState) GetCapabilityName() LldpCapabilityState_CapabilityName_Enum { - if x != nil && x.CapabilityName != nil { - return *x.CapabilityName +func (x *IsisLspState) GetLspId() string { + if x != nil { + return x.LspId } - return LldpCapabilityState_CapabilityName_unspecified + return "" } -func (x *LldpCapabilityState) GetCapabilityEnabled() bool { - if x != nil && x.CapabilityEnabled != nil { - return *x.CapabilityEnabled +func (x *IsisLspState) GetPduType() IsisLspState_PduType_Enum { + if x != nil && x.PduType != nil { + return *x.PduType } - return false + return IsisLspState_PduType_unspecified } -// The request to retrieve RSVP Label Switched Path (LSP) information learned by the -// router. -type RsvpLspsStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *IsisLspState) GetRemainingLifetime() uint32 { + if x != nil && x.RemainingLifetime != nil { + return *x.RemainingLifetime + } + return 0 +} - // The names of RSVP-TE routers for which learned information is requested. An empty - // list will return results for all RSVP=TE routers. - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - RsvpRouterNames []string `protobuf:"bytes,1,rep,name=rsvp_router_names,json=rsvpRouterNames,proto3" json:"rsvp_router_names,omitempty"` +func (x *IsisLspState) GetSequenceNumber() uint64 { + if x != nil && x.SequenceNumber != nil { + return *x.SequenceNumber + } + return 0 } -func (x *RsvpLspsStateRequest) Reset() { - *x = RsvpLspsStateRequest{} +func (x *IsisLspState) GetPduLength() uint32 { + if x != nil && x.PduLength != nil { + return *x.PduLength + } + return 0 +} + +func (x *IsisLspState) GetFlags() *IsisLspFlags { + if x != nil { + return x.Flags + } + return nil +} + +func (x *IsisLspState) GetIsType() uint32 { + if x != nil && x.IsType != nil { + return *x.IsType + } + return 0 +} + +func (x *IsisLspState) GetTlvs() *IsisLspTlvs { + if x != nil { + return x.Tlvs + } + return nil +} + +// This contains the list of TLVs present in one LSP. +type IsisLspTlvs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Array of Hostname TLVs ( type 137) present in this LSP. + HostnameTlvs []*IsisLspHostname `protobuf:"bytes,1,rep,name=hostname_tlvs,json=hostnameTlvs,proto3" json:"hostname_tlvs,omitempty"` + // Array of IS-Reachability TLVs (type 2) present in this LSP. + IsReachabilityTlvs []*IsisLspIsReachabilityTlv `protobuf:"bytes,2,rep,name=is_reachability_tlvs,json=isReachabilityTlvs,proto3" json:"is_reachability_tlvs,omitempty"` + // Array of Extended IS-Reachability TLVs (type 22) present in this LSP. + ExtendedIsReachabilityTlvs []*IsisLspExtendedIsReachabilityTlv `protobuf:"bytes,3,rep,name=extended_is_reachability_tlvs,json=extendedIsReachabilityTlvs,proto3" json:"extended_is_reachability_tlvs,omitempty"` + // Array of IPv4 Internal Reachability TLVs (type 128) present in this LSP. + Ipv4InternalReachabilityTlvs []*IsisLspIpv4InternalReachabilityTlv `protobuf:"bytes,4,rep,name=ipv4_internal_reachability_tlvs,json=ipv4InternalReachabilityTlvs,proto3" json:"ipv4_internal_reachability_tlvs,omitempty"` + // Array of IPv4 External Reachability TLVs (type 130) present in this LSP. + Ipv4ExternalReachabilityTlvs []*IsisLspIpv4ExternalReachabilityTlv `protobuf:"bytes,5,rep,name=ipv4_external_reachability_tlvs,json=ipv4ExternalReachabilityTlvs,proto3" json:"ipv4_external_reachability_tlvs,omitempty"` + // Array of IPv4 Extended Reachability TLVs (type 135) present in this LSP. + ExtendedIpv4ReachabilityTlvs []*IsisLspExtendedIpv4ReachabilityTlv `protobuf:"bytes,6,rep,name=extended_ipv4_reachability_tlvs,json=extendedIpv4ReachabilityTlvs,proto3" json:"extended_ipv4_reachability_tlvs,omitempty"` + // Array of IPv6 Reachability TLVs (type 236) present in this LSP. + Ipv6ReachabilityTlvs []*IsisLspIpv6ReachabilityTlv `protobuf:"bytes,7,rep,name=ipv6_reachability_tlvs,json=ipv6ReachabilityTlvs,proto3" json:"ipv6_reachability_tlvs,omitempty"` +} + +func (x *IsisLspTlvs) Reset() { + *x = IsisLspTlvs{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43858,13 +44116,13 @@ func (x *RsvpLspsStateRequest) Reset() { } } -func (x *RsvpLspsStateRequest) String() string { +func (x *IsisLspTlvs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspsStateRequest) ProtoMessage() {} +func (*IsisLspTlvs) ProtoMessage() {} -func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { +func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[300] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43876,32 +44134,72 @@ func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspsStateRequest.ProtoReflect.Descriptor instead. -func (*RsvpLspsStateRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspTlvs.ProtoReflect.Descriptor instead. +func (*IsisLspTlvs) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{300} } -func (x *RsvpLspsStateRequest) GetRsvpRouterNames() []string { +func (x *IsisLspTlvs) GetHostnameTlvs() []*IsisLspHostname { if x != nil { - return x.RsvpRouterNames + return x.HostnameTlvs } return nil } -// Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router. -type RsvpLspsState struct { +func (x *IsisLspTlvs) GetIsReachabilityTlvs() []*IsisLspIsReachabilityTlv { + if x != nil { + return x.IsReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetExtendedIsReachabilityTlvs() []*IsisLspExtendedIsReachabilityTlv { + if x != nil { + return x.ExtendedIsReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetIpv4InternalReachabilityTlvs() []*IsisLspIpv4InternalReachabilityTlv { + if x != nil { + return x.Ipv4InternalReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetIpv4ExternalReachabilityTlvs() []*IsisLspIpv4ExternalReachabilityTlv { + if x != nil { + return x.Ipv4ExternalReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetExtendedIpv4ReachabilityTlvs() []*IsisLspExtendedIpv4ReachabilityTlv { + if x != nil { + return x.ExtendedIpv4ReachabilityTlvs + } + return nil +} + +func (x *IsisLspTlvs) GetIpv6ReachabilityTlvs() []*IsisLspIpv6ReachabilityTlv { + if x != nil { + return x.Ipv6ReachabilityTlvs + } + return nil +} + +// It contains Hostname for the TLV 137. +type IsisLspHostname struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the RSVP-TE Router. - RsvpRouterName *string `protobuf:"bytes,1,opt,name=rsvp_router_name,json=rsvpRouterName,proto3,oneof" json:"rsvp_router_name,omitempty"` - // IPv4 Point-to-Point RSVP-TE Discovered LSPs. - Ipv4Lsps []*RsvpIPv4LspState `protobuf:"bytes,2,rep,name=ipv4_lsps,json=ipv4Lsps,proto3" json:"ipv4_lsps,omitempty"` + // Hostname for an ISIS router. + Hostname *string `protobuf:"bytes,1,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` } -func (x *RsvpLspsState) Reset() { - *x = RsvpLspsState{} +func (x *IsisLspHostname) Reset() { + *x = IsisLspHostname{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43909,13 +44207,13 @@ func (x *RsvpLspsState) Reset() { } } -func (x *RsvpLspsState) String() string { +func (x *IsisLspHostname) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspsState) ProtoMessage() {} +func (*IsisLspHostname) ProtoMessage() {} -func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { +func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[301] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43927,45 +44225,44 @@ func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspsState.ProtoReflect.Descriptor instead. -func (*RsvpLspsState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspHostname.ProtoReflect.Descriptor instead. +func (*IsisLspHostname) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{301} } -func (x *RsvpLspsState) GetRsvpRouterName() string { - if x != nil && x.RsvpRouterName != nil { - return *x.RsvpRouterName +func (x *IsisLspHostname) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname } return "" } -func (x *RsvpLspsState) GetIpv4Lsps() []*RsvpIPv4LspState { - if x != nil { - return x.Ipv4Lsps - } - return nil -} - -// IPv4 RSVP-TE Discovered LSPs. -type RsvpIPv4LspState struct { +// LSP Type flags. +type IsisLspFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The origin IPv4 address of RSVP session. - SourceAddress *string `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3,oneof" json:"source_address,omitempty"` - // The IPv4 destination address of RSVP session. - DestinationAddress *string `protobuf:"bytes,2,opt,name=destination_address,json=destinationAddress,proto3,oneof" json:"destination_address,omitempty"` - // It refers to the RSVP LSP properties. - Lsp *RsvpLspState `protobuf:"bytes,3,opt,name=lsp,proto3,oneof" json:"lsp,omitempty"` - // It refers to RSVP RRO objects container. - Rros []*RsvpLspIpv4Rro `protobuf:"bytes,4,rep,name=rros,proto3" json:"rros,omitempty"` - // It refers to RSVP ERO objects container. - Eros []*RsvpLspIpv4Ero `protobuf:"bytes,5,rep,name=eros,proto3" json:"eros,omitempty"` + // When set, the originator supports partition repair. + PartitionRepair *bool `protobuf:"varint,1,opt,name=partition_repair,json=partitionRepair,proto3,oneof" json:"partition_repair,omitempty"` + // When set, the originator is attached to another area using the referred metric. + AttachedError *bool `protobuf:"varint,2,opt,name=attached_error,json=attachedError,proto3,oneof" json:"attached_error,omitempty"` + // When set, the originator is attached to another + // area using the referred metric. + AttachedExpense *bool `protobuf:"varint,3,opt,name=attached_expense,json=attachedExpense,proto3,oneof" json:"attached_expense,omitempty"` + // Delay Metric - when set, the originator is attached to another + // area using the referred metric. + AttachedDelay *bool `protobuf:"varint,4,opt,name=attached_delay,json=attachedDelay,proto3,oneof" json:"attached_delay,omitempty"` + // Default Metric - when set, the originator is attached to another + // area using the referred metric. + AttachedDefault *bool `protobuf:"varint,5,opt,name=attached_default,json=attachedDefault,proto3,oneof" json:"attached_default,omitempty"` + // Overload bit - when set, the originator is overloaded, and must + // be avoided in path calculation. + Overload *bool `protobuf:"varint,6,opt,name=overload,proto3,oneof" json:"overload,omitempty"` } -func (x *RsvpIPv4LspState) Reset() { - *x = RsvpIPv4LspState{} +func (x *IsisLspFlags) Reset() { + *x = IsisLspFlags{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43973,13 +44270,13 @@ func (x *RsvpIPv4LspState) Reset() { } } -func (x *RsvpIPv4LspState) String() string { +func (x *IsisLspFlags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpIPv4LspState) ProtoMessage() {} +func (*IsisLspFlags) ProtoMessage() {} -func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { +func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[302] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43991,75 +44288,66 @@ func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpIPv4LspState.ProtoReflect.Descriptor instead. -func (*RsvpIPv4LspState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspFlags.ProtoReflect.Descriptor instead. +func (*IsisLspFlags) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{302} } -func (x *RsvpIPv4LspState) GetSourceAddress() string { - if x != nil && x.SourceAddress != nil { - return *x.SourceAddress +func (x *IsisLspFlags) GetPartitionRepair() bool { + if x != nil && x.PartitionRepair != nil { + return *x.PartitionRepair } - return "" + return false } -func (x *RsvpIPv4LspState) GetDestinationAddress() string { - if x != nil && x.DestinationAddress != nil { - return *x.DestinationAddress +func (x *IsisLspFlags) GetAttachedError() bool { + if x != nil && x.AttachedError != nil { + return *x.AttachedError } - return "" + return false } -func (x *RsvpIPv4LspState) GetLsp() *RsvpLspState { - if x != nil { - return x.Lsp +func (x *IsisLspFlags) GetAttachedExpense() bool { + if x != nil && x.AttachedExpense != nil { + return *x.AttachedExpense } - return nil + return false } -func (x *RsvpIPv4LspState) GetRros() []*RsvpLspIpv4Rro { - if x != nil { - return x.Rros +func (x *IsisLspFlags) GetAttachedDelay() bool { + if x != nil && x.AttachedDelay != nil { + return *x.AttachedDelay } - return nil + return false } -func (x *RsvpIPv4LspState) GetEros() []*RsvpLspIpv4Ero { - if x != nil { - return x.Eros +func (x *IsisLspFlags) GetAttachedDefault() bool { + if x != nil && x.AttachedDefault != nil { + return *x.AttachedDefault } - return nil + return false } -// IPv4 RSVP-TE Discovered LSPs. -type RsvpLspState struct { +func (x *IsisLspFlags) GetOverload() bool { + if x != nil && x.Overload != nil { + return *x.Overload + } + return false +} + +// This container describes list of ISIS neighbors and attributes in IS-Reachability +// TLV (type 2). +type IsisLspIsReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The tunnel id of RSVP session which acts as an identifier that remains constant over - // the life of the tunnel. - TunnelId *uint32 `protobuf:"varint,1,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` - // The lsp-id of RSVP session which acts as a differentiator for two lsps originating - // from the same headend, commonly used to distinguish RSVP sessions during make before - // break operations. - LspId *uint32 `protobuf:"varint,2,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` - // The value of RSVP-TE Session Name field of the Session Attribute object. - SessionName *string `protobuf:"bytes,3,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` - // The label received by RSVP-TE ingress. - LabelIn *uint32 `protobuf:"varint,4,opt,name=label_in,json=labelIn,proto3,oneof" json:"label_in,omitempty"` - // The label assigned by RSVP-TE egress. - LabelOut *uint32 `protobuf:"varint,5,opt,name=label_out,json=labelOut,proto3,oneof" json:"label_out,omitempty"` - // Operational state of the RSVP LSP. - SessionStatus *RsvpLspState_SessionStatus_Enum `protobuf:"varint,6,opt,name=session_status,json=sessionStatus,proto3,enum=otg.RsvpLspState_SessionStatus_Enum,oneof" json:"session_status,omitempty"` - // The reason for the last flap of this RSVP session. - LastFlapReason *RsvpLspState_LastFlapReason_Enum `protobuf:"varint,7,opt,name=last_flap_reason,json=lastFlapReason,proto3,enum=otg.RsvpLspState_LastFlapReason_Enum,oneof" json:"last_flap_reason,omitempty"` - // The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero. - UpTime *uint64 `protobuf:"varint,8,opt,name=up_time,json=upTime,proto3,oneof" json:"up_time,omitempty"` + // This container describes Intermediate System (IS) neighbors. + Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` } -func (x *RsvpLspState) Reset() { - *x = RsvpLspState{} +func (x *IsisLspIsReachabilityTlv) Reset() { + *x = IsisLspIsReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44067,13 +44355,13 @@ func (x *RsvpLspState) Reset() { } } -func (x *RsvpLspState) String() string { +func (x *IsisLspIsReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState) ProtoMessage() {} +func (*IsisLspIsReachabilityTlv) ProtoMessage() {} -func (x *RsvpLspState) ProtoReflect() protoreflect.Message { +func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[303] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44085,89 +44373,31 @@ func (x *RsvpLspState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspState.ProtoReflect.Descriptor instead. -func (*RsvpLspState) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspIsReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIsReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{303} } -func (x *RsvpLspState) GetTunnelId() uint32 { - if x != nil && x.TunnelId != nil { - return *x.TunnelId - } - return 0 -} - -func (x *RsvpLspState) GetLspId() uint32 { - if x != nil && x.LspId != nil { - return *x.LspId - } - return 0 -} - -func (x *RsvpLspState) GetSessionName() string { - if x != nil && x.SessionName != nil { - return *x.SessionName - } - return "" -} - -func (x *RsvpLspState) GetLabelIn() uint32 { - if x != nil && x.LabelIn != nil { - return *x.LabelIn - } - return 0 -} - -func (x *RsvpLspState) GetLabelOut() uint32 { - if x != nil && x.LabelOut != nil { - return *x.LabelOut - } - return 0 -} - -func (x *RsvpLspState) GetSessionStatus() RsvpLspState_SessionStatus_Enum { - if x != nil && x.SessionStatus != nil { - return *x.SessionStatus - } - return RsvpLspState_SessionStatus_unspecified -} - -func (x *RsvpLspState) GetLastFlapReason() RsvpLspState_LastFlapReason_Enum { - if x != nil && x.LastFlapReason != nil { - return *x.LastFlapReason - } - return RsvpLspState_LastFlapReason_unspecified -} - -func (x *RsvpLspState) GetUpTime() uint64 { - if x != nil && x.UpTime != nil { - return *x.UpTime +func (x *IsisLspIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { + if x != nil { + return x.Neighbors } - return 0 + return nil } -// This contains the list of Record Route Object(RRO) objects associated with the traffic -// engineering tunnel. The Record Route Object(RRO) is used in RSVP-TE to record the -// route traversed by the LSP. The RRO might be present in both Path message and Resv -// message, the RRO stores the IP addresses of the routers that the traffic engineering -// tunnel traversed and also the label generated and distributed by the routers. The -// RROs in the Resv message mirrors that of the Path message, the only difference is -// that the RRO in a Resv message records the path information in the reverse direction. -type RsvpLspIpv4Rro struct { +// This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type +// 22). +type IsisLspExtendedIsReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv4 addresses of the routers that the traffic engineering tunnel traversed. - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // Label reported for RRO hop. When the Label_Recording flag is set in the Session Attribute - // object, nodes doing route recording should include the Label Record subobject containing - // the reported label. - ReportedLabel *uint32 `protobuf:"varint,2,opt,name=reported_label,json=reportedLabel,proto3,oneof" json:"reported_label,omitempty"` + // This container describes IS neighbors. + Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` } -func (x *RsvpLspIpv4Rro) Reset() { - *x = RsvpLspIpv4Rro{} +func (x *IsisLspExtendedIsReachabilityTlv) Reset() { + *x = IsisLspExtendedIsReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44175,13 +44405,13 @@ func (x *RsvpLspIpv4Rro) Reset() { } } -func (x *RsvpLspIpv4Rro) String() string { +func (x *IsisLspExtendedIsReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Rro) ProtoMessage() {} +func (*IsisLspExtendedIsReachabilityTlv) ProtoMessage() {} -func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { +func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[304] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44193,45 +44423,30 @@ func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Rro.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Rro) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspExtendedIsReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedIsReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{304} } -func (x *RsvpLspIpv4Rro) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address - } - return "" -} - -func (x *RsvpLspIpv4Rro) GetReportedLabel() uint32 { - if x != nil && x.ReportedLabel != nil { - return *x.ReportedLabel +func (x *IsisLspExtendedIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { + if x != nil { + return x.Neighbors } - return 0 + return nil } -// This contains the list of sub-objects included in the Explicit Route Object(ERO) -// object send in the PATH message from the ingress. These sub-objects contain the intermediate -// hops to be traversed by the LSP while being forwarded towards the egress endpoint. -type RsvpLspIpv4Ero struct { +// This contains IS neighbors. +type IsisLspneighbor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 - // prefix. - Prefix *string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // The autonomous system number indicated by the ERO. Specified only when the ERO hop - // is an 2 or 4-byte AS number. - Asn *uint32 `protobuf:"varint,2,opt,name=asn,proto3,oneof" json:"asn,omitempty"` - // The type indicated by the ERO. - Type *RsvpLspIpv4Ero_Type_Enum `protobuf:"varint,3,opt,name=type,proto3,enum=otg.RsvpLspIpv4Ero_Type_Enum,oneof" json:"type,omitempty"` + // The System ID for this emulated ISIS router, e.g. 640100010000. + SystemId *string `protobuf:"bytes,1,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` } -func (x *RsvpLspIpv4Ero) Reset() { - *x = RsvpLspIpv4Ero{} +func (x *IsisLspneighbor) Reset() { + *x = IsisLspneighbor{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44239,13 +44454,13 @@ func (x *RsvpLspIpv4Ero) Reset() { } } -func (x *RsvpLspIpv4Ero) String() string { +func (x *IsisLspneighbor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Ero) ProtoMessage() {} +func (*IsisLspneighbor) ProtoMessage() {} -func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { +func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[305] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44257,53 +44472,32 @@ func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Ero.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Ero) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspneighbor.ProtoReflect.Descriptor instead. +func (*IsisLspneighbor) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{305} } -func (x *RsvpLspIpv4Ero) GetPrefix() string { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *IsisLspneighbor) GetSystemId() string { + if x != nil && x.SystemId != nil { + return *x.SystemId } return "" } -func (x *RsvpLspIpv4Ero) GetAsn() uint32 { - if x != nil && x.Asn != nil { - return *x.Asn - } - return 0 -} - -func (x *RsvpLspIpv4Ero) GetType() RsvpLspIpv4Ero_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type - } - return RsvpLspIpv4Ero_Type_unspecified -} - -// The capture result request to the traffic generator. Stops the port capture on the -// port_name and returns the capture. -type CaptureRequest struct { +// This container defines list of IPv4 internal reachability information in one IPv4 +// internal reachability TLV. +// This is advertised when the origin-type is set 'internal' in route range configurations. +type IsisLspIpv4InternalReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a port a capture is started on. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // required = true - PortName string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"` + // Describes list of IPv4 prefixes in this TLV. + Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *CaptureRequest) Reset() { - *x = CaptureRequest{} +func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { + *x = IsisLspIpv4InternalReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44311,13 +44505,13 @@ func (x *CaptureRequest) Reset() { } } -func (x *CaptureRequest) String() string { +func (x *IsisLspIpv4InternalReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureRequest) ProtoMessage() {} +func (*IsisLspIpv4InternalReachabilityTlv) ProtoMessage() {} -func (x *CaptureRequest) ProtoReflect() protoreflect.Message { +func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[306] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44329,37 +44523,32 @@ func (x *CaptureRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureRequest.ProtoReflect.Descriptor instead. -func (*CaptureRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspIpv4InternalReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv4InternalReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{306} } -func (x *CaptureRequest) GetPortName() string { +func (x *IsisLspIpv4InternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { if x != nil { - return x.PortName + return x.Prefixes } - return "" + return nil } -// mac counter pattern -type PatternFlowEthernetDstCounter struct { +// This container defines list of IPv4 external reachability information in one IPv4 +// external reachability TLV. +// This is advertised when the origin-type is set 'external' in route range configurations. +type IsisLspIpv4ExternalReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // Describes list of IPv4 prefixes in this TLV.. + Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowEthernetDstCounter) Reset() { - *x = PatternFlowEthernetDstCounter{} +func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { + *x = IsisLspIpv4ExternalReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44367,13 +44556,13 @@ func (x *PatternFlowEthernetDstCounter) Reset() { } } -func (x *PatternFlowEthernetDstCounter) String() string { +func (x *IsisLspIpv4ExternalReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDstCounter) ProtoMessage() {} +func (*IsisLspIpv4ExternalReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { +func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[307] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44385,55 +44574,46 @@ func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspIpv4ExternalReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv4ExternalReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{307} } -func (x *PatternFlowEthernetDstCounter) GetStart() string { - if x != nil && x.Start != nil { - return *x.Start - } - return "" -} - -func (x *PatternFlowEthernetDstCounter) GetStep() string { - if x != nil && x.Step != nil { - return *x.Step - } - return "" -} - -func (x *PatternFlowEthernetDstCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspIpv4ExternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { + if x != nil { + return x.Prefixes } - return 0 + return nil } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowEthernetDstMetricTag struct { +// This group defines attributes of an IPv4 standard prefix. +type IsisLspV4Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 48 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // An IPv4 unicast prefix reachable via the originator of this LSP. + Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The length of the IPv4 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, + // and for all other prefixes in L1 and L2 LSPs. (default) + // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. + // The prefixes are being advertised from a higher level (L2) down to a lower level + // (L1). + RedistributionType *IsisLspV4Prefix_RedistributionType_Enum `protobuf:"varint,3,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // ISIS default metric value. + DefaultMetric *uint32 `protobuf:"varint,4,opt,name=default_metric,json=defaultMetric,proto3,oneof" json:"default_metric,omitempty"` + // The origin of the advertised route-internal or external to the ISIS area. Options + // include the following: + // Internal-for intra-area routes, through Level 1 LSPs. + // External-for inter-area routes redistributed within L1, through Level + // 1 LSPs. + OriginType *IsisLspV4Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV4Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` } -func (x *PatternFlowEthernetDstMetricTag) Reset() { - *x = PatternFlowEthernetDstMetricTag{} +func (x *IsisLspV4Prefix) Reset() { + *x = IsisLspV4Prefix{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44441,13 +44621,13 @@ func (x *PatternFlowEthernetDstMetricTag) Reset() { } } -func (x *PatternFlowEthernetDstMetricTag) String() string { +func (x *IsisLspV4Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDstMetricTag) ProtoMessage() {} +func (*IsisLspV4Prefix) ProtoMessage() {} -func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { +func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[308] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44459,64 +44639,60 @@ func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspV4Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{308} } -func (x *PatternFlowEthernetDstMetricTag) GetName() string { - if x != nil { - return x.Name +func (x *IsisLspV4Prefix) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } -func (x *PatternFlowEthernetDstMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *IsisLspV4Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } return 0 } -func (x *PatternFlowEthernetDstMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *IsisLspV4Prefix) GetRedistributionType() IsisLspV4Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType + } + return IsisLspV4Prefix_RedistributionType_unspecified +} + +func (x *IsisLspV4Prefix) GetDefaultMetric() uint32 { + if x != nil && x.DefaultMetric != nil { + return *x.DefaultMetric } return 0 } -// Destination MAC address -type PatternFlowEthernetDst struct { +func (x *IsisLspV4Prefix) GetOriginType() IsisLspV4Prefix_OriginType_Enum { + if x != nil && x.OriginType != nil { + return *x.OriginType + } + return IsisLspV4Prefix_OriginType_unspecified +} + +// This container defines list of IPv4 extended reachability information in one Extended +// IPv4 External Reachability TLV. +// It is advertised when the 'wide metric' is enabled. +type IsisLspExtendedIpv4ReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowEthernetDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetDst_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 00:00:00:00:00:00 - Auto *string `protobuf:"bytes,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetDstMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // IPv4 prefix contained within extended reachability TLVs. + Prefixes []*IsisLspExtendedV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowEthernetDst) Reset() { - *x = PatternFlowEthernetDst{} +func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { + *x = IsisLspExtendedIpv4ReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44524,13 +44700,13 @@ func (x *PatternFlowEthernetDst) Reset() { } } -func (x *PatternFlowEthernetDst) String() string { +func (x *IsisLspExtendedIpv4ReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDst) ProtoMessage() {} +func (*IsisLspExtendedIpv4ReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { +func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[309] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44542,79 +44718,42 @@ func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDst.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDst) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspExtendedIpv4ReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedIpv4ReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{309} } -func (x *PatternFlowEthernetDst) GetChoice() PatternFlowEthernetDst_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowEthernetDst_Choice_unspecified -} - -func (x *PatternFlowEthernetDst) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value - } - return "" -} - -func (x *PatternFlowEthernetDst) GetValues() []string { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowEthernetDst) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto - } - return "" -} - -func (x *PatternFlowEthernetDst) GetIncrement() *PatternFlowEthernetDstCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowEthernetDst) GetDecrement() *PatternFlowEthernetDstCounter { - if x != nil { - return x.Decrement - } - return nil -} - -func (x *PatternFlowEthernetDst) GetMetricTags() []*PatternFlowEthernetDstMetricTag { +func (x *IsisLspExtendedIpv4ReachabilityTlv) GetPrefixes() []*IsisLspExtendedV4Prefix { if x != nil { - return x.MetricTags + return x.Prefixes } return nil } -// mac counter pattern -type PatternFlowEthernetSrcCounter struct { +// This group defines attributes of an IPv4 standard prefix. +type IsisLspExtendedV4Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // An IPv4 unicast prefix reachable via the originator of this LSP. + Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The length of the IPv4 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // ISIS wide metric. + Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` + // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, + // and for all other prefixes in L1 and L2 LSPs. (default) + // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. + // The prefixes are being advertised from a higher level (L2) down to a lower level + // (L1). + RedistributionType *IsisLspExtendedV4Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspExtendedV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,5,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` } -func (x *PatternFlowEthernetSrcCounter) Reset() { - *x = PatternFlowEthernetSrcCounter{} +func (x *IsisLspExtendedV4Prefix) Reset() { + *x = IsisLspExtendedV4Prefix{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44622,13 +44761,13 @@ func (x *PatternFlowEthernetSrcCounter) Reset() { } } -func (x *PatternFlowEthernetSrcCounter) String() string { +func (x *IsisLspExtendedV4Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrcCounter) ProtoMessage() {} +func (*IsisLspExtendedV4Prefix) ProtoMessage() {} -func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { +func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[310] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44640,55 +44779,59 @@ func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrcCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspExtendedV4Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedV4Prefix) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{310} } -func (x *PatternFlowEthernetSrcCounter) GetStart() string { - if x != nil && x.Start != nil { - return *x.Start +func (x *IsisLspExtendedV4Prefix) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } -func (x *PatternFlowEthernetSrcCounter) GetStep() string { - if x != nil && x.Step != nil { - return *x.Step +func (x *IsisLspExtendedV4Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return "" + return 0 } -func (x *PatternFlowEthernetSrcCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspExtendedV4Prefix) GetMetric() uint32 { + if x != nil && x.Metric != nil { + return *x.Metric } return 0 } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowEthernetSrcMetricTag struct { +func (x *IsisLspExtendedV4Prefix) GetRedistributionType() IsisLspExtendedV4Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType + } + return IsisLspExtendedV4Prefix_RedistributionType_unspecified +} + +func (x *IsisLspExtendedV4Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { + if x != nil { + return x.PrefixAttributes + } + return nil +} + +// It defines list of IPv6 extended reachability information in one IPv6 Reachability +// TLV. +type IsisLspIpv6ReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 48 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // IPv6 prefix contained within reachability TLVs. + Prefixes []*IsisLspV6Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowEthernetSrcMetricTag) Reset() { - *x = PatternFlowEthernetSrcMetricTag{} +func (x *IsisLspIpv6ReachabilityTlv) Reset() { + *x = IsisLspIpv6ReachabilityTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44696,13 +44839,13 @@ func (x *PatternFlowEthernetSrcMetricTag) Reset() { } } -func (x *PatternFlowEthernetSrcMetricTag) String() string { +func (x *IsisLspIpv6ReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrcMetricTag) ProtoMessage() {} +func (*IsisLspIpv6ReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { +func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[311] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44714,59 +44857,48 @@ func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrcMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspIpv6ReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv6ReachabilityTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{311} } -func (x *PatternFlowEthernetSrcMetricTag) GetName() string { +func (x *IsisLspIpv6ReachabilityTlv) GetPrefixes() []*IsisLspV6Prefix { if x != nil { - return x.Name - } - return "" -} - -func (x *PatternFlowEthernetSrcMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -func (x *PatternFlowEthernetSrcMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length + return x.Prefixes } - return 0 + return nil } -// Source MAC address -type PatternFlowEthernetSrc struct { +// It defines attributes of an IPv6 standard prefix. +type IsisLspV6Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // An IPv6 unicast prefix reachable via the originator of this LSP. + Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + // The length of the IPv6 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // ISIS wide metric. + Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` + // Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, + // and for all other prefixes in L1 and L2 LSPs. (default) + // Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. + // The prefixes are being advertised from a higher level (L2) down to a lower level + // (L1). + RedistributionType *IsisLspV6Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV6Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // The origin of the advertised route-internal or external to the ISIS area. Options + // include the following: + // Internal-for intra-area routes, through Level 1 LSPs. + // External-for inter-area routes redistributed within L1, through Level + // 1 LSPs. + OriginType *IsisLspV6Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV6Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowEthernetSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetSrc_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,6,opt,name=prefix_attributes,json=prefixAttributes,proto3,oneof" json:"prefix_attributes,omitempty"` } -func (x *PatternFlowEthernetSrc) Reset() { - *x = PatternFlowEthernetSrc{} +func (x *IsisLspV6Prefix) Reset() { + *x = IsisLspV6Prefix{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44774,13 +44906,13 @@ func (x *PatternFlowEthernetSrc) Reset() { } } -func (x *PatternFlowEthernetSrc) String() string { +func (x *IsisLspV6Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrc) ProtoMessage() {} +func (*IsisLspV6Prefix) ProtoMessage() {} -func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { +func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[312] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44792,72 +44924,70 @@ func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrc) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspV6Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{312} } -func (x *PatternFlowEthernetSrc) GetChoice() PatternFlowEthernetSrc_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *IsisLspV6Prefix) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address } - return PatternFlowEthernetSrc_Choice_unspecified + return "" } -func (x *PatternFlowEthernetSrc) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *IsisLspV6Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return "" + return 0 } -func (x *PatternFlowEthernetSrc) GetValues() []string { - if x != nil { - return x.Values +func (x *IsisLspV6Prefix) GetMetric() uint32 { + if x != nil && x.Metric != nil { + return *x.Metric } - return nil + return 0 } -func (x *PatternFlowEthernetSrc) GetIncrement() *PatternFlowEthernetSrcCounter { - if x != nil { - return x.Increment +func (x *IsisLspV6Prefix) GetRedistributionType() IsisLspV6Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType } - return nil + return IsisLspV6Prefix_RedistributionType_unspecified } -func (x *PatternFlowEthernetSrc) GetDecrement() *PatternFlowEthernetSrcCounter { - if x != nil { - return x.Decrement +func (x *IsisLspV6Prefix) GetOriginType() IsisLspV6Prefix_OriginType_Enum { + if x != nil && x.OriginType != nil { + return *x.OriginType } - return nil + return IsisLspV6Prefix_OriginType_unspecified } -func (x *PatternFlowEthernetSrc) GetMetricTags() []*PatternFlowEthernetSrcMetricTag { +func (x *IsisLspV6Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { if x != nil { - return x.MetricTags + return x.PrefixAttributes } return nil } -// integer counter pattern -type PatternFlowEthernetEtherTypeCounter struct { +// This contains the properties of ISIS Prefix attributes for the extended IPv4 and +// IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html +type IsisLspPrefixAttributes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 65535 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // External Prefix Flag (Bit 0) + XFlag *bool `protobuf:"varint,1,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` + // Re-advertisement Flag (Bit 1) + RFlag *bool `protobuf:"varint,2,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` + // Node Flag (Bit 2) + NFlag *bool `protobuf:"varint,3,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` } -func (x *PatternFlowEthernetEtherTypeCounter) Reset() { - *x = PatternFlowEthernetEtherTypeCounter{} +func (x *IsisLspPrefixAttributes) Reset() { + *x = IsisLspPrefixAttributes{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44865,13 +44995,13 @@ func (x *PatternFlowEthernetEtherTypeCounter) Reset() { } } -func (x *PatternFlowEthernetEtherTypeCounter) String() string { +func (x *IsisLspPrefixAttributes) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherTypeCounter) ProtoMessage() {} +func (*IsisLspPrefixAttributes) ProtoMessage() {} -func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Message { +func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[313] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44883,55 +45013,55 @@ func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisLspPrefixAttributes.ProtoReflect.Descriptor instead. +func (*IsisLspPrefixAttributes) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{313} } -func (x *PatternFlowEthernetEtherTypeCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *IsisLspPrefixAttributes) GetXFlag() bool { + if x != nil && x.XFlag != nil { + return *x.XFlag } - return 0 + return false } -func (x *PatternFlowEthernetEtherTypeCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *IsisLspPrefixAttributes) GetRFlag() bool { + if x != nil && x.RFlag != nil { + return *x.RFlag } - return 0 + return false } -func (x *PatternFlowEthernetEtherTypeCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspPrefixAttributes) GetNFlag() bool { + if x != nil && x.NFlag != nil { + return *x.NFlag } - return 0 + return false } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowEthernetEtherTypeMetricTag struct { +// The request to retrieve LLDP neighbor information for a given instance. +type LldpNeighborsStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 16 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The names of LLDP instances for which neighbor information will be retrieved. If + // no names are specified then the results will contain neighbor information for all + // configured LLDP instances. + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` + // Specify the neighbors for which information will be returned. If empty or missing + // then information for all neighbors will be returned. + NeighborIdFilters []string `protobuf:"bytes,2,rep,name=neighbor_id_filters,json=neighborIdFilters,proto3" json:"neighbor_id_filters,omitempty"` } -func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { - *x = PatternFlowEthernetEtherTypeMetricTag{} +func (x *LldpNeighborsStateRequest) Reset() { + *x = LldpNeighborsStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44939,13 +45069,13 @@ func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { } } -func (x *PatternFlowEthernetEtherTypeMetricTag) String() string { +func (x *LldpNeighborsStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherTypeMetricTag) ProtoMessage() {} +func (*LldpNeighborsStateRequest) ProtoMessage() {} -func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[314] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44957,64 +45087,86 @@ func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpNeighborsStateRequest.ProtoReflect.Descriptor instead. +func (*LldpNeighborsStateRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{314} } -func (x *PatternFlowEthernetEtherTypeMetricTag) GetName() string { +func (x *LldpNeighborsStateRequest) GetLldpNames() []string { if x != nil { - return x.Name - } - return "" -} - -func (x *PatternFlowEthernetEtherTypeMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset + return x.LldpNames } - return 0 + return nil } -func (x *PatternFlowEthernetEtherTypeMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *LldpNeighborsStateRequest) GetNeighborIdFilters() []string { + if x != nil { + return x.NeighborIdFilters } - return 0 + return nil } -// Ethernet type -type PatternFlowEthernetEtherType struct { +// LLDP neighbor information. +type LldpNeighborsState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The name of the LLDP instance. + LldpName *string `protobuf:"bytes,1,opt,name=lldp_name,json=lldpName,proto3,oneof" json:"lldp_name,omitempty"` + // The system name field shall contain an alpha-numeric string that indicates the system's + // administratively assigned name. The system name should be the system's fully qualified + // domain name. If implementations support IETF RFC 3418, the sysName object should + // be used for this field. + SystemName *string `protobuf:"bytes,2,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` + // The system description field shall contain an alpha-numeric string that is the textual + // description of the network entity. The system description should include the full + // name and version identification of the system's hardware type, software operating + // system, and networking software. If implementations support IETF RFC 3418, the sysDescr + // object should be used for this field. + SystemDescription *string `protobuf:"bytes,3,opt,name=system_description,json=systemDescription,proto3,oneof" json:"system_description,omitempty"` + // The Chassis ID is a mandatory TLV which identifies the chassis component of the + // endpoint identifier associated with the transmitting LLDP agent. + ChassisId *string `protobuf:"bytes,4,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` + // This field identifies the format and source of the chassis identifier string. It + // is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. + ChassisIdType *LldpNeighborsState_ChassisIdType_Enum `protobuf:"varint,5,opt,name=chassis_id_type,json=chassisIdType,proto3,enum=otg.LldpNeighborsState_ChassisIdType_Enum,oneof" json:"chassis_id_type,omitempty"` + // System generated identifier for the neighbor on the LLDP instance. + NeighborId *string `protobuf:"bytes,6,opt,name=neighbor_id,json=neighborId,proto3,oneof" json:"neighbor_id,omitempty"` + // Age since discovery in seconds. + Age *uint32 `protobuf:"varint,7,opt,name=age,proto3,oneof" json:"age,omitempty"` + // Seconds since last update received. + LastUpdate *uint32 `protobuf:"varint,8,opt,name=last_update,json=lastUpdate,proto3,oneof" json:"last_update,omitempty"` + // The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information + // from the neighbor should be considered valid. + Ttl *uint32 `protobuf:"varint,9,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // The Port ID is a mandatory TLV which identifies the port component of the endpoint + // identifier associated with the transmitting LLDP agent. If the specified port is + // an IEEE 802.3 Repeater port, then this TLV is optional. + PortId *string `protobuf:"bytes,10,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + // This field identifies the format and source of the port identifier string. It is + // an enumerator defined by the PtopoPortIdType object from RFC2922. + PortIdType *LldpNeighborsState_PortIdType_Enum `protobuf:"varint,11,opt,name=port_id_type,json=portIdType,proto3,enum=otg.LldpNeighborsState_PortIdType_Enum,oneof" json:"port_id_type,omitempty"` + // The binary string containing the actual port identifier for the port which this LLDP + // PDU was transmitted. The source and format of this field is defined by PtopoPortId + // from RFC2922. + PortDescription *string `protobuf:"bytes,12,opt,name=port_description,json=portDescription,proto3,oneof" json:"port_description,omitempty"` + // The Management Address is a mandatory TLV which identifies a network address associated + // with the local LLDP agent, which can be used to reach the agent on the port identified + // in the Port ID TLV. + ManagementAddress *string `protobuf:"bytes,13,opt,name=management_address,json=managementAddress,proto3,oneof" json:"management_address,omitempty"` + // The enumerated value for the network address type identified in this TLV. This enumeration + // is defined in the 'Assigned Numbers' RFC [RFC3232] and the ianaAddressFamilyNumbers + // object. + ManagementAddressType *string `protobuf:"bytes,14,opt,name=management_address_type,json=managementAddressType,proto3,oneof" json:"management_address_type,omitempty"` // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowEthernetEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetEtherType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 65535 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [65535] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 65535 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + CustomTlvs []*LldpCustomTLVState `protobuf:"bytes,15,rep,name=custom_tlvs,json=customTlvs,proto3" json:"custom_tlvs,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetEtherTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + Capabilities []*LldpCapabilityState `protobuf:"bytes,16,rep,name=capabilities,proto3" json:"capabilities,omitempty"` } -func (x *PatternFlowEthernetEtherType) Reset() { - *x = PatternFlowEthernetEtherType{} +func (x *LldpNeighborsState) Reset() { + *x = LldpNeighborsState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45022,13 +45174,13 @@ func (x *PatternFlowEthernetEtherType) Reset() { } } -func (x *PatternFlowEthernetEtherType) String() string { +func (x *LldpNeighborsState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherType) ProtoMessage() {} +func (*LldpNeighborsState) ProtoMessage() {} -func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { +func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[315] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45040,79 +45192,144 @@ func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherType) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpNeighborsState.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{315} } -func (x *PatternFlowEthernetEtherType) GetChoice() PatternFlowEthernetEtherType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *LldpNeighborsState) GetLldpName() string { + if x != nil && x.LldpName != nil { + return *x.LldpName } - return PatternFlowEthernetEtherType_Choice_unspecified + return "" } -func (x *PatternFlowEthernetEtherType) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *LldpNeighborsState) GetSystemName() string { + if x != nil && x.SystemName != nil { + return *x.SystemName + } + return "" +} + +func (x *LldpNeighborsState) GetSystemDescription() string { + if x != nil && x.SystemDescription != nil { + return *x.SystemDescription + } + return "" +} + +func (x *LldpNeighborsState) GetChassisId() string { + if x != nil && x.ChassisId != nil { + return *x.ChassisId + } + return "" +} + +func (x *LldpNeighborsState) GetChassisIdType() LldpNeighborsState_ChassisIdType_Enum { + if x != nil && x.ChassisIdType != nil { + return *x.ChassisIdType + } + return LldpNeighborsState_ChassisIdType_unspecified +} + +func (x *LldpNeighborsState) GetNeighborId() string { + if x != nil && x.NeighborId != nil { + return *x.NeighborId + } + return "" +} + +func (x *LldpNeighborsState) GetAge() uint32 { + if x != nil && x.Age != nil { + return *x.Age } return 0 } -func (x *PatternFlowEthernetEtherType) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *LldpNeighborsState) GetLastUpdate() uint32 { + if x != nil && x.LastUpdate != nil { + return *x.LastUpdate } - return nil + return 0 } -func (x *PatternFlowEthernetEtherType) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *LldpNeighborsState) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } -func (x *PatternFlowEthernetEtherType) GetIncrement() *PatternFlowEthernetEtherTypeCounter { - if x != nil { - return x.Increment +func (x *LldpNeighborsState) GetPortId() string { + if x != nil && x.PortId != nil { + return *x.PortId } - return nil + return "" } -func (x *PatternFlowEthernetEtherType) GetDecrement() *PatternFlowEthernetEtherTypeCounter { +func (x *LldpNeighborsState) GetPortIdType() LldpNeighborsState_PortIdType_Enum { + if x != nil && x.PortIdType != nil { + return *x.PortIdType + } + return LldpNeighborsState_PortIdType_unspecified +} + +func (x *LldpNeighborsState) GetPortDescription() string { + if x != nil && x.PortDescription != nil { + return *x.PortDescription + } + return "" +} + +func (x *LldpNeighborsState) GetManagementAddress() string { + if x != nil && x.ManagementAddress != nil { + return *x.ManagementAddress + } + return "" +} + +func (x *LldpNeighborsState) GetManagementAddressType() string { + if x != nil && x.ManagementAddressType != nil { + return *x.ManagementAddressType + } + return "" +} + +func (x *LldpNeighborsState) GetCustomTlvs() []*LldpCustomTLVState { if x != nil { - return x.Decrement + return x.CustomTlvs } return nil } -func (x *PatternFlowEthernetEtherType) GetMetricTags() []*PatternFlowEthernetEtherTypeMetricTag { +func (x *LldpNeighborsState) GetCapabilities() []*LldpCapabilityState { if x != nil { - return x.MetricTags + return x.Capabilities } return nil } -// integer counter pattern -type PatternFlowEthernetPfcQueueCounter struct { +// Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised +// with TLV type 127. +type LldpCustomTLVState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // The integer value identifying the type of information contained in the value field. + CustomType *uint32 `protobuf:"varint,1,opt,name=custom_type,json=customType,proto3,oneof" json:"custom_type,omitempty"` + // The organizationally unique identifier field shall contain the organization's OUI + // as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order + // 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in + // network byte order, as defined in the 'Assigned Numbers' RFC [RFC3232]. + Oui *string `protobuf:"bytes,2,opt,name=oui,proto3,oneof" json:"oui,omitempty"` + // The organizationally defined subtype field shall contain a unique subtype value assigned + // by the defining organization. + OuiSubtype *string `protobuf:"bytes,3,opt,name=oui_subtype,json=ouiSubtype,proto3,oneof" json:"oui_subtype,omitempty"` } -func (x *PatternFlowEthernetPfcQueueCounter) Reset() { - *x = PatternFlowEthernetPfcQueueCounter{} +func (x *LldpCustomTLVState) Reset() { + *x = LldpCustomTLVState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45120,13 +45337,13 @@ func (x *PatternFlowEthernetPfcQueueCounter) Reset() { } } -func (x *PatternFlowEthernetPfcQueueCounter) String() string { +func (x *LldpCustomTLVState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueueCounter) ProtoMessage() {} +func (*LldpCustomTLVState) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message { +func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[316] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45138,55 +45355,48 @@ func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueueCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpCustomTLVState.ProtoReflect.Descriptor instead. +func (*LldpCustomTLVState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{316} } -func (x *PatternFlowEthernetPfcQueueCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *LldpCustomTLVState) GetCustomType() uint32 { + if x != nil && x.CustomType != nil { + return *x.CustomType } return 0 } -func (x *PatternFlowEthernetPfcQueueCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *LldpCustomTLVState) GetOui() string { + if x != nil && x.Oui != nil { + return *x.Oui } - return 0 + return "" } -func (x *PatternFlowEthernetPfcQueueCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *LldpCustomTLVState) GetOuiSubtype() string { + if x != nil && x.OuiSubtype != nil { + return *x.OuiSubtype } - return 0 + return "" } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowEthernetPfcQueueMetricTag struct { +// LLDP system capability advertised by the neighbor +type LldpCapabilityState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 3 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // Name of the system capability advertised by the neighbor. Capabilities are represented + // in a bitmap that defines the primary functions of the system. The capabilities are + // defined in IEEE 802.1AB. + CapabilityName *LldpCapabilityState_CapabilityName_Enum `protobuf:"varint,1,opt,name=capability_name,json=capabilityName,proto3,enum=otg.LldpCapabilityState_CapabilityName_Enum,oneof" json:"capability_name,omitempty"` + // Indicates whether the corresponding system capability is enabled on the neighbor. + CapabilityEnabled *bool `protobuf:"varint,2,opt,name=capability_enabled,json=capabilityEnabled,proto3,oneof" json:"capability_enabled,omitempty"` } -func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { - *x = PatternFlowEthernetPfcQueueMetricTag{} +func (x *LldpCapabilityState) Reset() { + *x = LldpCapabilityState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45194,13 +45404,13 @@ func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { } } -func (x *PatternFlowEthernetPfcQueueMetricTag) String() string { +func (x *LldpCapabilityState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueueMetricTag) ProtoMessage() {} +func (*LldpCapabilityState) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Message { +func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[317] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45212,59 +45422,45 @@ func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueueMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueueMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use LldpCapabilityState.ProtoReflect.Descriptor instead. +func (*LldpCapabilityState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{317} } -func (x *PatternFlowEthernetPfcQueueMetricTag) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *PatternFlowEthernetPfcQueueMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *LldpCapabilityState) GetCapabilityName() LldpCapabilityState_CapabilityName_Enum { + if x != nil && x.CapabilityName != nil { + return *x.CapabilityName } - return 0 + return LldpCapabilityState_CapabilityName_unspecified } -func (x *PatternFlowEthernetPfcQueueMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *LldpCapabilityState) GetCapabilityEnabled() bool { + if x != nil && x.CapabilityEnabled != nil { + return *x.CapabilityEnabled } - return 0 + return false } -// Priority flow control queue -type PatternFlowEthernetPfcQueue struct { +// The request to retrieve RSVP Label Switched Path (LSP) information learned by the +// router. +type RsvpLspsStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowEthernetPfcQueue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPfcQueue_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPfcQueueMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The names of RSVP-TE routers for which learned information is requested. An empty + // list will return results for all RSVP=TE routers. + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + RsvpRouterNames []string `protobuf:"bytes,1,rep,name=rsvp_router_names,json=rsvpRouterNames,proto3" json:"rsvp_router_names,omitempty"` } -func (x *PatternFlowEthernetPfcQueue) Reset() { - *x = PatternFlowEthernetPfcQueue{} +func (x *RsvpLspsStateRequest) Reset() { + *x = RsvpLspsStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45272,13 +45468,13 @@ func (x *PatternFlowEthernetPfcQueue) Reset() { } } -func (x *PatternFlowEthernetPfcQueue) String() string { +func (x *RsvpLspsStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueue) ProtoMessage() {} +func (*RsvpLspsStateRequest) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { +func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[318] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45290,87 +45486,111 @@ func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueue.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueue) Descriptor() ([]byte, []int) { +// Deprecated: Use RsvpLspsStateRequest.ProtoReflect.Descriptor instead. +func (*RsvpLspsStateRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{318} } -func (x *PatternFlowEthernetPfcQueue) GetChoice() PatternFlowEthernetPfcQueue_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpLspsStateRequest) GetRsvpRouterNames() []string { + if x != nil { + return x.RsvpRouterNames } - return PatternFlowEthernetPfcQueue_Choice_unspecified + return nil } -func (x *PatternFlowEthernetPfcQueue) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 +// Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router. +type RsvpLspsState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the RSVP-TE Router. + RsvpRouterName *string `protobuf:"bytes,1,opt,name=rsvp_router_name,json=rsvpRouterName,proto3,oneof" json:"rsvp_router_name,omitempty"` + // IPv4 Point-to-Point RSVP-TE Discovered LSPs. + Ipv4Lsps []*RsvpIPv4LspState `protobuf:"bytes,2,rep,name=ipv4_lsps,json=ipv4Lsps,proto3" json:"ipv4_lsps,omitempty"` } -func (x *PatternFlowEthernetPfcQueue) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *RsvpLspsState) Reset() { + *x = RsvpLspsState{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[319] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *PatternFlowEthernetPfcQueue) GetIncrement() *PatternFlowEthernetPfcQueueCounter { - if x != nil { - return x.Increment +func (x *RsvpLspsState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RsvpLspsState) ProtoMessage() {} + +func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[319] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *PatternFlowEthernetPfcQueue) GetDecrement() *PatternFlowEthernetPfcQueueCounter { - if x != nil { - return x.Decrement +// Deprecated: Use RsvpLspsState.ProtoReflect.Descriptor instead. +func (*RsvpLspsState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{319} +} + +func (x *RsvpLspsState) GetRsvpRouterName() string { + if x != nil && x.RsvpRouterName != nil { + return *x.RsvpRouterName } - return nil + return "" } -func (x *PatternFlowEthernetPfcQueue) GetMetricTags() []*PatternFlowEthernetPfcQueueMetricTag { +func (x *RsvpLspsState) GetIpv4Lsps() []*RsvpIPv4LspState { if x != nil { - return x.MetricTags + return x.Ipv4Lsps } return nil } -// integer counter pattern -type PatternFlowVlanPriorityCounter struct { +// IPv4 RSVP-TE Discovered LSPs. +type RsvpIPv4LspState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // The origin IPv4 address of RSVP session. + SourceAddress *string `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3,oneof" json:"source_address,omitempty"` + // The IPv4 destination address of RSVP session. + DestinationAddress *string `protobuf:"bytes,2,opt,name=destination_address,json=destinationAddress,proto3,oneof" json:"destination_address,omitempty"` + // It refers to the RSVP LSP properties. + Lsp *RsvpLspState `protobuf:"bytes,3,opt,name=lsp,proto3,oneof" json:"lsp,omitempty"` + // It refers to RSVP RRO objects container. + Rros []*RsvpLspIpv4Rro `protobuf:"bytes,4,rep,name=rros,proto3" json:"rros,omitempty"` + // It refers to RSVP ERO objects container. + Eros []*RsvpLspIpv4Ero `protobuf:"bytes,5,rep,name=eros,proto3" json:"eros,omitempty"` } -func (x *PatternFlowVlanPriorityCounter) Reset() { - *x = PatternFlowVlanPriorityCounter{} +func (x *RsvpIPv4LspState) Reset() { + *x = RsvpIPv4LspState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[319] + mi := &file_otg_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanPriorityCounter) String() string { +func (x *RsvpIPv4LspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriorityCounter) ProtoMessage() {} +func (*RsvpIPv4LspState) ProtoMessage() {} -func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[319] +func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[320] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45381,133 +45601,75 @@ func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriorityCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriorityCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{319} +// Deprecated: Use RsvpIPv4LspState.ProtoReflect.Descriptor instead. +func (*RsvpIPv4LspState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{320} } -func (x *PatternFlowVlanPriorityCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *RsvpIPv4LspState) GetSourceAddress() string { + if x != nil && x.SourceAddress != nil { + return *x.SourceAddress } - return 0 + return "" } -func (x *PatternFlowVlanPriorityCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 -} - -func (x *PatternFlowVlanPriorityCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowVlanPriorityMetricTag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 3 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` -} - -func (x *PatternFlowVlanPriorityMetricTag) Reset() { - *x = PatternFlowVlanPriorityMetricTag{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[320] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowVlanPriorityMetricTag) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowVlanPriorityMetricTag) ProtoMessage() {} - -func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[320] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpIPv4LspState) GetDestinationAddress() string { + if x != nil && x.DestinationAddress != nil { + return *x.DestinationAddress } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowVlanPriorityMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriorityMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{320} + return "" } -func (x *PatternFlowVlanPriorityMetricTag) GetName() string { +func (x *RsvpIPv4LspState) GetLsp() *RsvpLspState { if x != nil { - return x.Name + return x.Lsp } - return "" + return nil } -func (x *PatternFlowVlanPriorityMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *RsvpIPv4LspState) GetRros() []*RsvpLspIpv4Rro { + if x != nil { + return x.Rros } - return 0 + return nil } -func (x *PatternFlowVlanPriorityMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *RsvpIPv4LspState) GetEros() []*RsvpLspIpv4Ero { + if x != nil { + return x.Eros } - return 0 + return nil } -// Priority code point -type PatternFlowVlanPriority struct { +// IPv4 RSVP-TE Discovered LSPs. +type RsvpLspState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanPriority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanPriority_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVlanPriorityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The tunnel id of RSVP session which acts as an identifier that remains constant over + // the life of the tunnel. + TunnelId *uint32 `protobuf:"varint,1,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + // The lsp-id of RSVP session which acts as a differentiator for two lsps originating + // from the same headend, commonly used to distinguish RSVP sessions during make before + // break operations. + LspId *uint32 `protobuf:"varint,2,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` + // The value of RSVP-TE Session Name field of the Session Attribute object. + SessionName *string `protobuf:"bytes,3,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` + // The label received by RSVP-TE ingress. + LabelIn *uint32 `protobuf:"varint,4,opt,name=label_in,json=labelIn,proto3,oneof" json:"label_in,omitempty"` + // The label assigned by RSVP-TE egress. + LabelOut *uint32 `protobuf:"varint,5,opt,name=label_out,json=labelOut,proto3,oneof" json:"label_out,omitempty"` + // Operational state of the RSVP LSP. + SessionStatus *RsvpLspState_SessionStatus_Enum `protobuf:"varint,6,opt,name=session_status,json=sessionStatus,proto3,enum=otg.RsvpLspState_SessionStatus_Enum,oneof" json:"session_status,omitempty"` + // The reason for the last flap of this RSVP session. + LastFlapReason *RsvpLspState_LastFlapReason_Enum `protobuf:"varint,7,opt,name=last_flap_reason,json=lastFlapReason,proto3,enum=otg.RsvpLspState_LastFlapReason_Enum,oneof" json:"last_flap_reason,omitempty"` + // The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero. + UpTime *uint64 `protobuf:"varint,8,opt,name=up_time,json=upTime,proto3,oneof" json:"up_time,omitempty"` } -func (x *PatternFlowVlanPriority) Reset() { - *x = PatternFlowVlanPriority{} +func (x *RsvpLspState) Reset() { + *x = RsvpLspState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45515,13 +45677,13 @@ func (x *PatternFlowVlanPriority) Reset() { } } -func (x *PatternFlowVlanPriority) String() string { +func (x *RsvpLspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriority) ProtoMessage() {} +func (*RsvpLspState) ProtoMessage() {} -func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { +func (x *RsvpLspState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[321] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45533,72 +45695,89 @@ func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriority.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriority) Descriptor() ([]byte, []int) { +// Deprecated: Use RsvpLspState.ProtoReflect.Descriptor instead. +func (*RsvpLspState) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{321} } -func (x *PatternFlowVlanPriority) GetChoice() PatternFlowVlanPriority_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpLspState) GetTunnelId() uint32 { + if x != nil && x.TunnelId != nil { + return *x.TunnelId } - return PatternFlowVlanPriority_Choice_unspecified + return 0 } -func (x *PatternFlowVlanPriority) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *RsvpLspState) GetLspId() uint32 { + if x != nil && x.LspId != nil { + return *x.LspId } return 0 } -func (x *PatternFlowVlanPriority) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *RsvpLspState) GetSessionName() string { + if x != nil && x.SessionName != nil { + return *x.SessionName } - return nil + return "" } -func (x *PatternFlowVlanPriority) GetIncrement() *PatternFlowVlanPriorityCounter { - if x != nil { - return x.Increment +func (x *RsvpLspState) GetLabelIn() uint32 { + if x != nil && x.LabelIn != nil { + return *x.LabelIn } - return nil + return 0 } -func (x *PatternFlowVlanPriority) GetDecrement() *PatternFlowVlanPriorityCounter { - if x != nil { - return x.Decrement +func (x *RsvpLspState) GetLabelOut() uint32 { + if x != nil && x.LabelOut != nil { + return *x.LabelOut } - return nil + return 0 } -func (x *PatternFlowVlanPriority) GetMetricTags() []*PatternFlowVlanPriorityMetricTag { - if x != nil { - return x.MetricTags +func (x *RsvpLspState) GetSessionStatus() RsvpLspState_SessionStatus_Enum { + if x != nil && x.SessionStatus != nil { + return *x.SessionStatus } - return nil + return RsvpLspState_SessionStatus_unspecified } -// integer counter pattern -type PatternFlowVlanCfiCounter struct { +func (x *RsvpLspState) GetLastFlapReason() RsvpLspState_LastFlapReason_Enum { + if x != nil && x.LastFlapReason != nil { + return *x.LastFlapReason + } + return RsvpLspState_LastFlapReason_unspecified +} + +func (x *RsvpLspState) GetUpTime() uint64 { + if x != nil && x.UpTime != nil { + return *x.UpTime + } + return 0 +} + +// This contains the list of Record Route Object(RRO) objects associated with the traffic +// engineering tunnel. The Record Route Object(RRO) is used in RSVP-TE to record the +// route traversed by the LSP. The RRO might be present in both Path message and Resv +// message, the RRO stores the IP addresses of the routers that the traffic engineering +// tunnel traversed and also the label generated and distributed by the routers. The +// RROs in the Resv message mirrors that of the Path message, the only difference is +// that the RRO in a Resv message records the path information in the reverse direction. +type RsvpLspIpv4Rro struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // The IPv4 addresses of the routers that the traffic engineering tunnel traversed. + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // Label reported for RRO hop. When the Label_Recording flag is set in the Session Attribute + // object, nodes doing route recording should include the Label Record subobject containing + // the reported label. + ReportedLabel *uint32 `protobuf:"varint,2,opt,name=reported_label,json=reportedLabel,proto3,oneof" json:"reported_label,omitempty"` } -func (x *PatternFlowVlanCfiCounter) Reset() { - *x = PatternFlowVlanCfiCounter{} +func (x *RsvpLspIpv4Rro) Reset() { + *x = RsvpLspIpv4Rro{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45606,13 +45785,13 @@ func (x *PatternFlowVlanCfiCounter) Reset() { } } -func (x *PatternFlowVlanCfiCounter) String() string { +func (x *RsvpLspIpv4Rro) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfiCounter) ProtoMessage() {} +func (*RsvpLspIpv4Rro) ProtoMessage() {} -func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { +func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[322] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45624,55 +45803,45 @@ func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfiCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfiCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use RsvpLspIpv4Rro.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Rro) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{322} } -func (x *PatternFlowVlanCfiCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowVlanCfiCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *RsvpLspIpv4Rro) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return 0 + return "" } -func (x *PatternFlowVlanCfiCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *RsvpLspIpv4Rro) GetReportedLabel() uint32 { + if x != nil && x.ReportedLabel != nil { + return *x.ReportedLabel } return 0 } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding -// header field for metrics per each applicable value. These would appear as tagged -// metrics in corresponding flow metrics. -type PatternFlowVlanCfiMetricTag struct { +// This contains the list of sub-objects included in the Explicit Route Object(ERO) +// object send in the PATH message from the ingress. These sub-objects contain the intermediate +// hops to be traversed by the LSP while being forwarded towards the egress endpoint. +type RsvpLspIpv4Ero struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 + // prefix. + Prefix *string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // The autonomous system number indicated by the ERO. Specified only when the ERO hop + // is an 2 or 4-byte AS number. + Asn *uint32 `protobuf:"varint,2,opt,name=asn,proto3,oneof" json:"asn,omitempty"` + // The type indicated by the ERO. + Type *RsvpLspIpv4Ero_Type_Enum `protobuf:"varint,3,opt,name=type,proto3,enum=otg.RsvpLspIpv4Ero_Type_Enum,oneof" json:"type,omitempty"` } -func (x *PatternFlowVlanCfiMetricTag) Reset() { - *x = PatternFlowVlanCfiMetricTag{} +func (x *RsvpLspIpv4Ero) Reset() { + *x = RsvpLspIpv4Ero{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45680,13 +45849,13 @@ func (x *PatternFlowVlanCfiMetricTag) Reset() { } } -func (x *PatternFlowVlanCfiMetricTag) String() string { +func (x *RsvpLspIpv4Ero) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfiMetricTag) ProtoMessage() {} +func (*RsvpLspIpv4Ero) ProtoMessage() {} -func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { +func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[323] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45698,59 +45867,53 @@ func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfiMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfiMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use RsvpLspIpv4Ero.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Ero) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{323} } -func (x *PatternFlowVlanCfiMetricTag) GetName() string { - if x != nil { - return x.Name +func (x *RsvpLspIpv4Ero) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix } return "" } -func (x *PatternFlowVlanCfiMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *RsvpLspIpv4Ero) GetAsn() uint32 { + if x != nil && x.Asn != nil { + return *x.Asn } return 0 } -func (x *PatternFlowVlanCfiMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *RsvpLspIpv4Ero) GetType() RsvpLspIpv4Ero_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return 0 + return RsvpLspIpv4Ero_Type_unspecified } -// Canonical format indicator or drop elegible indicator -type PatternFlowVlanCfi struct { +// The capture result request to the traffic generator. Stops the port capture on the +// port_name and returns the capture. +type CaptureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanCfi_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanCfi_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` - // One or more metric tags can be used to enable tracking portion of or all bits in - // a corresponding header field for metrics per each applicable value. These would appear - // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVlanCfiMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The name of a port a capture is started on. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // required = true + PortName string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"` } -func (x *PatternFlowVlanCfi) Reset() { - *x = PatternFlowVlanCfi{} +func (x *CaptureRequest) Reset() { + *x = CaptureRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45758,13 +45921,13 @@ func (x *PatternFlowVlanCfi) Reset() { } } -func (x *PatternFlowVlanCfi) String() string { +func (x *CaptureRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfi) ProtoMessage() {} +func (*CaptureRequest) ProtoMessage() {} -func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { +func (x *CaptureRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[324] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45776,72 +45939,37 @@ func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfi.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfi) Descriptor() ([]byte, []int) { +// Deprecated: Use CaptureRequest.ProtoReflect.Descriptor instead. +func (*CaptureRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{324} } -func (x *PatternFlowVlanCfi) GetChoice() PatternFlowVlanCfi_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowVlanCfi_Choice_unspecified -} - -func (x *PatternFlowVlanCfi) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowVlanCfi) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVlanCfi) GetIncrement() *PatternFlowVlanCfiCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowVlanCfi) GetDecrement() *PatternFlowVlanCfiCounter { - if x != nil { - return x.Decrement - } - return nil -} - -func (x *PatternFlowVlanCfi) GetMetricTags() []*PatternFlowVlanCfiMetricTag { +func (x *CaptureRequest) GetPortName() string { if x != nil { - return x.MetricTags + return x.PortName } - return nil + return "" } -// integer counter pattern -type PatternFlowVlanIdCounter struct { +// mac counter pattern +type PatternFlowEthernetDstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVlanIdCounter) Reset() { - *x = PatternFlowVlanIdCounter{} +func (x *PatternFlowEthernetDstCounter) Reset() { + *x = PatternFlowEthernetDstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45849,13 +45977,13 @@ func (x *PatternFlowVlanIdCounter) Reset() { } } -func (x *PatternFlowVlanIdCounter) String() string { +func (x *PatternFlowEthernetDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanIdCounter) ProtoMessage() {} +func (*PatternFlowEthernetDstCounter) ProtoMessage() {} -func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[325] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45867,26 +45995,26 @@ func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanIdCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanIdCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{325} } -func (x *PatternFlowVlanIdCounter) GetStart() uint32 { +func (x *PatternFlowEthernetDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowVlanIdCounter) GetStep() uint32 { +func (x *PatternFlowEthernetDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowVlanIdCounter) GetCount() uint32 { +func (x *PatternFlowEthernetDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -45896,7 +46024,7 @@ func (x *PatternFlowVlanIdCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVlanIdMetricTag struct { +type PatternFlowEthernetDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -45910,12 +46038,12 @@ type PatternFlowVlanIdMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 12 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVlanIdMetricTag) Reset() { - *x = PatternFlowVlanIdMetricTag{} +func (x *PatternFlowEthernetDstMetricTag) Reset() { + *x = PatternFlowEthernetDstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45923,13 +46051,13 @@ func (x *PatternFlowVlanIdMetricTag) Reset() { } } -func (x *PatternFlowVlanIdMetricTag) String() string { +func (x *PatternFlowEthernetDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanIdMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetDstMetricTag) ProtoMessage() {} -func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[326] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45941,59 +46069,64 @@ func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanIdMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanIdMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{326} } -func (x *PatternFlowVlanIdMetricTag) GetName() string { +func (x *PatternFlowEthernetDstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVlanIdMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVlanIdMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Vlan identifier -type PatternFlowVlanId struct { +// Destination MAC address +type PatternFlowEthernetDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanId_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowEthernetDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetDst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 00:00:00:00:00:00 + Auto *string `protobuf:"bytes,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowVlanIdCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVlanIdMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetDstMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVlanId) Reset() { - *x = PatternFlowVlanId{} +func (x *PatternFlowEthernetDst) Reset() { + *x = PatternFlowEthernetDst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46001,13 +46134,13 @@ func (x *PatternFlowVlanId) Reset() { } } -func (x *PatternFlowVlanId) String() string { +func (x *PatternFlowEthernetDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanId) ProtoMessage() {} +func (*PatternFlowEthernetDst) ProtoMessage() {} -func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[327] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46019,72 +46152,79 @@ func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanId.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{327} +// Deprecated: Use PatternFlowEthernetDst.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{327} } -func (x *PatternFlowVlanId) GetChoice() PatternFlowVlanId_Choice_Enum { +func (x *PatternFlowEthernetDst) GetChoice() PatternFlowEthernetDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVlanId_Choice_unspecified + return PatternFlowEthernetDst_Choice_unspecified } -func (x *PatternFlowVlanId) GetValue() uint32 { +func (x *PatternFlowEthernetDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowVlanId) GetValues() []uint32 { +func (x *PatternFlowEthernetDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowVlanId) GetIncrement() *PatternFlowVlanIdCounter { +func (x *PatternFlowEthernetDst) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto + } + return "" +} + +func (x *PatternFlowEthernetDst) GetIncrement() *PatternFlowEthernetDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVlanId) GetDecrement() *PatternFlowVlanIdCounter { +func (x *PatternFlowEthernetDst) GetDecrement() *PatternFlowEthernetDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVlanId) GetMetricTags() []*PatternFlowVlanIdMetricTag { +func (x *PatternFlowEthernetDst) GetMetricTags() []*PatternFlowEthernetDstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowVlanTpidCounter struct { +// mac counter pattern +type PatternFlowEthernetSrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 33024 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVlanTpidCounter) Reset() { - *x = PatternFlowVlanTpidCounter{} +func (x *PatternFlowEthernetSrcCounter) Reset() { + *x = PatternFlowEthernetSrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46092,13 +46232,13 @@ func (x *PatternFlowVlanTpidCounter) Reset() { } } -func (x *PatternFlowVlanTpidCounter) String() string { +func (x *PatternFlowEthernetSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpidCounter) ProtoMessage() {} +func (*PatternFlowEthernetSrcCounter) ProtoMessage() {} -func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[328] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46110,26 +46250,26 @@ func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpidCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{328} } -func (x *PatternFlowVlanTpidCounter) GetStart() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowVlanTpidCounter) GetStep() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowVlanTpidCounter) GetCount() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -46139,7 +46279,7 @@ func (x *PatternFlowVlanTpidCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVlanTpidMetricTag struct { +type PatternFlowEthernetSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46153,12 +46293,12 @@ type PatternFlowVlanTpidMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVlanTpidMetricTag) Reset() { - *x = PatternFlowVlanTpidMetricTag{} +func (x *PatternFlowEthernetSrcMetricTag) Reset() { + *x = PatternFlowEthernetSrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46166,13 +46306,13 @@ func (x *PatternFlowVlanTpidMetricTag) Reset() { } } -func (x *PatternFlowVlanTpidMetricTag) String() string { +func (x *PatternFlowEthernetSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpidMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[329] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46184,59 +46324,59 @@ func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpidMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{329} } -func (x *PatternFlowVlanTpidMetricTag) GetName() string { +func (x *PatternFlowEthernetSrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVlanTpidMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVlanTpidMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol identifier -type PatternFlowVlanTpid struct { +// Source MAC address +type PatternFlowEthernetSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowVlanTpid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanTpid_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetSrc_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 33024 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [33024] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVlanTpidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVlanTpid) Reset() { - *x = PatternFlowVlanTpid{} +func (x *PatternFlowEthernetSrc) Reset() { + *x = PatternFlowEthernetSrc{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46244,13 +46384,13 @@ func (x *PatternFlowVlanTpid) Reset() { } } -func (x *PatternFlowVlanTpid) String() string { +func (x *PatternFlowEthernetSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpid) ProtoMessage() {} +func (*PatternFlowEthernetSrc) ProtoMessage() {} -func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[330] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46262,47 +46402,47 @@ func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpid.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpid) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrc) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{330} } -func (x *PatternFlowVlanTpid) GetChoice() PatternFlowVlanTpid_Choice_Enum { +func (x *PatternFlowEthernetSrc) GetChoice() PatternFlowEthernetSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVlanTpid_Choice_unspecified + return PatternFlowEthernetSrc_Choice_unspecified } -func (x *PatternFlowVlanTpid) GetValue() uint32 { +func (x *PatternFlowEthernetSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowVlanTpid) GetValues() []uint32 { +func (x *PatternFlowEthernetSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowVlanTpid) GetIncrement() *PatternFlowVlanTpidCounter { +func (x *PatternFlowEthernetSrc) GetIncrement() *PatternFlowEthernetSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVlanTpid) GetDecrement() *PatternFlowVlanTpidCounter { +func (x *PatternFlowEthernetSrc) GetDecrement() *PatternFlowEthernetSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVlanTpid) GetMetricTags() []*PatternFlowVlanTpidMetricTag { +func (x *PatternFlowEthernetSrc) GetMetricTags() []*PatternFlowEthernetSrcMetricTag { if x != nil { return x.MetricTags } @@ -46310,13 +46450,13 @@ func (x *PatternFlowVlanTpid) GetMetricTags() []*PatternFlowVlanTpidMetricTag { } // integer counter pattern -type PatternFlowVxlanFlagsCounter struct { +type PatternFlowEthernetEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 8 + // default = 65535 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -46326,8 +46466,8 @@ type PatternFlowVxlanFlagsCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVxlanFlagsCounter) Reset() { - *x = PatternFlowVxlanFlagsCounter{} +func (x *PatternFlowEthernetEtherTypeCounter) Reset() { + *x = PatternFlowEthernetEtherTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46335,13 +46475,13 @@ func (x *PatternFlowVxlanFlagsCounter) Reset() { } } -func (x *PatternFlowVxlanFlagsCounter) String() string { +func (x *PatternFlowEthernetEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlagsCounter) ProtoMessage() {} +func (*PatternFlowEthernetEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[331] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46353,26 +46493,26 @@ func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlagsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlagsCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{331} } -func (x *PatternFlowVxlanFlagsCounter) GetStart() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowVxlanFlagsCounter) GetStep() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowVxlanFlagsCounter) GetCount() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -46382,7 +46522,7 @@ func (x *PatternFlowVxlanFlagsCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVxlanFlagsMetricTag struct { +type PatternFlowEthernetEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46396,12 +46536,12 @@ type PatternFlowVxlanFlagsMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVxlanFlagsMetricTag) Reset() { - *x = PatternFlowVxlanFlagsMetricTag{} +func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { + *x = PatternFlowEthernetEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46409,13 +46549,13 @@ func (x *PatternFlowVxlanFlagsMetricTag) Reset() { } } -func (x *PatternFlowVxlanFlagsMetricTag) String() string { +func (x *PatternFlowEthernetEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlagsMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[332] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46427,61 +46567,64 @@ func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlagsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlagsMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{332} } -func (x *PatternFlowVxlanFlagsMetricTag) GetName() string { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVxlanFlagsMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVxlanFlagsMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Flags field with a bit format of RRRRIRRR. The I flag MUST be set to 1 for a valid -// vxlan network id (VNI). The other 7 bits (designated R) are reserved fields and -// MUST be set to zero on transmission and ignored on receipt. -type PatternFlowVxlanFlags struct { +// Ethernet type +type PatternFlowEthernetEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVxlanFlags_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanFlags_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowEthernetEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 8 + // default = 65535 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [8] + // default = [65535] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 65535 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVxlanFlagsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetEtherTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVxlanFlags) Reset() { - *x = PatternFlowVxlanFlags{} +func (x *PatternFlowEthernetEtherType) Reset() { + *x = PatternFlowEthernetEtherType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46489,13 +46632,13 @@ func (x *PatternFlowVxlanFlags) Reset() { } } -func (x *PatternFlowVxlanFlags) String() string { +func (x *PatternFlowEthernetEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlags) ProtoMessage() {} +func (*PatternFlowEthernetEtherType) ProtoMessage() {} -func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[333] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46507,47 +46650,54 @@ func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlags.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlags) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{333} } -func (x *PatternFlowVxlanFlags) GetChoice() PatternFlowVxlanFlags_Choice_Enum { +func (x *PatternFlowEthernetEtherType) GetChoice() PatternFlowEthernetEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVxlanFlags_Choice_unspecified + return PatternFlowEthernetEtherType_Choice_unspecified } -func (x *PatternFlowVxlanFlags) GetValue() uint32 { +func (x *PatternFlowEthernetEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowVxlanFlags) GetValues() []uint32 { +func (x *PatternFlowEthernetEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowVxlanFlags) GetIncrement() *PatternFlowVxlanFlagsCounter { +func (x *PatternFlowEthernetEtherType) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowEthernetEtherType) GetIncrement() *PatternFlowEthernetEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVxlanFlags) GetDecrement() *PatternFlowVxlanFlagsCounter { +func (x *PatternFlowEthernetEtherType) GetDecrement() *PatternFlowEthernetEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVxlanFlags) GetMetricTags() []*PatternFlowVxlanFlagsMetricTag { +func (x *PatternFlowEthernetEtherType) GetMetricTags() []*PatternFlowEthernetEtherTypeMetricTag { if x != nil { return x.MetricTags } @@ -46555,7 +46705,7 @@ func (x *PatternFlowVxlanFlags) GetMetricTags() []*PatternFlowVxlanFlagsMetricTa } // integer counter pattern -type PatternFlowVxlanReserved0Counter struct { +type PatternFlowEthernetPfcQueueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46571,8 +46721,8 @@ type PatternFlowVxlanReserved0Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVxlanReserved0Counter) Reset() { - *x = PatternFlowVxlanReserved0Counter{} +func (x *PatternFlowEthernetPfcQueueCounter) Reset() { + *x = PatternFlowEthernetPfcQueueCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46580,13 +46730,13 @@ func (x *PatternFlowVxlanReserved0Counter) Reset() { } } -func (x *PatternFlowVxlanReserved0Counter) String() string { +func (x *PatternFlowEthernetPfcQueueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0Counter) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueueCounter) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[334] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46598,26 +46748,26 @@ func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPfcQueueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueueCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{334} } -func (x *PatternFlowVxlanReserved0Counter) GetStart() uint32 { +func (x *PatternFlowEthernetPfcQueueCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowVxlanReserved0Counter) GetStep() uint32 { +func (x *PatternFlowEthernetPfcQueueCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowVxlanReserved0Counter) GetCount() uint32 { +func (x *PatternFlowEthernetPfcQueueCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -46627,7 +46777,7 @@ func (x *PatternFlowVxlanReserved0Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVxlanReserved0MetricTag struct { +type PatternFlowEthernetPfcQueueMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46641,12 +46791,12 @@ type PatternFlowVxlanReserved0MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 24 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVxlanReserved0MetricTag) Reset() { - *x = PatternFlowVxlanReserved0MetricTag{} +func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { + *x = PatternFlowEthernetPfcQueueMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46654,13 +46804,13 @@ func (x *PatternFlowVxlanReserved0MetricTag) Reset() { } } -func (x *PatternFlowVxlanReserved0MetricTag) String() string { +func (x *PatternFlowEthernetPfcQueueMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0MetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueueMetricTag) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[335] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46672,41 +46822,41 @@ func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPfcQueueMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueueMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{335} } -func (x *PatternFlowVxlanReserved0MetricTag) GetName() string { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVxlanReserved0MetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVxlanReserved0MetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowVxlanReserved0 struct { +// Priority flow control queue +type PatternFlowEthernetPfcQueue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowVxlanReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved0_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPfcQueue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPfcQueue_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -46714,17 +46864,17 @@ type PatternFlowVxlanReserved0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVxlanReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVxlanReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPfcQueueMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVxlanReserved0) Reset() { - *x = PatternFlowVxlanReserved0{} +func (x *PatternFlowEthernetPfcQueue) Reset() { + *x = PatternFlowEthernetPfcQueue{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46732,13 +46882,13 @@ func (x *PatternFlowVxlanReserved0) Reset() { } } -func (x *PatternFlowVxlanReserved0) String() string { +func (x *PatternFlowEthernetPfcQueue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueue) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[336] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46750,47 +46900,47 @@ func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPfcQueue.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueue) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{336} } -func (x *PatternFlowVxlanReserved0) GetChoice() PatternFlowVxlanReserved0_Choice_Enum { +func (x *PatternFlowEthernetPfcQueue) GetChoice() PatternFlowEthernetPfcQueue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVxlanReserved0_Choice_unspecified + return PatternFlowEthernetPfcQueue_Choice_unspecified } -func (x *PatternFlowVxlanReserved0) GetValue() uint32 { +func (x *PatternFlowEthernetPfcQueue) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowVxlanReserved0) GetValues() []uint32 { +func (x *PatternFlowEthernetPfcQueue) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowVxlanReserved0) GetIncrement() *PatternFlowVxlanReserved0Counter { +func (x *PatternFlowEthernetPfcQueue) GetIncrement() *PatternFlowEthernetPfcQueueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVxlanReserved0) GetDecrement() *PatternFlowVxlanReserved0Counter { +func (x *PatternFlowEthernetPfcQueue) GetDecrement() *PatternFlowEthernetPfcQueueCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVxlanReserved0) GetMetricTags() []*PatternFlowVxlanReserved0MetricTag { +func (x *PatternFlowEthernetPfcQueue) GetMetricTags() []*PatternFlowEthernetPfcQueueMetricTag { if x != nil { return x.MetricTags } @@ -46798,7 +46948,7 @@ func (x *PatternFlowVxlanReserved0) GetMetricTags() []*PatternFlowVxlanReserved0 } // integer counter pattern -type PatternFlowVxlanVniCounter struct { +type PatternFlowVlanPriorityCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46814,8 +46964,8 @@ type PatternFlowVxlanVniCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVxlanVniCounter) Reset() { - *x = PatternFlowVxlanVniCounter{} +func (x *PatternFlowVlanPriorityCounter) Reset() { + *x = PatternFlowVlanPriorityCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46823,13 +46973,13 @@ func (x *PatternFlowVxlanVniCounter) Reset() { } } -func (x *PatternFlowVxlanVniCounter) String() string { +func (x *PatternFlowVlanPriorityCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVniCounter) ProtoMessage() {} +func (*PatternFlowVlanPriorityCounter) ProtoMessage() {} -func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[337] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46841,26 +46991,26 @@ func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVniCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVniCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanPriorityCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriorityCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{337} } -func (x *PatternFlowVxlanVniCounter) GetStart() uint32 { +func (x *PatternFlowVlanPriorityCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowVxlanVniCounter) GetStep() uint32 { +func (x *PatternFlowVlanPriorityCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowVxlanVniCounter) GetCount() uint32 { +func (x *PatternFlowVlanPriorityCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -46870,7 +47020,7 @@ func (x *PatternFlowVxlanVniCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVxlanVniMetricTag struct { +type PatternFlowVlanPriorityMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -46884,12 +47034,12 @@ type PatternFlowVxlanVniMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 24 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVxlanVniMetricTag) Reset() { - *x = PatternFlowVxlanVniMetricTag{} +func (x *PatternFlowVlanPriorityMetricTag) Reset() { + *x = PatternFlowVlanPriorityMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46897,13 +47047,13 @@ func (x *PatternFlowVxlanVniMetricTag) Reset() { } } -func (x *PatternFlowVxlanVniMetricTag) String() string { +func (x *PatternFlowVlanPriorityMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVniMetricTag) ProtoMessage() {} +func (*PatternFlowVlanPriorityMetricTag) ProtoMessage() {} -func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[338] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46915,64 +47065,59 @@ func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVniMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVniMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanPriorityMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriorityMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{338} } -func (x *PatternFlowVxlanVniMetricTag) GetName() string { +func (x *PatternFlowVlanPriorityMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVxlanVniMetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanPriorityMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVxlanVniMetricTag) GetLength() uint32 { +func (x *PatternFlowVlanPriorityMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// VXLAN network id -type PatternFlowVxlanVni struct { +// Priority code point +type PatternFlowVlanPriority struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowVxlanVni_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanVni_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowVlanPriority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanPriority_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 0 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVxlanVniMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanPriorityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVxlanVni) Reset() { - *x = PatternFlowVxlanVni{} +func (x *PatternFlowVlanPriority) Reset() { + *x = PatternFlowVlanPriority{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46980,13 +47125,13 @@ func (x *PatternFlowVxlanVni) Reset() { } } -func (x *PatternFlowVxlanVni) String() string { +func (x *PatternFlowVlanPriority) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVni) ProtoMessage() {} +func (*PatternFlowVlanPriority) ProtoMessage() {} -func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[339] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46998,54 +47143,47 @@ func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVni.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVni) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanPriority.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriority) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{339} } -func (x *PatternFlowVxlanVni) GetChoice() PatternFlowVxlanVni_Choice_Enum { +func (x *PatternFlowVlanPriority) GetChoice() PatternFlowVlanPriority_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVxlanVni_Choice_unspecified + return PatternFlowVlanPriority_Choice_unspecified } -func (x *PatternFlowVxlanVni) GetValue() uint32 { +func (x *PatternFlowVlanPriority) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowVxlanVni) GetValues() []uint32 { +func (x *PatternFlowVlanPriority) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowVxlanVni) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowVxlanVni) GetIncrement() *PatternFlowVxlanVniCounter { +func (x *PatternFlowVlanPriority) GetIncrement() *PatternFlowVlanPriorityCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVxlanVni) GetDecrement() *PatternFlowVxlanVniCounter { +func (x *PatternFlowVlanPriority) GetDecrement() *PatternFlowVlanPriorityCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVxlanVni) GetMetricTags() []*PatternFlowVxlanVniMetricTag { +func (x *PatternFlowVlanPriority) GetMetricTags() []*PatternFlowVlanPriorityMetricTag { if x != nil { return x.MetricTags } @@ -47053,7 +47191,7 @@ func (x *PatternFlowVxlanVni) GetMetricTags() []*PatternFlowVxlanVniMetricTag { } // integer counter pattern -type PatternFlowVxlanReserved1Counter struct { +type PatternFlowVlanCfiCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47069,8 +47207,8 @@ type PatternFlowVxlanReserved1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowVxlanReserved1Counter) Reset() { - *x = PatternFlowVxlanReserved1Counter{} +func (x *PatternFlowVlanCfiCounter) Reset() { + *x = PatternFlowVlanCfiCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47078,13 +47216,13 @@ func (x *PatternFlowVxlanReserved1Counter) Reset() { } } -func (x *PatternFlowVxlanReserved1Counter) String() string { +func (x *PatternFlowVlanCfiCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1Counter) ProtoMessage() {} +func (*PatternFlowVlanCfiCounter) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[340] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47096,26 +47234,26 @@ func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanCfiCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfiCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{340} } -func (x *PatternFlowVxlanReserved1Counter) GetStart() uint32 { +func (x *PatternFlowVlanCfiCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowVxlanReserved1Counter) GetStep() uint32 { +func (x *PatternFlowVlanCfiCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowVxlanReserved1Counter) GetCount() uint32 { +func (x *PatternFlowVlanCfiCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -47125,7 +47263,7 @@ func (x *PatternFlowVxlanReserved1Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowVxlanReserved1MetricTag struct { +type PatternFlowVlanCfiMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47139,12 +47277,12 @@ type PatternFlowVxlanReserved1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowVxlanReserved1MetricTag) Reset() { - *x = PatternFlowVxlanReserved1MetricTag{} +func (x *PatternFlowVlanCfiMetricTag) Reset() { + *x = PatternFlowVlanCfiMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47152,13 +47290,13 @@ func (x *PatternFlowVxlanReserved1MetricTag) Reset() { } } -func (x *PatternFlowVxlanReserved1MetricTag) String() string { +func (x *PatternFlowVlanCfiMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1MetricTag) ProtoMessage() {} +func (*PatternFlowVlanCfiMetricTag) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[341] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47170,41 +47308,41 @@ func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanCfiMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfiMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{341} } -func (x *PatternFlowVxlanReserved1MetricTag) GetName() string { +func (x *PatternFlowVlanCfiMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowVxlanReserved1MetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanCfiMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowVxlanReserved1MetricTag) GetLength() uint32 { +func (x *PatternFlowVlanCfiMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowVxlanReserved1 struct { +// Canonical format indicator or drop elegible indicator +type PatternFlowVlanCfi struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowVxlanReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVlanCfi_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanCfi_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -47212,17 +47350,17 @@ type PatternFlowVxlanReserved1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowVxlanReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowVxlanReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanCfiMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowVxlanReserved1) Reset() { - *x = PatternFlowVxlanReserved1{} +func (x *PatternFlowVlanCfi) Reset() { + *x = PatternFlowVlanCfi{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47230,13 +47368,13 @@ func (x *PatternFlowVxlanReserved1) Reset() { } } -func (x *PatternFlowVxlanReserved1) String() string { +func (x *PatternFlowVlanCfi) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1) ProtoMessage() {} +func (*PatternFlowVlanCfi) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[342] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47248,47 +47386,47 @@ func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanCfi.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfi) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{342} } -func (x *PatternFlowVxlanReserved1) GetChoice() PatternFlowVxlanReserved1_Choice_Enum { +func (x *PatternFlowVlanCfi) GetChoice() PatternFlowVlanCfi_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVxlanReserved1_Choice_unspecified + return PatternFlowVlanCfi_Choice_unspecified } -func (x *PatternFlowVxlanReserved1) GetValue() uint32 { +func (x *PatternFlowVlanCfi) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowVxlanReserved1) GetValues() []uint32 { +func (x *PatternFlowVlanCfi) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowVxlanReserved1) GetIncrement() *PatternFlowVxlanReserved1Counter { +func (x *PatternFlowVlanCfi) GetIncrement() *PatternFlowVlanCfiCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowVxlanReserved1) GetDecrement() *PatternFlowVxlanReserved1Counter { +func (x *PatternFlowVlanCfi) GetDecrement() *PatternFlowVlanCfiCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowVxlanReserved1) GetMetricTags() []*PatternFlowVxlanReserved1MetricTag { +func (x *PatternFlowVlanCfi) GetMetricTags() []*PatternFlowVlanCfiMetricTag { if x != nil { return x.MetricTags } @@ -47296,13 +47434,13 @@ func (x *PatternFlowVxlanReserved1) GetMetricTags() []*PatternFlowVxlanReserved1 } // integer counter pattern -type PatternFlowIpv4VersionCounter struct { +type PatternFlowVlanIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 4 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -47312,8 +47450,8 @@ type PatternFlowIpv4VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4VersionCounter) Reset() { - *x = PatternFlowIpv4VersionCounter{} +func (x *PatternFlowVlanIdCounter) Reset() { + *x = PatternFlowVlanIdCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47321,13 +47459,13 @@ func (x *PatternFlowIpv4VersionCounter) Reset() { } } -func (x *PatternFlowIpv4VersionCounter) String() string { +func (x *PatternFlowVlanIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4VersionCounter) ProtoMessage() {} +func (*PatternFlowVlanIdCounter) ProtoMessage() {} -func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[343] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47339,26 +47477,26 @@ func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4VersionCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanIdCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{343} } -func (x *PatternFlowIpv4VersionCounter) GetStart() uint32 { +func (x *PatternFlowVlanIdCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4VersionCounter) GetStep() uint32 { +func (x *PatternFlowVlanIdCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4VersionCounter) GetCount() uint32 { +func (x *PatternFlowVlanIdCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -47368,7 +47506,7 @@ func (x *PatternFlowIpv4VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4VersionMetricTag struct { +type PatternFlowVlanIdMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47382,12 +47520,12 @@ type PatternFlowIpv4VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 12 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4VersionMetricTag) Reset() { - *x = PatternFlowIpv4VersionMetricTag{} +func (x *PatternFlowVlanIdMetricTag) Reset() { + *x = PatternFlowVlanIdMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47395,13 +47533,13 @@ func (x *PatternFlowIpv4VersionMetricTag) Reset() { } } -func (x *PatternFlowIpv4VersionMetricTag) String() string { +func (x *PatternFlowVlanIdMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4VersionMetricTag) ProtoMessage() {} +func (*PatternFlowVlanIdMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[344] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47413,59 +47551,59 @@ func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4VersionMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanIdMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanIdMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{344} } -func (x *PatternFlowIpv4VersionMetricTag) GetName() string { +func (x *PatternFlowVlanIdMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanIdMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowVlanIdMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version -type PatternFlowIpv4Version struct { +// Vlan identifier +type PatternFlowVlanId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVlanId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanId_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 4 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [4] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanIdCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanIdMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Version) Reset() { - *x = PatternFlowIpv4Version{} +func (x *PatternFlowVlanId) Reset() { + *x = PatternFlowVlanId{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47473,13 +47611,13 @@ func (x *PatternFlowIpv4Version) Reset() { } } -func (x *PatternFlowIpv4Version) String() string { +func (x *PatternFlowVlanId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Version) ProtoMessage() {} +func (*PatternFlowVlanId) ProtoMessage() {} -func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[345] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47491,47 +47629,47 @@ func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Version) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanId.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanId) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{345} } -func (x *PatternFlowIpv4Version) GetChoice() PatternFlowIpv4Version_Choice_Enum { +func (x *PatternFlowVlanId) GetChoice() PatternFlowVlanId_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Version_Choice_unspecified + return PatternFlowVlanId_Choice_unspecified } -func (x *PatternFlowIpv4Version) GetValue() uint32 { +func (x *PatternFlowVlanId) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Version) GetValues() []uint32 { +func (x *PatternFlowVlanId) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Version) GetIncrement() *PatternFlowIpv4VersionCounter { +func (x *PatternFlowVlanId) GetIncrement() *PatternFlowVlanIdCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Version) GetDecrement() *PatternFlowIpv4VersionCounter { +func (x *PatternFlowVlanId) GetDecrement() *PatternFlowVlanIdCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Version) GetMetricTags() []*PatternFlowIpv4VersionMetricTag { +func (x *PatternFlowVlanId) GetMetricTags() []*PatternFlowVlanIdMetricTag { if x != nil { return x.MetricTags } @@ -47539,13 +47677,13 @@ func (x *PatternFlowIpv4Version) GetMetricTags() []*PatternFlowIpv4VersionMetric } // integer counter pattern -type PatternFlowIpv4HeaderLengthCounter struct { +type PatternFlowVlanTpidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 5 + // default = 33024 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -47555,8 +47693,8 @@ type PatternFlowIpv4HeaderLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { - *x = PatternFlowIpv4HeaderLengthCounter{} +func (x *PatternFlowVlanTpidCounter) Reset() { + *x = PatternFlowVlanTpidCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47564,13 +47702,13 @@ func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { } } -func (x *PatternFlowIpv4HeaderLengthCounter) String() string { +func (x *PatternFlowVlanTpidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLengthCounter) ProtoMessage() {} +func (*PatternFlowVlanTpidCounter) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[346] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47582,26 +47720,26 @@ func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanTpidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpidCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{346} } -func (x *PatternFlowIpv4HeaderLengthCounter) GetStart() uint32 { +func (x *PatternFlowVlanTpidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4HeaderLengthCounter) GetStep() uint32 { +func (x *PatternFlowVlanTpidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4HeaderLengthCounter) GetCount() uint32 { +func (x *PatternFlowVlanTpidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -47611,7 +47749,7 @@ func (x *PatternFlowIpv4HeaderLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4HeaderLengthMetricTag struct { +type PatternFlowVlanTpidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47625,12 +47763,12 @@ type PatternFlowIpv4HeaderLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { - *x = PatternFlowIpv4HeaderLengthMetricTag{} +func (x *PatternFlowVlanTpidMetricTag) Reset() { + *x = PatternFlowVlanTpidMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47638,13 +47776,13 @@ func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { } } -func (x *PatternFlowIpv4HeaderLengthMetricTag) String() string { +func (x *PatternFlowVlanTpidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLengthMetricTag) ProtoMessage() {} +func (*PatternFlowVlanTpidMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[347] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47656,64 +47794,59 @@ func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanTpidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpidMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{347} } -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetName() string { +func (x *PatternFlowVlanTpidMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanTpidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowVlanTpidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Header length -type PatternFlowIpv4HeaderLength struct { +// Protocol identifier +type PatternFlowVlanTpid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv4HeaderLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderLength_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowVlanTpid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanTpid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 5 + // default = 33024 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [5] + // default = [33024] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 5 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4HeaderLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanTpidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4HeaderLength) Reset() { - *x = PatternFlowIpv4HeaderLength{} +func (x *PatternFlowVlanTpid) Reset() { + *x = PatternFlowVlanTpid{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47721,13 +47854,13 @@ func (x *PatternFlowIpv4HeaderLength) Reset() { } } -func (x *PatternFlowIpv4HeaderLength) String() string { +func (x *PatternFlowVlanTpid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLength) ProtoMessage() {} +func (*PatternFlowVlanTpid) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[348] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47739,54 +47872,47 @@ func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVlanTpid.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpid) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{348} } -func (x *PatternFlowIpv4HeaderLength) GetChoice() PatternFlowIpv4HeaderLength_Choice_Enum { +func (x *PatternFlowVlanTpid) GetChoice() PatternFlowVlanTpid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4HeaderLength_Choice_unspecified + return PatternFlowVlanTpid_Choice_unspecified } -func (x *PatternFlowIpv4HeaderLength) GetValue() uint32 { +func (x *PatternFlowVlanTpid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4HeaderLength) GetValues() []uint32 { +func (x *PatternFlowVlanTpid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4HeaderLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv4HeaderLength) GetIncrement() *PatternFlowIpv4HeaderLengthCounter { +func (x *PatternFlowVlanTpid) GetIncrement() *PatternFlowVlanTpidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4HeaderLength) GetDecrement() *PatternFlowIpv4HeaderLengthCounter { +func (x *PatternFlowVlanTpid) GetDecrement() *PatternFlowVlanTpidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4HeaderLength) GetMetricTags() []*PatternFlowIpv4HeaderLengthMetricTag { +func (x *PatternFlowVlanTpid) GetMetricTags() []*PatternFlowVlanTpidMetricTag { if x != nil { return x.MetricTags } @@ -47794,13 +47920,13 @@ func (x *PatternFlowIpv4HeaderLength) GetMetricTags() []*PatternFlowIpv4HeaderLe } // integer counter pattern -type PatternFlowIpv4TotalLengthCounter struct { +type PatternFlowVxlanFlagsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 46 + // default = 8 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -47810,8 +47936,8 @@ type PatternFlowIpv4TotalLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TotalLengthCounter) Reset() { - *x = PatternFlowIpv4TotalLengthCounter{} +func (x *PatternFlowVxlanFlagsCounter) Reset() { + *x = PatternFlowVxlanFlagsCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47819,13 +47945,13 @@ func (x *PatternFlowIpv4TotalLengthCounter) Reset() { } } -func (x *PatternFlowIpv4TotalLengthCounter) String() string { +func (x *PatternFlowVxlanFlagsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLengthCounter) ProtoMessage() {} +func (*PatternFlowVxlanFlagsCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[349] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47837,26 +47963,26 @@ func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanFlagsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlagsCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{349} } -func (x *PatternFlowIpv4TotalLengthCounter) GetStart() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TotalLengthCounter) GetStep() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TotalLengthCounter) GetCount() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -47866,7 +47992,7 @@ func (x *PatternFlowIpv4TotalLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TotalLengthMetricTag struct { +type PatternFlowVxlanFlagsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -47880,12 +48006,12 @@ type PatternFlowIpv4TotalLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { - *x = PatternFlowIpv4TotalLengthMetricTag{} +func (x *PatternFlowVxlanFlagsMetricTag) Reset() { + *x = PatternFlowVxlanFlagsMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[350] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47893,13 +48019,13 @@ func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { } } -func (x *PatternFlowIpv4TotalLengthMetricTag) String() string { +func (x *PatternFlowVxlanFlagsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLengthMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanFlagsMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[350] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47911,64 +48037,61 @@ func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanFlagsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlagsMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{350} } -func (x *PatternFlowIpv4TotalLengthMetricTag) GetName() string { +func (x *PatternFlowVxlanFlagsMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TotalLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanFlagsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TotalLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanFlagsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Total length -type PatternFlowIpv4TotalLength struct { +// Flags field with a bit format of RRRRIRRR. The I flag MUST be set to 1 for a valid +// vxlan network id (VNI). The other 7 bits (designated R) are reserved fields and +// MUST be set to zero on transmission and ignored on receipt. +type PatternFlowVxlanFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv4TotalLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TotalLength_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowVxlanFlags_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanFlags_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 46 + // default = 8 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [46] + // default = [8] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 46 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TotalLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanFlagsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TotalLength) Reset() { - *x = PatternFlowIpv4TotalLength{} +func (x *PatternFlowVxlanFlags) Reset() { + *x = PatternFlowVxlanFlags{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47976,13 +48099,13 @@ func (x *PatternFlowIpv4TotalLength) Reset() { } } -func (x *PatternFlowIpv4TotalLength) String() string { +func (x *PatternFlowVxlanFlags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLength) ProtoMessage() {} +func (*PatternFlowVxlanFlags) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[351] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47994,54 +48117,47 @@ func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanFlags.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlags) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{351} } -func (x *PatternFlowIpv4TotalLength) GetChoice() PatternFlowIpv4TotalLength_Choice_Enum { +func (x *PatternFlowVxlanFlags) GetChoice() PatternFlowVxlanFlags_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TotalLength_Choice_unspecified + return PatternFlowVxlanFlags_Choice_unspecified } -func (x *PatternFlowIpv4TotalLength) GetValue() uint32 { +func (x *PatternFlowVxlanFlags) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TotalLength) GetValues() []uint32 { +func (x *PatternFlowVxlanFlags) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TotalLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv4TotalLength) GetIncrement() *PatternFlowIpv4TotalLengthCounter { +func (x *PatternFlowVxlanFlags) GetIncrement() *PatternFlowVxlanFlagsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TotalLength) GetDecrement() *PatternFlowIpv4TotalLengthCounter { +func (x *PatternFlowVxlanFlags) GetDecrement() *PatternFlowVxlanFlagsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TotalLength) GetMetricTags() []*PatternFlowIpv4TotalLengthMetricTag { +func (x *PatternFlowVxlanFlags) GetMetricTags() []*PatternFlowVxlanFlagsMetricTag { if x != nil { return x.MetricTags } @@ -48049,7 +48165,7 @@ func (x *PatternFlowIpv4TotalLength) GetMetricTags() []*PatternFlowIpv4TotalLeng } // integer counter pattern -type PatternFlowIpv4IdentificationCounter struct { +type PatternFlowVxlanReserved0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48065,8 +48181,8 @@ type PatternFlowIpv4IdentificationCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4IdentificationCounter) Reset() { - *x = PatternFlowIpv4IdentificationCounter{} +func (x *PatternFlowVxlanReserved0Counter) Reset() { + *x = PatternFlowVxlanReserved0Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48074,13 +48190,13 @@ func (x *PatternFlowIpv4IdentificationCounter) Reset() { } } -func (x *PatternFlowIpv4IdentificationCounter) String() string { +func (x *PatternFlowVxlanReserved0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4IdentificationCounter) ProtoMessage() {} +func (*PatternFlowVxlanReserved0Counter) ProtoMessage() {} -func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[352] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48092,26 +48208,26 @@ func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4IdentificationCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4IdentificationCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{352} } -func (x *PatternFlowIpv4IdentificationCounter) GetStart() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4IdentificationCounter) GetStep() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4IdentificationCounter) GetCount() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -48121,7 +48237,7 @@ func (x *PatternFlowIpv4IdentificationCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4IdentificationMetricTag struct { +type PatternFlowVxlanReserved0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48135,12 +48251,12 @@ type PatternFlowIpv4IdentificationMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { - *x = PatternFlowIpv4IdentificationMetricTag{} +func (x *PatternFlowVxlanReserved0MetricTag) Reset() { + *x = PatternFlowVxlanReserved0MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48148,13 +48264,13 @@ func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { } } -func (x *PatternFlowIpv4IdentificationMetricTag) String() string { +func (x *PatternFlowVxlanReserved0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4IdentificationMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanReserved0MetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[353] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48166,41 +48282,41 @@ func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4IdentificationMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4IdentificationMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{353} } -func (x *PatternFlowIpv4IdentificationMetricTag) GetName() string { +func (x *PatternFlowVxlanReserved0MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4IdentificationMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanReserved0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4IdentificationMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanReserved0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Identification -type PatternFlowIpv4Identification struct { +// Reserved field +type PatternFlowVxlanReserved0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Identification_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Identification_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVxlanReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved0_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -48208,17 +48324,17 @@ type PatternFlowIpv4Identification struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4IdentificationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Identification) Reset() { - *x = PatternFlowIpv4Identification{} +func (x *PatternFlowVxlanReserved0) Reset() { + *x = PatternFlowVxlanReserved0{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[354] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48226,13 +48342,13 @@ func (x *PatternFlowIpv4Identification) Reset() { } } -func (x *PatternFlowIpv4Identification) String() string { +func (x *PatternFlowVxlanReserved0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Identification) ProtoMessage() {} +func (*PatternFlowVxlanReserved0) ProtoMessage() {} -func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[354] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48244,47 +48360,47 @@ func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Identification.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Identification) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved0.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{354} } -func (x *PatternFlowIpv4Identification) GetChoice() PatternFlowIpv4Identification_Choice_Enum { +func (x *PatternFlowVxlanReserved0) GetChoice() PatternFlowVxlanReserved0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Identification_Choice_unspecified + return PatternFlowVxlanReserved0_Choice_unspecified } -func (x *PatternFlowIpv4Identification) GetValue() uint32 { +func (x *PatternFlowVxlanReserved0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Identification) GetValues() []uint32 { +func (x *PatternFlowVxlanReserved0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Identification) GetIncrement() *PatternFlowIpv4IdentificationCounter { +func (x *PatternFlowVxlanReserved0) GetIncrement() *PatternFlowVxlanReserved0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Identification) GetDecrement() *PatternFlowIpv4IdentificationCounter { +func (x *PatternFlowVxlanReserved0) GetDecrement() *PatternFlowVxlanReserved0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Identification) GetMetricTags() []*PatternFlowIpv4IdentificationMetricTag { +func (x *PatternFlowVxlanReserved0) GetMetricTags() []*PatternFlowVxlanReserved0MetricTag { if x != nil { return x.MetricTags } @@ -48292,7 +48408,7 @@ func (x *PatternFlowIpv4Identification) GetMetricTags() []*PatternFlowIpv4Identi } // integer counter pattern -type PatternFlowIpv4ReservedCounter struct { +type PatternFlowVxlanVniCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48308,8 +48424,8 @@ type PatternFlowIpv4ReservedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4ReservedCounter) Reset() { - *x = PatternFlowIpv4ReservedCounter{} +func (x *PatternFlowVxlanVniCounter) Reset() { + *x = PatternFlowVxlanVniCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[355] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48317,13 +48433,13 @@ func (x *PatternFlowIpv4ReservedCounter) Reset() { } } -func (x *PatternFlowIpv4ReservedCounter) String() string { +func (x *PatternFlowVxlanVniCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ReservedCounter) ProtoMessage() {} +func (*PatternFlowVxlanVniCounter) ProtoMessage() {} -func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[355] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48335,26 +48451,26 @@ func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ReservedCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanVniCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVniCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{355} } -func (x *PatternFlowIpv4ReservedCounter) GetStart() uint32 { +func (x *PatternFlowVxlanVniCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4ReservedCounter) GetStep() uint32 { +func (x *PatternFlowVxlanVniCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4ReservedCounter) GetCount() uint32 { +func (x *PatternFlowVxlanVniCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -48364,7 +48480,7 @@ func (x *PatternFlowIpv4ReservedCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4ReservedMetricTag struct { +type PatternFlowVxlanVniMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48378,12 +48494,12 @@ type PatternFlowIpv4ReservedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4ReservedMetricTag) Reset() { - *x = PatternFlowIpv4ReservedMetricTag{} +func (x *PatternFlowVxlanVniMetricTag) Reset() { + *x = PatternFlowVxlanVniMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48391,13 +48507,13 @@ func (x *PatternFlowIpv4ReservedMetricTag) Reset() { } } -func (x *PatternFlowIpv4ReservedMetricTag) String() string { +func (x *PatternFlowVxlanVniMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ReservedMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanVniMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[356] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48409,59 +48525,64 @@ func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ReservedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ReservedMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanVniMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVniMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{356} } -func (x *PatternFlowIpv4ReservedMetricTag) GetName() string { +func (x *PatternFlowVxlanVniMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4ReservedMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanVniMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4ReservedMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanVniMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved flag. -type PatternFlowIpv4Reserved struct { +// VXLAN network id +type PatternFlowVxlanVni struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Reserved_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowVxlanVni_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanVni_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 0 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanVniMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Reserved) Reset() { - *x = PatternFlowIpv4Reserved{} +func (x *PatternFlowVxlanVni) Reset() { + *x = PatternFlowVxlanVni{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48469,13 +48590,13 @@ func (x *PatternFlowIpv4Reserved) Reset() { } } -func (x *PatternFlowIpv4Reserved) String() string { +func (x *PatternFlowVxlanVni) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Reserved) ProtoMessage() {} +func (*PatternFlowVxlanVni) ProtoMessage() {} -func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[357] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48487,47 +48608,54 @@ func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Reserved.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Reserved) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanVni.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVni) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{357} } -func (x *PatternFlowIpv4Reserved) GetChoice() PatternFlowIpv4Reserved_Choice_Enum { +func (x *PatternFlowVxlanVni) GetChoice() PatternFlowVxlanVni_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Reserved_Choice_unspecified + return PatternFlowVxlanVni_Choice_unspecified } -func (x *PatternFlowIpv4Reserved) GetValue() uint32 { +func (x *PatternFlowVxlanVni) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Reserved) GetValues() []uint32 { +func (x *PatternFlowVxlanVni) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Reserved) GetIncrement() *PatternFlowIpv4ReservedCounter { +func (x *PatternFlowVxlanVni) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowVxlanVni) GetIncrement() *PatternFlowVxlanVniCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Reserved) GetDecrement() *PatternFlowIpv4ReservedCounter { +func (x *PatternFlowVxlanVni) GetDecrement() *PatternFlowVxlanVniCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Reserved) GetMetricTags() []*PatternFlowIpv4ReservedMetricTag { +func (x *PatternFlowVxlanVni) GetMetricTags() []*PatternFlowVxlanVniMetricTag { if x != nil { return x.MetricTags } @@ -48535,7 +48663,7 @@ func (x *PatternFlowIpv4Reserved) GetMetricTags() []*PatternFlowIpv4ReservedMetr } // integer counter pattern -type PatternFlowIpv4DontFragmentCounter struct { +type PatternFlowVxlanReserved1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48551,8 +48679,8 @@ type PatternFlowIpv4DontFragmentCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DontFragmentCounter) Reset() { - *x = PatternFlowIpv4DontFragmentCounter{} +func (x *PatternFlowVxlanReserved1Counter) Reset() { + *x = PatternFlowVxlanReserved1Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[358] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48560,13 +48688,13 @@ func (x *PatternFlowIpv4DontFragmentCounter) Reset() { } } -func (x *PatternFlowIpv4DontFragmentCounter) String() string { +func (x *PatternFlowVxlanReserved1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragmentCounter) ProtoMessage() {} +func (*PatternFlowVxlanReserved1Counter) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[358] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48578,26 +48706,26 @@ func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragmentCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragmentCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{358} } -func (x *PatternFlowIpv4DontFragmentCounter) GetStart() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4DontFragmentCounter) GetStep() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4DontFragmentCounter) GetCount() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -48607,7 +48735,7 @@ func (x *PatternFlowIpv4DontFragmentCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4DontFragmentMetricTag struct { +type PatternFlowVxlanReserved1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48621,12 +48749,12 @@ type PatternFlowIpv4DontFragmentMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { - *x = PatternFlowIpv4DontFragmentMetricTag{} +func (x *PatternFlowVxlanReserved1MetricTag) Reset() { + *x = PatternFlowVxlanReserved1MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48634,13 +48762,13 @@ func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { } } -func (x *PatternFlowIpv4DontFragmentMetricTag) String() string { +func (x *PatternFlowVxlanReserved1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragmentMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanReserved1MetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[359] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48652,42 +48780,41 @@ func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragmentMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragmentMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{359} } -func (x *PatternFlowIpv4DontFragmentMetricTag) GetName() string { +func (x *PatternFlowVxlanReserved1MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4DontFragmentMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanReserved1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DontFragmentMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanReserved1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Dont fragment flag If the dont_fragment flag is set and fragmentation is required -// to route the packet then the packet is dropped. -type PatternFlowIpv4DontFragment struct { +// Reserved field +type PatternFlowVxlanReserved1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4DontFragment_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DontFragment_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVxlanReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved1_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -48695,17 +48822,17 @@ type PatternFlowIpv4DontFragment struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowVxlanReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4DontFragmentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4DontFragment) Reset() { - *x = PatternFlowIpv4DontFragment{} +func (x *PatternFlowVxlanReserved1) Reset() { + *x = PatternFlowVxlanReserved1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48713,13 +48840,13 @@ func (x *PatternFlowIpv4DontFragment) Reset() { } } -func (x *PatternFlowIpv4DontFragment) String() string { +func (x *PatternFlowVxlanReserved1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragment) ProtoMessage() {} +func (*PatternFlowVxlanReserved1) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[360] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48731,47 +48858,47 @@ func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragment.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragment) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowVxlanReserved1.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{360} } -func (x *PatternFlowIpv4DontFragment) GetChoice() PatternFlowIpv4DontFragment_Choice_Enum { +func (x *PatternFlowVxlanReserved1) GetChoice() PatternFlowVxlanReserved1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4DontFragment_Choice_unspecified + return PatternFlowVxlanReserved1_Choice_unspecified } -func (x *PatternFlowIpv4DontFragment) GetValue() uint32 { +func (x *PatternFlowVxlanReserved1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4DontFragment) GetValues() []uint32 { +func (x *PatternFlowVxlanReserved1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4DontFragment) GetIncrement() *PatternFlowIpv4DontFragmentCounter { +func (x *PatternFlowVxlanReserved1) GetIncrement() *PatternFlowVxlanReserved1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4DontFragment) GetDecrement() *PatternFlowIpv4DontFragmentCounter { +func (x *PatternFlowVxlanReserved1) GetDecrement() *PatternFlowVxlanReserved1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4DontFragment) GetMetricTags() []*PatternFlowIpv4DontFragmentMetricTag { +func (x *PatternFlowVxlanReserved1) GetMetricTags() []*PatternFlowVxlanReserved1MetricTag { if x != nil { return x.MetricTags } @@ -48779,13 +48906,13 @@ func (x *PatternFlowIpv4DontFragment) GetMetricTags() []*PatternFlowIpv4DontFrag } // integer counter pattern -type PatternFlowIpv4MoreFragmentsCounter struct { +type PatternFlowIpv4VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 4 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -48795,8 +48922,8 @@ type PatternFlowIpv4MoreFragmentsCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { - *x = PatternFlowIpv4MoreFragmentsCounter{} +func (x *PatternFlowIpv4VersionCounter) Reset() { + *x = PatternFlowIpv4VersionCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48804,13 +48931,13 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { } } -func (x *PatternFlowIpv4MoreFragmentsCounter) String() string { +func (x *PatternFlowIpv4VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragmentsCounter) ProtoMessage() {} +func (*PatternFlowIpv4VersionCounter) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[361] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48822,26 +48949,26 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragmentsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragmentsCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4VersionCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{361} } -func (x *PatternFlowIpv4MoreFragmentsCounter) GetStart() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4MoreFragmentsCounter) GetStep() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4MoreFragmentsCounter) GetCount() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -48851,7 +48978,7 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4MoreFragmentsMetricTag struct { +type PatternFlowIpv4VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -48865,12 +48992,12 @@ type PatternFlowIpv4MoreFragmentsMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { - *x = PatternFlowIpv4MoreFragmentsMetricTag{} +func (x *PatternFlowIpv4VersionMetricTag) Reset() { + *x = PatternFlowIpv4VersionMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48878,13 +49005,13 @@ func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { } } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) String() string { +func (x *PatternFlowIpv4VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragmentsMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[362] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48896,59 +49023,59 @@ func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragmentsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragmentsMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4VersionMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{362} } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetName() string { +func (x *PatternFlowIpv4VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// More fragments flag -type PatternFlowIpv4MoreFragments struct { +// Version +type PatternFlowIpv4Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4MoreFragments_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4MoreFragments_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 4 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [4] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4MoreFragmentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4MoreFragments) Reset() { - *x = PatternFlowIpv4MoreFragments{} +func (x *PatternFlowIpv4Version) Reset() { + *x = PatternFlowIpv4Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48956,13 +49083,13 @@ func (x *PatternFlowIpv4MoreFragments) Reset() { } } -func (x *PatternFlowIpv4MoreFragments) String() string { +func (x *PatternFlowIpv4Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragments) ProtoMessage() {} +func (*PatternFlowIpv4Version) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[363] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48974,47 +49101,47 @@ func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragments.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragments) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Version) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{363} } -func (x *PatternFlowIpv4MoreFragments) GetChoice() PatternFlowIpv4MoreFragments_Choice_Enum { +func (x *PatternFlowIpv4Version) GetChoice() PatternFlowIpv4Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4MoreFragments_Choice_unspecified + return PatternFlowIpv4Version_Choice_unspecified } -func (x *PatternFlowIpv4MoreFragments) GetValue() uint32 { +func (x *PatternFlowIpv4Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4MoreFragments) GetValues() []uint32 { +func (x *PatternFlowIpv4Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4MoreFragments) GetIncrement() *PatternFlowIpv4MoreFragmentsCounter { +func (x *PatternFlowIpv4Version) GetIncrement() *PatternFlowIpv4VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4MoreFragments) GetDecrement() *PatternFlowIpv4MoreFragmentsCounter { +func (x *PatternFlowIpv4Version) GetDecrement() *PatternFlowIpv4VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4MoreFragments) GetMetricTags() []*PatternFlowIpv4MoreFragmentsMetricTag { +func (x *PatternFlowIpv4Version) GetMetricTags() []*PatternFlowIpv4VersionMetricTag { if x != nil { return x.MetricTags } @@ -49022,13 +49149,13 @@ func (x *PatternFlowIpv4MoreFragments) GetMetricTags() []*PatternFlowIpv4MoreFra } // integer counter pattern -type PatternFlowIpv4FragmentOffsetCounter struct { +type PatternFlowIpv4HeaderLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 5 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -49038,8 +49165,8 @@ type PatternFlowIpv4FragmentOffsetCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4FragmentOffsetCounter) Reset() { - *x = PatternFlowIpv4FragmentOffsetCounter{} +func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { + *x = PatternFlowIpv4HeaderLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49047,13 +49174,13 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) Reset() { } } -func (x *PatternFlowIpv4FragmentOffsetCounter) String() string { +func (x *PatternFlowIpv4HeaderLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffsetCounter) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLengthCounter) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[364] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49065,26 +49192,26 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffsetCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffsetCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4HeaderLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{364} } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetStart() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetStep() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -49094,7 +49221,7 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4FragmentOffsetMetricTag struct { +type PatternFlowIpv4HeaderLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -49108,12 +49235,12 @@ type PatternFlowIpv4FragmentOffsetMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 5 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { - *x = PatternFlowIpv4FragmentOffsetMetricTag{} +func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { + *x = PatternFlowIpv4HeaderLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[365] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49121,13 +49248,13 @@ func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { } } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) String() string { +func (x *PatternFlowIpv4HeaderLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffsetMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[365] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49139,59 +49266,64 @@ func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffsetMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffsetMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4HeaderLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{365} } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetName() string { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Fragment offset -type PatternFlowIpv4FragmentOffset struct { +// Header length +type PatternFlowIpv4HeaderLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4FragmentOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4FragmentOffset_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4HeaderLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 5 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [5] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 5 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4FragmentOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4HeaderLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4FragmentOffset) Reset() { - *x = PatternFlowIpv4FragmentOffset{} +func (x *PatternFlowIpv4HeaderLength) Reset() { + *x = PatternFlowIpv4HeaderLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49199,13 +49331,13 @@ func (x *PatternFlowIpv4FragmentOffset) Reset() { } } -func (x *PatternFlowIpv4FragmentOffset) String() string { +func (x *PatternFlowIpv4HeaderLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffset) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLength) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[366] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49217,47 +49349,54 @@ func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffset.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffset) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4HeaderLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{366} } -func (x *PatternFlowIpv4FragmentOffset) GetChoice() PatternFlowIpv4FragmentOffset_Choice_Enum { +func (x *PatternFlowIpv4HeaderLength) GetChoice() PatternFlowIpv4HeaderLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4FragmentOffset_Choice_unspecified + return PatternFlowIpv4HeaderLength_Choice_unspecified } -func (x *PatternFlowIpv4FragmentOffset) GetValue() uint32 { +func (x *PatternFlowIpv4HeaderLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4FragmentOffset) GetValues() []uint32 { +func (x *PatternFlowIpv4HeaderLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetIncrement() *PatternFlowIpv4FragmentOffsetCounter { +func (x *PatternFlowIpv4HeaderLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4HeaderLength) GetIncrement() *PatternFlowIpv4HeaderLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetDecrement() *PatternFlowIpv4FragmentOffsetCounter { +func (x *PatternFlowIpv4HeaderLength) GetDecrement() *PatternFlowIpv4HeaderLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetMetricTags() []*PatternFlowIpv4FragmentOffsetMetricTag { +func (x *PatternFlowIpv4HeaderLength) GetMetricTags() []*PatternFlowIpv4HeaderLengthMetricTag { if x != nil { return x.MetricTags } @@ -49265,13 +49404,13 @@ func (x *PatternFlowIpv4FragmentOffset) GetMetricTags() []*PatternFlowIpv4Fragme } // integer counter pattern -type PatternFlowIpv4TimeToLiveCounter struct { +type PatternFlowIpv4TotalLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 46 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -49281,8 +49420,8 @@ type PatternFlowIpv4TimeToLiveCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TimeToLiveCounter) Reset() { - *x = PatternFlowIpv4TimeToLiveCounter{} +func (x *PatternFlowIpv4TotalLengthCounter) Reset() { + *x = PatternFlowIpv4TotalLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49290,13 +49429,13 @@ func (x *PatternFlowIpv4TimeToLiveCounter) Reset() { } } -func (x *PatternFlowIpv4TimeToLiveCounter) String() string { +func (x *PatternFlowIpv4TotalLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLiveCounter) ProtoMessage() {} +func (*PatternFlowIpv4TotalLengthCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[367] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49308,26 +49447,26 @@ func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLiveCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLiveCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TotalLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{367} } -func (x *PatternFlowIpv4TimeToLiveCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TimeToLiveCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -49337,7 +49476,7 @@ func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TimeToLiveMetricTag struct { +type PatternFlowIpv4TotalLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -49351,12 +49490,12 @@ type PatternFlowIpv4TimeToLiveMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { - *x = PatternFlowIpv4TimeToLiveMetricTag{} +func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { + *x = PatternFlowIpv4TotalLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49364,13 +49503,13 @@ func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { } } -func (x *PatternFlowIpv4TimeToLiveMetricTag) String() string { +func (x *PatternFlowIpv4TotalLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLiveMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TotalLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[368] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49382,59 +49521,64 @@ func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLiveMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLiveMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TotalLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{368} } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetName() string { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time to live -type PatternFlowIpv4TimeToLive struct { +// Total length +type PatternFlowIpv4TotalLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4TimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4TotalLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TotalLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 46 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [46] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 46 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TotalLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TimeToLive) Reset() { - *x = PatternFlowIpv4TimeToLive{} +func (x *PatternFlowIpv4TotalLength) Reset() { + *x = PatternFlowIpv4TotalLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49442,13 +49586,13 @@ func (x *PatternFlowIpv4TimeToLive) Reset() { } } -func (x *PatternFlowIpv4TimeToLive) String() string { +func (x *PatternFlowIpv4TotalLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLive) ProtoMessage() {} +func (*PatternFlowIpv4TotalLength) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[369] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49460,47 +49604,54 @@ func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLive.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLive) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TotalLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{369} } -func (x *PatternFlowIpv4TimeToLive) GetChoice() PatternFlowIpv4TimeToLive_Choice_Enum { +func (x *PatternFlowIpv4TotalLength) GetChoice() PatternFlowIpv4TotalLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TimeToLive_Choice_unspecified + return PatternFlowIpv4TotalLength_Choice_unspecified } -func (x *PatternFlowIpv4TimeToLive) GetValue() uint32 { +func (x *PatternFlowIpv4TotalLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TimeToLive) GetValues() []uint32 { +func (x *PatternFlowIpv4TotalLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TimeToLive) GetIncrement() *PatternFlowIpv4TimeToLiveCounter { +func (x *PatternFlowIpv4TotalLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4TotalLength) GetIncrement() *PatternFlowIpv4TotalLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TimeToLive) GetDecrement() *PatternFlowIpv4TimeToLiveCounter { +func (x *PatternFlowIpv4TotalLength) GetDecrement() *PatternFlowIpv4TotalLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLiveMetricTag { +func (x *PatternFlowIpv4TotalLength) GetMetricTags() []*PatternFlowIpv4TotalLengthMetricTag { if x != nil { return x.MetricTags } @@ -49508,13 +49659,13 @@ func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLive } // integer counter pattern -type PatternFlowIpv4ProtocolCounter struct { +type PatternFlowIpv4IdentificationCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 61 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -49524,8 +49675,8 @@ type PatternFlowIpv4ProtocolCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4ProtocolCounter) Reset() { - *x = PatternFlowIpv4ProtocolCounter{} +func (x *PatternFlowIpv4IdentificationCounter) Reset() { + *x = PatternFlowIpv4IdentificationCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49533,13 +49684,13 @@ func (x *PatternFlowIpv4ProtocolCounter) Reset() { } } -func (x *PatternFlowIpv4ProtocolCounter) String() string { +func (x *PatternFlowIpv4IdentificationCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ProtocolCounter) ProtoMessage() {} +func (*PatternFlowIpv4IdentificationCounter) ProtoMessage() {} -func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[370] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49551,26 +49702,26 @@ func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ProtocolCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ProtocolCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4IdentificationCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4IdentificationCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{370} } -func (x *PatternFlowIpv4ProtocolCounter) GetStart() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4ProtocolCounter) GetStep() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -49580,7 +49731,7 @@ func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4ProtocolMetricTag struct { +type PatternFlowIpv4IdentificationMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -49594,12 +49745,12 @@ type PatternFlowIpv4ProtocolMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { - *x = PatternFlowIpv4ProtocolMetricTag{} +func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { + *x = PatternFlowIpv4IdentificationMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49607,13 +49758,13 @@ func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { } } -func (x *PatternFlowIpv4ProtocolMetricTag) String() string { +func (x *PatternFlowIpv4IdentificationMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ProtocolMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4IdentificationMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[371] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49625,64 +49776,59 @@ func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ProtocolMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ProtocolMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4IdentificationMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4IdentificationMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{371} } -func (x *PatternFlowIpv4ProtocolMetricTag) GetName() string { +func (x *PatternFlowIpv4IdentificationMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4ProtocolMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4IdentificationMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4ProtocolMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4IdentificationMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol, default is 61 any host internal protocol -type PatternFlowIpv4Protocol struct { +// Identification +type PatternFlowIpv4Identification struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv4Protocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Protocol_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIpv4Identification_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Identification_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 61 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [61] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 61 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4ProtocolMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4IdentificationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Protocol) Reset() { - *x = PatternFlowIpv4Protocol{} +func (x *PatternFlowIpv4Identification) Reset() { + *x = PatternFlowIpv4Identification{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[372] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49690,13 +49836,13 @@ func (x *PatternFlowIpv4Protocol) Reset() { } } -func (x *PatternFlowIpv4Protocol) String() string { +func (x *PatternFlowIpv4Identification) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Protocol) ProtoMessage() {} +func (*PatternFlowIpv4Identification) ProtoMessage() {} -func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[372] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49708,78 +49854,72 @@ func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Protocol.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Protocol) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4Identification.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Identification) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{372} } -func (x *PatternFlowIpv4Protocol) GetChoice() PatternFlowIpv4Protocol_Choice_Enum { +func (x *PatternFlowIpv4Identification) GetChoice() PatternFlowIpv4Identification_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Protocol_Choice_unspecified + return PatternFlowIpv4Identification_Choice_unspecified } -func (x *PatternFlowIpv4Protocol) GetValue() uint32 { +func (x *PatternFlowIpv4Identification) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Protocol) GetValues() []uint32 { +func (x *PatternFlowIpv4Identification) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Protocol) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv4Protocol) GetIncrement() *PatternFlowIpv4ProtocolCounter { +func (x *PatternFlowIpv4Identification) GetIncrement() *PatternFlowIpv4IdentificationCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Protocol) GetDecrement() *PatternFlowIpv4ProtocolCounter { +func (x *PatternFlowIpv4Identification) GetDecrement() *PatternFlowIpv4IdentificationCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Protocol) GetMetricTags() []*PatternFlowIpv4ProtocolMetricTag { +func (x *PatternFlowIpv4Identification) GetMetricTags() []*PatternFlowIpv4IdentificationMetricTag { if x != nil { return x.MetricTags } return nil } -// Header checksum -type PatternFlowIpv4HeaderChecksum struct { +// integer counter pattern +type PatternFlowIpv4ReservedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIpv4HeaderChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIpv4HeaderChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4HeaderChecksum) Reset() { - *x = PatternFlowIpv4HeaderChecksum{} +func (x *PatternFlowIpv4ReservedCounter) Reset() { + *x = PatternFlowIpv4ReservedCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49787,13 +49927,13 @@ func (x *PatternFlowIpv4HeaderChecksum) Reset() { } } -func (x *PatternFlowIpv4HeaderChecksum) String() string { +func (x *PatternFlowIpv4ReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum) ProtoMessage() {} +func (*PatternFlowIpv4ReservedCounter) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[373] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -49805,96 +49945,26 @@ func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4ReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ReservedCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{373} } -func (x *PatternFlowIpv4HeaderChecksum) GetChoice() PatternFlowIpv4HeaderChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIpv4HeaderChecksum_Choice_unspecified -} - -func (x *PatternFlowIpv4HeaderChecksum) GetGenerated() PatternFlowIpv4HeaderChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIpv4HeaderChecksum_Generated_unspecified -} - -func (x *PatternFlowIpv4HeaderChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// ipv4 counter pattern -type PatternFlowIpv4SrcCounter struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowIpv4SrcCounter) Reset() { - *x = PatternFlowIpv4SrcCounter{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[374] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIpv4SrcCounter) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIpv4SrcCounter) ProtoMessage() {} - -func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[374] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowIpv4SrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4SrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{374} -} - -func (x *PatternFlowIpv4SrcCounter) GetStart() string { +func (x *PatternFlowIpv4ReservedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv4SrcCounter) GetStep() string { +func (x *PatternFlowIpv4ReservedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv4ReservedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -49904,7 +49974,7 @@ func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4SrcMetricTag struct { +type PatternFlowIpv4ReservedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -49918,27 +49988,27 @@ type PatternFlowIpv4SrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4SrcMetricTag) Reset() { - *x = PatternFlowIpv4SrcMetricTag{} +func (x *PatternFlowIpv4ReservedMetricTag) Reset() { + *x = PatternFlowIpv4ReservedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[375] + mi := &file_otg_proto_msgTypes[374] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4SrcMetricTag) String() string { +func (x *PatternFlowIpv4ReservedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4SrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4ReservedMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[375] +func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[374] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49949,74 +50019,74 @@ func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4SrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4SrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{375} +// Deprecated: Use PatternFlowIpv4ReservedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ReservedMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{374} } -func (x *PatternFlowIpv4SrcMetricTag) GetName() string { +func (x *PatternFlowIpv4ReservedMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4SrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4ReservedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4SrcMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4ReservedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source address -type PatternFlowIpv4Src struct { +// Reserved flag. +type PatternFlowIpv4Reserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Src_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Reserved_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Src) Reset() { - *x = PatternFlowIpv4Src{} +func (x *PatternFlowIpv4Reserved) Reset() { + *x = PatternFlowIpv4Reserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[376] + mi := &file_otg_proto_msgTypes[375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Src) String() string { +func (x *PatternFlowIpv4Reserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Src) ProtoMessage() {} +func (*PatternFlowIpv4Reserved) ProtoMessage() {} -func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[376] +func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[375] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50027,87 +50097,87 @@ func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Src.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Src) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{376} +// Deprecated: Use PatternFlowIpv4Reserved.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Reserved) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{375} } -func (x *PatternFlowIpv4Src) GetChoice() PatternFlowIpv4Src_Choice_Enum { +func (x *PatternFlowIpv4Reserved) GetChoice() PatternFlowIpv4Reserved_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Src_Choice_unspecified + return PatternFlowIpv4Reserved_Choice_unspecified } -func (x *PatternFlowIpv4Src) GetValue() string { +func (x *PatternFlowIpv4Reserved) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv4Src) GetValues() []string { +func (x *PatternFlowIpv4Reserved) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Src) GetIncrement() *PatternFlowIpv4SrcCounter { +func (x *PatternFlowIpv4Reserved) GetIncrement() *PatternFlowIpv4ReservedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Src) GetDecrement() *PatternFlowIpv4SrcCounter { +func (x *PatternFlowIpv4Reserved) GetDecrement() *PatternFlowIpv4ReservedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Src) GetMetricTags() []*PatternFlowIpv4SrcMetricTag { +func (x *PatternFlowIpv4Reserved) GetMetricTags() []*PatternFlowIpv4ReservedMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv4 counter pattern -type PatternFlowIpv4DstCounter struct { +// integer counter pattern +type PatternFlowIpv4DontFragmentCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DstCounter) Reset() { - *x = PatternFlowIpv4DstCounter{} +func (x *PatternFlowIpv4DontFragmentCounter) Reset() { + *x = PatternFlowIpv4DontFragmentCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[377] + mi := &file_otg_proto_msgTypes[376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DstCounter) String() string { +func (x *PatternFlowIpv4DontFragmentCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DstCounter) ProtoMessage() {} +func (*PatternFlowIpv4DontFragmentCounter) ProtoMessage() {} -func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[377] +func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[376] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50118,26 +50188,26 @@ func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{377} +// Deprecated: Use PatternFlowIpv4DontFragmentCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragmentCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{376} } -func (x *PatternFlowIpv4DstCounter) GetStart() string { +func (x *PatternFlowIpv4DontFragmentCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv4DstCounter) GetStep() string { +func (x *PatternFlowIpv4DontFragmentCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DontFragmentCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -50147,7 +50217,7 @@ func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4DstMetricTag struct { +type PatternFlowIpv4DontFragmentMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50161,27 +50231,27 @@ type PatternFlowIpv4DstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DstMetricTag) Reset() { - *x = PatternFlowIpv4DstMetricTag{} +func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { + *x = PatternFlowIpv4DontFragmentMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[378] + mi := &file_otg_proto_msgTypes[377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DstMetricTag) String() string { +func (x *PatternFlowIpv4DontFragmentMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DstMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DontFragmentMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[378] +func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[377] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50192,74 +50262,75 @@ func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{378} +// Deprecated: Use PatternFlowIpv4DontFragmentMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragmentMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{377} } -func (x *PatternFlowIpv4DstMetricTag) GetName() string { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4DstMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DstMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination address -type PatternFlowIpv4Dst struct { +// Dont fragment flag If the dont_fragment flag is set and fragmentation is required +// to route the packet then the packet is dropped. +type PatternFlowIpv4DontFragment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Dst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DontFragment_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DontFragment_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DontFragmentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Dst) Reset() { - *x = PatternFlowIpv4Dst{} +func (x *PatternFlowIpv4DontFragment) Reset() { + *x = PatternFlowIpv4DontFragment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[379] + mi := &file_otg_proto_msgTypes[378] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Dst) String() string { +func (x *PatternFlowIpv4DontFragment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Dst) ProtoMessage() {} +func (*PatternFlowIpv4DontFragment) ProtoMessage() {} -func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[379] +func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[378] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50270,47 +50341,47 @@ func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Dst.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Dst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{379} +// Deprecated: Use PatternFlowIpv4DontFragment.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{378} } -func (x *PatternFlowIpv4Dst) GetChoice() PatternFlowIpv4Dst_Choice_Enum { +func (x *PatternFlowIpv4DontFragment) GetChoice() PatternFlowIpv4DontFragment_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Dst_Choice_unspecified + return PatternFlowIpv4DontFragment_Choice_unspecified } -func (x *PatternFlowIpv4Dst) GetValue() string { +func (x *PatternFlowIpv4DontFragment) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv4Dst) GetValues() []string { +func (x *PatternFlowIpv4DontFragment) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Dst) GetIncrement() *PatternFlowIpv4DstCounter { +func (x *PatternFlowIpv4DontFragment) GetIncrement() *PatternFlowIpv4DontFragmentCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Dst) GetDecrement() *PatternFlowIpv4DstCounter { +func (x *PatternFlowIpv4DontFragment) GetDecrement() *PatternFlowIpv4DontFragmentCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Dst) GetMetricTags() []*PatternFlowIpv4DstMetricTag { +func (x *PatternFlowIpv4DontFragment) GetMetricTags() []*PatternFlowIpv4DontFragmentMetricTag { if x != nil { return x.MetricTags } @@ -50318,7 +50389,7 @@ func (x *PatternFlowIpv4Dst) GetMetricTags() []*PatternFlowIpv4DstMetricTag { } // integer counter pattern -type PatternFlowIpv4PriorityRawCounter struct { +type PatternFlowIpv4MoreFragmentsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50334,23 +50405,23 @@ type PatternFlowIpv4PriorityRawCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4PriorityRawCounter) Reset() { - *x = PatternFlowIpv4PriorityRawCounter{} +func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { + *x = PatternFlowIpv4MoreFragmentsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[380] + mi := &file_otg_proto_msgTypes[379] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRawCounter) String() string { +func (x *PatternFlowIpv4MoreFragmentsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRawCounter) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragmentsCounter) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[380] +func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[379] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50361,26 +50432,26 @@ func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRawCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRawCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{380} +// Deprecated: Use PatternFlowIpv4MoreFragmentsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragmentsCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{379} } -func (x *PatternFlowIpv4PriorityRawCounter) GetStart() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4PriorityRawCounter) GetStep() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -50390,7 +50461,7 @@ func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4PriorityRawMetricTag struct { +type PatternFlowIpv4MoreFragmentsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50404,27 +50475,27 @@ type PatternFlowIpv4PriorityRawMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4PriorityRawMetricTag) Reset() { - *x = PatternFlowIpv4PriorityRawMetricTag{} +func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { + *x = PatternFlowIpv4MoreFragmentsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[381] + mi := &file_otg_proto_msgTypes[380] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRawMetricTag) String() string { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRawMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragmentsMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[381] +func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[380] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50435,41 +50506,41 @@ func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRawMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRawMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{381} +// Deprecated: Use PatternFlowIpv4MoreFragmentsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragmentsMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{380} } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetName() string { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Raw priority -type PatternFlowIpv4PriorityRaw struct { +// More fragments flag +type PatternFlowIpv4MoreFragments struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4PriorityRaw_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4PriorityRaw_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4MoreFragments_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4MoreFragments_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -50477,32 +50548,32 @@ type PatternFlowIpv4PriorityRaw struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4PriorityRawMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4MoreFragmentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4PriorityRaw) Reset() { - *x = PatternFlowIpv4PriorityRaw{} +func (x *PatternFlowIpv4MoreFragments) Reset() { + *x = PatternFlowIpv4MoreFragments{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[382] + mi := &file_otg_proto_msgTypes[381] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRaw) String() string { +func (x *PatternFlowIpv4MoreFragments) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRaw) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragments) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[382] +func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[381] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50513,47 +50584,47 @@ func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRaw.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRaw) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{382} +// Deprecated: Use PatternFlowIpv4MoreFragments.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragments) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{381} } -func (x *PatternFlowIpv4PriorityRaw) GetChoice() PatternFlowIpv4PriorityRaw_Choice_Enum { +func (x *PatternFlowIpv4MoreFragments) GetChoice() PatternFlowIpv4MoreFragments_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4PriorityRaw_Choice_unspecified + return PatternFlowIpv4MoreFragments_Choice_unspecified } -func (x *PatternFlowIpv4PriorityRaw) GetValue() uint32 { +func (x *PatternFlowIpv4MoreFragments) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4PriorityRaw) GetValues() []uint32 { +func (x *PatternFlowIpv4MoreFragments) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetIncrement() *PatternFlowIpv4PriorityRawCounter { +func (x *PatternFlowIpv4MoreFragments) GetIncrement() *PatternFlowIpv4MoreFragmentsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetDecrement() *PatternFlowIpv4PriorityRawCounter { +func (x *PatternFlowIpv4MoreFragments) GetDecrement() *PatternFlowIpv4MoreFragmentsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityRawMetricTag { +func (x *PatternFlowIpv4MoreFragments) GetMetricTags() []*PatternFlowIpv4MoreFragmentsMetricTag { if x != nil { return x.MetricTags } @@ -50561,7 +50632,7 @@ func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityR } // integer counter pattern -type PatternFlowIpv4DscpPhbCounter struct { +type PatternFlowIpv4FragmentOffsetCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50577,23 +50648,23 @@ type PatternFlowIpv4DscpPhbCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DscpPhbCounter) Reset() { - *x = PatternFlowIpv4DscpPhbCounter{} +func (x *PatternFlowIpv4FragmentOffsetCounter) Reset() { + *x = PatternFlowIpv4FragmentOffsetCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[383] + mi := &file_otg_proto_msgTypes[382] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhbCounter) String() string { +func (x *PatternFlowIpv4FragmentOffsetCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhbCounter) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffsetCounter) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[383] +func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[382] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50604,26 +50675,26 @@ func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhbCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhbCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{383} +// Deprecated: Use PatternFlowIpv4FragmentOffsetCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffsetCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{382} } -func (x *PatternFlowIpv4DscpPhbCounter) GetStart() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4DscpPhbCounter) GetStep() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -50633,7 +50704,7 @@ func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4DscpPhbMetricTag struct { +type PatternFlowIpv4FragmentOffsetMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50647,27 +50718,27 @@ type PatternFlowIpv4DscpPhbMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 6 + // default = 5 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DscpPhbMetricTag) Reset() { - *x = PatternFlowIpv4DscpPhbMetricTag{} +func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { + *x = PatternFlowIpv4FragmentOffsetMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[384] + mi := &file_otg_proto_msgTypes[383] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhbMetricTag) String() string { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhbMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffsetMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[384] +func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[383] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50678,41 +50749,41 @@ func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhbMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhbMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{384} +// Deprecated: Use PatternFlowIpv4FragmentOffsetMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffsetMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{383} } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetName() string { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Per hop behavior -type PatternFlowIpv4DscpPhb struct { +// Fragment offset +type PatternFlowIpv4FragmentOffset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4DscpPhb_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpPhb_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4FragmentOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4FragmentOffset_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -50720,32 +50791,32 @@ type PatternFlowIpv4DscpPhb struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4DscpPhbMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4FragmentOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4DscpPhb) Reset() { - *x = PatternFlowIpv4DscpPhb{} +func (x *PatternFlowIpv4FragmentOffset) Reset() { + *x = PatternFlowIpv4FragmentOffset{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[385] + mi := &file_otg_proto_msgTypes[384] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhb) String() string { +func (x *PatternFlowIpv4FragmentOffset) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhb) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffset) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[385] +func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[384] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50756,47 +50827,47 @@ func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhb.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhb) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{385} +// Deprecated: Use PatternFlowIpv4FragmentOffset.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffset) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{384} } -func (x *PatternFlowIpv4DscpPhb) GetChoice() PatternFlowIpv4DscpPhb_Choice_Enum { +func (x *PatternFlowIpv4FragmentOffset) GetChoice() PatternFlowIpv4FragmentOffset_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4DscpPhb_Choice_unspecified + return PatternFlowIpv4FragmentOffset_Choice_unspecified } -func (x *PatternFlowIpv4DscpPhb) GetValue() uint32 { +func (x *PatternFlowIpv4FragmentOffset) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4DscpPhb) GetValues() []uint32 { +func (x *PatternFlowIpv4FragmentOffset) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4DscpPhb) GetIncrement() *PatternFlowIpv4DscpPhbCounter { +func (x *PatternFlowIpv4FragmentOffset) GetIncrement() *PatternFlowIpv4FragmentOffsetCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4DscpPhb) GetDecrement() *PatternFlowIpv4DscpPhbCounter { +func (x *PatternFlowIpv4FragmentOffset) GetDecrement() *PatternFlowIpv4FragmentOffsetCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetricTag { +func (x *PatternFlowIpv4FragmentOffset) GetMetricTags() []*PatternFlowIpv4FragmentOffsetMetricTag { if x != nil { return x.MetricTags } @@ -50804,13 +50875,13 @@ func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetric } // integer counter pattern -type PatternFlowIpv4DscpEcnCounter struct { +type PatternFlowIpv4TimeToLiveCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 64 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -50820,23 +50891,23 @@ type PatternFlowIpv4DscpEcnCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DscpEcnCounter) Reset() { - *x = PatternFlowIpv4DscpEcnCounter{} +func (x *PatternFlowIpv4TimeToLiveCounter) Reset() { + *x = PatternFlowIpv4TimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[386] + mi := &file_otg_proto_msgTypes[385] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcnCounter) String() string { +func (x *PatternFlowIpv4TimeToLiveCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcnCounter) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLiveCounter) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[386] +func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[385] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50847,26 +50918,26 @@ func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcnCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcnCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{386} +// Deprecated: Use PatternFlowIpv4TimeToLiveCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLiveCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{385} } -func (x *PatternFlowIpv4DscpEcnCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4DscpEcnCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -50876,7 +50947,7 @@ func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4DscpEcnMetricTag struct { +type PatternFlowIpv4TimeToLiveMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -50890,27 +50961,27 @@ type PatternFlowIpv4DscpEcnMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 2 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DscpEcnMetricTag) Reset() { - *x = PatternFlowIpv4DscpEcnMetricTag{} +func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { + *x = PatternFlowIpv4TimeToLiveMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[387] + mi := &file_otg_proto_msgTypes[386] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcnMetricTag) String() string { +func (x *PatternFlowIpv4TimeToLiveMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcnMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLiveMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[387] +func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[386] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50921,74 +50992,74 @@ func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcnMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcnMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{387} +// Deprecated: Use PatternFlowIpv4TimeToLiveMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLiveMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{386} } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetName() string { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification -type PatternFlowIpv4DscpEcn struct { +// Time to live +type PatternFlowIpv4TimeToLive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4DscpEcn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpEcn_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 64 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4DscpEcnMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4DscpEcn) Reset() { - *x = PatternFlowIpv4DscpEcn{} +func (x *PatternFlowIpv4TimeToLive) Reset() { + *x = PatternFlowIpv4TimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[388] + mi := &file_otg_proto_msgTypes[387] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcn) String() string { +func (x *PatternFlowIpv4TimeToLive) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcn) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLive) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[388] +func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[387] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50999,47 +51070,47 @@ func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcn.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcn) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{388} +// Deprecated: Use PatternFlowIpv4TimeToLive.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLive) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{387} } -func (x *PatternFlowIpv4DscpEcn) GetChoice() PatternFlowIpv4DscpEcn_Choice_Enum { +func (x *PatternFlowIpv4TimeToLive) GetChoice() PatternFlowIpv4TimeToLive_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4DscpEcn_Choice_unspecified + return PatternFlowIpv4TimeToLive_Choice_unspecified } -func (x *PatternFlowIpv4DscpEcn) GetValue() uint32 { +func (x *PatternFlowIpv4TimeToLive) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4DscpEcn) GetValues() []uint32 { +func (x *PatternFlowIpv4TimeToLive) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4DscpEcn) GetIncrement() *PatternFlowIpv4DscpEcnCounter { +func (x *PatternFlowIpv4TimeToLive) GetIncrement() *PatternFlowIpv4TimeToLiveCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4DscpEcn) GetDecrement() *PatternFlowIpv4DscpEcnCounter { +func (x *PatternFlowIpv4TimeToLive) GetDecrement() *PatternFlowIpv4TimeToLiveCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetricTag { +func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLiveMetricTag { if x != nil { return x.MetricTags } @@ -51047,13 +51118,13 @@ func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetric } // integer counter pattern -type PatternFlowIpv4TosPrecedenceCounter struct { +type PatternFlowIpv4ProtocolCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 61 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -51063,23 +51134,23 @@ type PatternFlowIpv4TosPrecedenceCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosPrecedenceCounter) Reset() { - *x = PatternFlowIpv4TosPrecedenceCounter{} +func (x *PatternFlowIpv4ProtocolCounter) Reset() { + *x = PatternFlowIpv4ProtocolCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[389] + mi := &file_otg_proto_msgTypes[388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedenceCounter) String() string { +func (x *PatternFlowIpv4ProtocolCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedenceCounter) ProtoMessage() {} +func (*PatternFlowIpv4ProtocolCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[389] +func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[388] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51090,26 +51161,26 @@ func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedenceCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedenceCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{389} +// Deprecated: Use PatternFlowIpv4ProtocolCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ProtocolCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{388} } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetStart() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetStep() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -51119,7 +51190,7 @@ func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosPrecedenceMetricTag struct { +type PatternFlowIpv4ProtocolMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51133,27 +51204,27 @@ type PatternFlowIpv4TosPrecedenceMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) Reset() { - *x = PatternFlowIpv4TosPrecedenceMetricTag{} +func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { + *x = PatternFlowIpv4ProtocolMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[390] + mi := &file_otg_proto_msgTypes[389] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) String() string { +func (x *PatternFlowIpv4ProtocolMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedenceMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4ProtocolMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[390] +func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[389] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51164,74 +51235,79 @@ func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedenceMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedenceMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{390} +// Deprecated: Use PatternFlowIpv4ProtocolMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ProtocolMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{389} } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetName() string { +func (x *PatternFlowIpv4ProtocolMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4ProtocolMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4ProtocolMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Precedence -type PatternFlowIpv4TosPrecedence struct { +// Protocol, default is 61 any host internal protocol +type PatternFlowIpv4Protocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4TosPrecedence_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosPrecedence_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4Protocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Protocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 61 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [61] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 61 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosPrecedenceMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4ProtocolMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosPrecedence) Reset() { - *x = PatternFlowIpv4TosPrecedence{} +func (x *PatternFlowIpv4Protocol) Reset() { + *x = PatternFlowIpv4Protocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[391] + mi := &file_otg_proto_msgTypes[390] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedence) String() string { +func (x *PatternFlowIpv4Protocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedence) ProtoMessage() {} +func (*PatternFlowIpv4Protocol) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[391] +func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[390] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51242,72 +51318,148 @@ func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedence.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedence) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{391} +// Deprecated: Use PatternFlowIpv4Protocol.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Protocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{390} } -func (x *PatternFlowIpv4TosPrecedence) GetChoice() PatternFlowIpv4TosPrecedence_Choice_Enum { +func (x *PatternFlowIpv4Protocol) GetChoice() PatternFlowIpv4Protocol_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosPrecedence_Choice_unspecified + return PatternFlowIpv4Protocol_Choice_unspecified } -func (x *PatternFlowIpv4TosPrecedence) GetValue() uint32 { +func (x *PatternFlowIpv4Protocol) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosPrecedence) GetValues() []uint32 { +func (x *PatternFlowIpv4Protocol) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetIncrement() *PatternFlowIpv4TosPrecedenceCounter { +func (x *PatternFlowIpv4Protocol) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4Protocol) GetIncrement() *PatternFlowIpv4ProtocolCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetDecrement() *PatternFlowIpv4TosPrecedenceCounter { +func (x *PatternFlowIpv4Protocol) GetDecrement() *PatternFlowIpv4ProtocolCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetMetricTags() []*PatternFlowIpv4TosPrecedenceMetricTag { +func (x *PatternFlowIpv4Protocol) GetMetricTags() []*PatternFlowIpv4ProtocolMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIpv4TosDelayCounter struct { +// Header checksum +type PatternFlowIpv4HeaderChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIpv4HeaderChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIpv4HeaderChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowIpv4HeaderChecksum) Reset() { + *x = PatternFlowIpv4HeaderChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[391] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIpv4HeaderChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIpv4HeaderChecksum) ProtoMessage() {} + +func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[391] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIpv4HeaderChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{391} +} + +func (x *PatternFlowIpv4HeaderChecksum) GetChoice() PatternFlowIpv4HeaderChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowIpv4HeaderChecksum_Choice_unspecified +} + +func (x *PatternFlowIpv4HeaderChecksum) GetGenerated() PatternFlowIpv4HeaderChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIpv4HeaderChecksum_Generated_unspecified +} + +func (x *PatternFlowIpv4HeaderChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + +// ipv4 counter pattern +type PatternFlowIpv4SrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosDelayCounter) Reset() { - *x = PatternFlowIpv4TosDelayCounter{} +func (x *PatternFlowIpv4SrcCounter) Reset() { + *x = PatternFlowIpv4SrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[392] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51315,13 +51467,13 @@ func (x *PatternFlowIpv4TosDelayCounter) Reset() { } } -func (x *PatternFlowIpv4TosDelayCounter) String() string { +func (x *PatternFlowIpv4SrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelayCounter) ProtoMessage() {} +func (*PatternFlowIpv4SrcCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[392] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51333,26 +51485,26 @@ func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelayCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelayCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4SrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4SrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{392} } -func (x *PatternFlowIpv4TosDelayCounter) GetStart() uint32 { +func (x *PatternFlowIpv4SrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIpv4TosDelayCounter) GetStep() uint32 { +func (x *PatternFlowIpv4SrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { +func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -51362,7 +51514,7 @@ func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosDelayMetricTag struct { +type PatternFlowIpv4SrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51376,12 +51528,12 @@ type PatternFlowIpv4TosDelayMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { - *x = PatternFlowIpv4TosDelayMetricTag{} +func (x *PatternFlowIpv4SrcMetricTag) Reset() { + *x = PatternFlowIpv4SrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[393] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51389,13 +51541,13 @@ func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosDelayMetricTag) String() string { +func (x *PatternFlowIpv4SrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelayMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4SrcMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[393] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51407,59 +51559,59 @@ func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelayMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelayMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4SrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4SrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{393} } -func (x *PatternFlowIpv4TosDelayMetricTag) GetName() string { +func (x *PatternFlowIpv4SrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosDelayMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4SrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosDelayMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4SrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Delay -type PatternFlowIpv4TosDelay struct { +// Source address +type PatternFlowIpv4Src struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosDelay_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Src_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosDelayMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosDelay) Reset() { - *x = PatternFlowIpv4TosDelay{} +func (x *PatternFlowIpv4Src) Reset() { + *x = PatternFlowIpv4Src{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[394] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51467,13 +51619,13 @@ func (x *PatternFlowIpv4TosDelay) Reset() { } } -func (x *PatternFlowIpv4TosDelay) String() string { +func (x *PatternFlowIpv4Src) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelay) ProtoMessage() {} +func (*PatternFlowIpv4Src) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[394] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51485,72 +51637,72 @@ func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelay.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelay) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4Src.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Src) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{394} } -func (x *PatternFlowIpv4TosDelay) GetChoice() PatternFlowIpv4TosDelay_Choice_Enum { +func (x *PatternFlowIpv4Src) GetChoice() PatternFlowIpv4Src_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosDelay_Choice_unspecified + return PatternFlowIpv4Src_Choice_unspecified } -func (x *PatternFlowIpv4TosDelay) GetValue() uint32 { +func (x *PatternFlowIpv4Src) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIpv4TosDelay) GetValues() []uint32 { +func (x *PatternFlowIpv4Src) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosDelay) GetIncrement() *PatternFlowIpv4TosDelayCounter { +func (x *PatternFlowIpv4Src) GetIncrement() *PatternFlowIpv4SrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosDelay) GetDecrement() *PatternFlowIpv4TosDelayCounter { +func (x *PatternFlowIpv4Src) GetDecrement() *PatternFlowIpv4SrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosDelay) GetMetricTags() []*PatternFlowIpv4TosDelayMetricTag { +func (x *PatternFlowIpv4Src) GetMetricTags() []*PatternFlowIpv4SrcMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIpv4TosThroughputCounter struct { +// ipv4 counter pattern +type PatternFlowIpv4DstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosThroughputCounter) Reset() { - *x = PatternFlowIpv4TosThroughputCounter{} +func (x *PatternFlowIpv4DstCounter) Reset() { + *x = PatternFlowIpv4DstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[395] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51558,13 +51710,13 @@ func (x *PatternFlowIpv4TosThroughputCounter) Reset() { } } -func (x *PatternFlowIpv4TosThroughputCounter) String() string { +func (x *PatternFlowIpv4DstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughputCounter) ProtoMessage() {} +func (*PatternFlowIpv4DstCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[395] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51576,26 +51728,26 @@ func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughputCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughputCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{395} } -func (x *PatternFlowIpv4TosThroughputCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIpv4TosThroughputCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -51605,7 +51757,7 @@ func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosThroughputMetricTag struct { +type PatternFlowIpv4DstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51619,12 +51771,12 @@ type PatternFlowIpv4TosThroughputMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { - *x = PatternFlowIpv4TosThroughputMetricTag{} +func (x *PatternFlowIpv4DstMetricTag) Reset() { + *x = PatternFlowIpv4DstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[396] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51632,13 +51784,13 @@ func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosThroughputMetricTag) String() string { +func (x *PatternFlowIpv4DstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughputMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DstMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[396] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51650,59 +51802,59 @@ func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughputMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughputMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{396} } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetName() string { +func (x *PatternFlowIpv4DstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Throughput -type PatternFlowIpv4TosThroughput struct { +// Destination address +type PatternFlowIpv4Dst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosThroughput_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosThroughput_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Dst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosThroughputMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosThroughput) Reset() { - *x = PatternFlowIpv4TosThroughput{} +func (x *PatternFlowIpv4Dst) Reset() { + *x = PatternFlowIpv4Dst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[397] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51710,13 +51862,13 @@ func (x *PatternFlowIpv4TosThroughput) Reset() { } } -func (x *PatternFlowIpv4TosThroughput) String() string { +func (x *PatternFlowIpv4Dst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughput) ProtoMessage() {} +func (*PatternFlowIpv4Dst) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[397] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51728,47 +51880,47 @@ func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughput.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughput) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4Dst.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Dst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{397} } -func (x *PatternFlowIpv4TosThroughput) GetChoice() PatternFlowIpv4TosThroughput_Choice_Enum { +func (x *PatternFlowIpv4Dst) GetChoice() PatternFlowIpv4Dst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosThroughput_Choice_unspecified + return PatternFlowIpv4Dst_Choice_unspecified } -func (x *PatternFlowIpv4TosThroughput) GetValue() uint32 { +func (x *PatternFlowIpv4Dst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIpv4TosThroughput) GetValues() []uint32 { +func (x *PatternFlowIpv4Dst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosThroughput) GetIncrement() *PatternFlowIpv4TosThroughputCounter { +func (x *PatternFlowIpv4Dst) GetIncrement() *PatternFlowIpv4DstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosThroughput) GetDecrement() *PatternFlowIpv4TosThroughputCounter { +func (x *PatternFlowIpv4Dst) GetDecrement() *PatternFlowIpv4DstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThroughputMetricTag { +func (x *PatternFlowIpv4Dst) GetMetricTags() []*PatternFlowIpv4DstMetricTag { if x != nil { return x.MetricTags } @@ -51776,7 +51928,7 @@ func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThro } // integer counter pattern -type PatternFlowIpv4TosReliabilityCounter struct { +type PatternFlowIpv4PriorityRawCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51792,8 +51944,8 @@ type PatternFlowIpv4TosReliabilityCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { - *x = PatternFlowIpv4TosReliabilityCounter{} +func (x *PatternFlowIpv4PriorityRawCounter) Reset() { + *x = PatternFlowIpv4PriorityRawCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[398] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51801,13 +51953,13 @@ func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { } } -func (x *PatternFlowIpv4TosReliabilityCounter) String() string { +func (x *PatternFlowIpv4PriorityRawCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliabilityCounter) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRawCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[398] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51819,26 +51971,26 @@ func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliabilityCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliabilityCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4PriorityRawCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRawCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{398} } -func (x *PatternFlowIpv4TosReliabilityCounter) GetStart() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosReliabilityCounter) GetStep() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -51848,7 +52000,7 @@ func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosReliabilityMetricTag struct { +type PatternFlowIpv4PriorityRawMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -51862,12 +52014,12 @@ type PatternFlowIpv4TosReliabilityMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { - *x = PatternFlowIpv4TosReliabilityMetricTag{} +func (x *PatternFlowIpv4PriorityRawMetricTag) Reset() { + *x = PatternFlowIpv4PriorityRawMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[399] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51875,13 +52027,13 @@ func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosReliabilityMetricTag) String() string { +func (x *PatternFlowIpv4PriorityRawMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliabilityMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRawMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[399] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51893,41 +52045,41 @@ func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliabilityMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliabilityMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4PriorityRawMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRawMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{399} } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetName() string { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reliability -type PatternFlowIpv4TosReliability struct { +// Raw priority +type PatternFlowIpv4PriorityRaw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosReliability_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosReliability_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4PriorityRaw_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4PriorityRaw_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -51935,17 +52087,17 @@ type PatternFlowIpv4TosReliability struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosReliabilityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4PriorityRawMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosReliability) Reset() { - *x = PatternFlowIpv4TosReliability{} +func (x *PatternFlowIpv4PriorityRaw) Reset() { + *x = PatternFlowIpv4PriorityRaw{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[400] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51953,13 +52105,13 @@ func (x *PatternFlowIpv4TosReliability) Reset() { } } -func (x *PatternFlowIpv4TosReliability) String() string { +func (x *PatternFlowIpv4PriorityRaw) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliability) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRaw) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[400] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51971,47 +52123,47 @@ func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliability.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliability) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4PriorityRaw.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRaw) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{400} } -func (x *PatternFlowIpv4TosReliability) GetChoice() PatternFlowIpv4TosReliability_Choice_Enum { +func (x *PatternFlowIpv4PriorityRaw) GetChoice() PatternFlowIpv4PriorityRaw_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosReliability_Choice_unspecified + return PatternFlowIpv4PriorityRaw_Choice_unspecified } -func (x *PatternFlowIpv4TosReliability) GetValue() uint32 { +func (x *PatternFlowIpv4PriorityRaw) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosReliability) GetValues() []uint32 { +func (x *PatternFlowIpv4PriorityRaw) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosReliability) GetIncrement() *PatternFlowIpv4TosReliabilityCounter { +func (x *PatternFlowIpv4PriorityRaw) GetIncrement() *PatternFlowIpv4PriorityRawCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosReliability) GetDecrement() *PatternFlowIpv4TosReliabilityCounter { +func (x *PatternFlowIpv4PriorityRaw) GetDecrement() *PatternFlowIpv4PriorityRawCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosReliabilityMetricTag { +func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityRawMetricTag { if x != nil { return x.MetricTags } @@ -52019,7 +52171,7 @@ func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosRel } // integer counter pattern -type PatternFlowIpv4TosMonetaryCounter struct { +type PatternFlowIpv4DscpPhbCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52035,8 +52187,8 @@ type PatternFlowIpv4TosMonetaryCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { - *x = PatternFlowIpv4TosMonetaryCounter{} +func (x *PatternFlowIpv4DscpPhbCounter) Reset() { + *x = PatternFlowIpv4DscpPhbCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[401] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52044,13 +52196,13 @@ func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { } } -func (x *PatternFlowIpv4TosMonetaryCounter) String() string { +func (x *PatternFlowIpv4DscpPhbCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetaryCounter) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhbCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[401] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52062,26 +52214,26 @@ func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetaryCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetaryCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpPhbCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhbCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{401} } -func (x *PatternFlowIpv4TosMonetaryCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosMonetaryCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -52091,7 +52243,7 @@ func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosMonetaryMetricTag struct { +type PatternFlowIpv4DscpPhbMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52105,12 +52257,12 @@ type PatternFlowIpv4TosMonetaryMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 6 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { - *x = PatternFlowIpv4TosMonetaryMetricTag{} +func (x *PatternFlowIpv4DscpPhbMetricTag) Reset() { + *x = PatternFlowIpv4DscpPhbMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[402] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52118,13 +52270,13 @@ func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosMonetaryMetricTag) String() string { +func (x *PatternFlowIpv4DscpPhbMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetaryMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhbMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[402] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52136,41 +52288,41 @@ func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetaryMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetaryMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpPhbMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhbMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{402} } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetName() string { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Monetary -type PatternFlowIpv4TosMonetary struct { +// Per hop behavior +type PatternFlowIpv4DscpPhb struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosMonetary_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosMonetary_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DscpPhb_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpPhb_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -52178,17 +52330,17 @@ type PatternFlowIpv4TosMonetary struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosMonetaryMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DscpPhbMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosMonetary) Reset() { - *x = PatternFlowIpv4TosMonetary{} +func (x *PatternFlowIpv4DscpPhb) Reset() { + *x = PatternFlowIpv4DscpPhb{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[403] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52196,13 +52348,13 @@ func (x *PatternFlowIpv4TosMonetary) Reset() { } } -func (x *PatternFlowIpv4TosMonetary) String() string { +func (x *PatternFlowIpv4DscpPhb) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetary) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhb) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[403] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52214,47 +52366,47 @@ func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetary.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetary) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpPhb.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhb) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{403} } -func (x *PatternFlowIpv4TosMonetary) GetChoice() PatternFlowIpv4TosMonetary_Choice_Enum { +func (x *PatternFlowIpv4DscpPhb) GetChoice() PatternFlowIpv4DscpPhb_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosMonetary_Choice_unspecified + return PatternFlowIpv4DscpPhb_Choice_unspecified } -func (x *PatternFlowIpv4TosMonetary) GetValue() uint32 { +func (x *PatternFlowIpv4DscpPhb) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosMonetary) GetValues() []uint32 { +func (x *PatternFlowIpv4DscpPhb) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosMonetary) GetIncrement() *PatternFlowIpv4TosMonetaryCounter { +func (x *PatternFlowIpv4DscpPhb) GetIncrement() *PatternFlowIpv4DscpPhbCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosMonetary) GetDecrement() *PatternFlowIpv4TosMonetaryCounter { +func (x *PatternFlowIpv4DscpPhb) GetDecrement() *PatternFlowIpv4DscpPhbCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMonetaryMetricTag { +func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetricTag { if x != nil { return x.MetricTags } @@ -52262,7 +52414,7 @@ func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMoneta } // integer counter pattern -type PatternFlowIpv4TosUnusedCounter struct { +type PatternFlowIpv4DscpEcnCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52278,8 +52430,8 @@ type PatternFlowIpv4TosUnusedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosUnusedCounter) Reset() { - *x = PatternFlowIpv4TosUnusedCounter{} +func (x *PatternFlowIpv4DscpEcnCounter) Reset() { + *x = PatternFlowIpv4DscpEcnCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[404] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52287,13 +52439,13 @@ func (x *PatternFlowIpv4TosUnusedCounter) Reset() { } } -func (x *PatternFlowIpv4TosUnusedCounter) String() string { +func (x *PatternFlowIpv4DscpEcnCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnusedCounter) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcnCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[404] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52305,26 +52457,26 @@ func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnusedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnusedCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpEcnCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcnCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{404} } -func (x *PatternFlowIpv4TosUnusedCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosUnusedCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -52334,7 +52486,7 @@ func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv4TosUnusedMetricTag struct { +type PatternFlowIpv4DscpEcnMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52348,12 +52500,12 @@ type PatternFlowIpv4TosUnusedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 2 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { - *x = PatternFlowIpv4TosUnusedMetricTag{} +func (x *PatternFlowIpv4DscpEcnMetricTag) Reset() { + *x = PatternFlowIpv4DscpEcnMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[405] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52361,13 +52513,13 @@ func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { } } -func (x *PatternFlowIpv4TosUnusedMetricTag) String() string { +func (x *PatternFlowIpv4DscpEcnMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnusedMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcnMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[405] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52379,41 +52531,41 @@ func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnusedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnusedMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpEcnMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcnMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{405} } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetName() string { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Unused -type PatternFlowIpv4TosUnused struct { +// Explicit congestion notification +type PatternFlowIpv4DscpEcn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosUnused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosUnused_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DscpEcn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpEcn_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -52421,17 +52573,17 @@ type PatternFlowIpv4TosUnused struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv4TosUnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DscpEcnMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosUnused) Reset() { - *x = PatternFlowIpv4TosUnused{} +func (x *PatternFlowIpv4DscpEcn) Reset() { + *x = PatternFlowIpv4DscpEcn{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[406] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52439,13 +52591,13 @@ func (x *PatternFlowIpv4TosUnused) Reset() { } } -func (x *PatternFlowIpv4TosUnused) String() string { +func (x *PatternFlowIpv4DscpEcn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnused) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcn) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[406] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52457,47 +52609,47 @@ func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnused.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnused) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4DscpEcn.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcn) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{406} } -func (x *PatternFlowIpv4TosUnused) GetChoice() PatternFlowIpv4TosUnused_Choice_Enum { +func (x *PatternFlowIpv4DscpEcn) GetChoice() PatternFlowIpv4DscpEcn_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosUnused_Choice_unspecified + return PatternFlowIpv4DscpEcn_Choice_unspecified } -func (x *PatternFlowIpv4TosUnused) GetValue() uint32 { +func (x *PatternFlowIpv4DscpEcn) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosUnused) GetValues() []uint32 { +func (x *PatternFlowIpv4DscpEcn) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosUnused) GetIncrement() *PatternFlowIpv4TosUnusedCounter { +func (x *PatternFlowIpv4DscpEcn) GetIncrement() *PatternFlowIpv4DscpEcnCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosUnused) GetDecrement() *PatternFlowIpv4TosUnusedCounter { +func (x *PatternFlowIpv4DscpEcn) GetDecrement() *PatternFlowIpv4DscpEcnCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMetricTag { +func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetricTag { if x != nil { return x.MetricTags } @@ -52505,13 +52657,13 @@ func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMe } // integer counter pattern -type PatternFlowIpv6VersionCounter struct { +type PatternFlowIpv4TosPrecedenceCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 6 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -52521,8 +52673,8 @@ type PatternFlowIpv6VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6VersionCounter) Reset() { - *x = PatternFlowIpv6VersionCounter{} +func (x *PatternFlowIpv4TosPrecedenceCounter) Reset() { + *x = PatternFlowIpv4TosPrecedenceCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[407] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52530,13 +52682,13 @@ func (x *PatternFlowIpv6VersionCounter) Reset() { } } -func (x *PatternFlowIpv6VersionCounter) String() string { +func (x *PatternFlowIpv4TosPrecedenceCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6VersionCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedenceCounter) ProtoMessage() {} -func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[407] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52548,26 +52700,26 @@ func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6VersionCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosPrecedenceCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedenceCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{407} } -func (x *PatternFlowIpv6VersionCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6VersionCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -52577,7 +52729,7 @@ func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6VersionMetricTag struct { +type PatternFlowIpv4TosPrecedenceMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52591,12 +52743,12 @@ type PatternFlowIpv6VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6VersionMetricTag) Reset() { - *x = PatternFlowIpv6VersionMetricTag{} +func (x *PatternFlowIpv4TosPrecedenceMetricTag) Reset() { + *x = PatternFlowIpv4TosPrecedenceMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[408] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52604,13 +52756,13 @@ func (x *PatternFlowIpv6VersionMetricTag) Reset() { } } -func (x *PatternFlowIpv6VersionMetricTag) String() string { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6VersionMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedenceMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[408] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52622,59 +52774,59 @@ func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6VersionMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosPrecedenceMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedenceMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{408} } -func (x *PatternFlowIpv6VersionMetricTag) GetName() string { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowIpv6Version struct { +// Precedence +type PatternFlowIpv4TosPrecedence struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosPrecedence_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosPrecedence_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 6 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [6] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosPrecedenceMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6Version) Reset() { - *x = PatternFlowIpv6Version{} +func (x *PatternFlowIpv4TosPrecedence) Reset() { + *x = PatternFlowIpv4TosPrecedence{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[409] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52682,13 +52834,13 @@ func (x *PatternFlowIpv6Version) Reset() { } } -func (x *PatternFlowIpv6Version) String() string { +func (x *PatternFlowIpv4TosPrecedence) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Version) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedence) ProtoMessage() {} -func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[409] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52700,47 +52852,47 @@ func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Version) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosPrecedence.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedence) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{409} } -func (x *PatternFlowIpv6Version) GetChoice() PatternFlowIpv6Version_Choice_Enum { +func (x *PatternFlowIpv4TosPrecedence) GetChoice() PatternFlowIpv4TosPrecedence_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Version_Choice_unspecified + return PatternFlowIpv4TosPrecedence_Choice_unspecified } -func (x *PatternFlowIpv6Version) GetValue() uint32 { +func (x *PatternFlowIpv4TosPrecedence) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6Version) GetValues() []uint32 { +func (x *PatternFlowIpv4TosPrecedence) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Version) GetIncrement() *PatternFlowIpv6VersionCounter { +func (x *PatternFlowIpv4TosPrecedence) GetIncrement() *PatternFlowIpv4TosPrecedenceCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Version) GetDecrement() *PatternFlowIpv6VersionCounter { +func (x *PatternFlowIpv4TosPrecedence) GetDecrement() *PatternFlowIpv4TosPrecedenceCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetricTag { +func (x *PatternFlowIpv4TosPrecedence) GetMetricTags() []*PatternFlowIpv4TosPrecedenceMetricTag { if x != nil { return x.MetricTags } @@ -52748,7 +52900,7 @@ func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetric } // integer counter pattern -type PatternFlowIpv6TrafficClassCounter struct { +type PatternFlowIpv4TosDelayCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52764,8 +52916,8 @@ type PatternFlowIpv6TrafficClassCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6TrafficClassCounter) Reset() { - *x = PatternFlowIpv6TrafficClassCounter{} +func (x *PatternFlowIpv4TosDelayCounter) Reset() { + *x = PatternFlowIpv4TosDelayCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[410] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52773,13 +52925,13 @@ func (x *PatternFlowIpv6TrafficClassCounter) Reset() { } } -func (x *PatternFlowIpv6TrafficClassCounter) String() string { +func (x *PatternFlowIpv4TosDelayCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClassCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosDelayCounter) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[410] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52791,26 +52943,26 @@ func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClassCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClassCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosDelayCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelayCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{410} } -func (x *PatternFlowIpv6TrafficClassCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6TrafficClassCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -52820,7 +52972,7 @@ func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6TrafficClassMetricTag struct { +type PatternFlowIpv4TosDelayMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -52834,12 +52986,12 @@ type PatternFlowIpv6TrafficClassMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { - *x = PatternFlowIpv6TrafficClassMetricTag{} +func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { + *x = PatternFlowIpv4TosDelayMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[411] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52847,13 +52999,13 @@ func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { } } -func (x *PatternFlowIpv6TrafficClassMetricTag) String() string { +func (x *PatternFlowIpv4TosDelayMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClassMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosDelayMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[411] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52865,41 +53017,41 @@ func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClassMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClassMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosDelayMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelayMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{411} } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetName() string { +func (x *PatternFlowIpv4TosDelayMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosDelayMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosDelayMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Traffic class -type PatternFlowIpv6TrafficClass struct { +// Delay +type PatternFlowIpv4TosDelay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6TrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6TrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosDelay_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -52907,17 +53059,17 @@ type PatternFlowIpv6TrafficClass struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6TrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosDelayMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6TrafficClass) Reset() { - *x = PatternFlowIpv6TrafficClass{} +func (x *PatternFlowIpv4TosDelay) Reset() { + *x = PatternFlowIpv4TosDelay{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[412] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52925,13 +53077,13 @@ func (x *PatternFlowIpv6TrafficClass) Reset() { } } -func (x *PatternFlowIpv6TrafficClass) String() string { +func (x *PatternFlowIpv4TosDelay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClass) ProtoMessage() {} +func (*PatternFlowIpv4TosDelay) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[412] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52943,47 +53095,47 @@ func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClass.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClass) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosDelay.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelay) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{412} } -func (x *PatternFlowIpv6TrafficClass) GetChoice() PatternFlowIpv6TrafficClass_Choice_Enum { +func (x *PatternFlowIpv4TosDelay) GetChoice() PatternFlowIpv4TosDelay_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6TrafficClass_Choice_unspecified + return PatternFlowIpv4TosDelay_Choice_unspecified } -func (x *PatternFlowIpv6TrafficClass) GetValue() uint32 { +func (x *PatternFlowIpv4TosDelay) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6TrafficClass) GetValues() []uint32 { +func (x *PatternFlowIpv4TosDelay) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6TrafficClass) GetIncrement() *PatternFlowIpv6TrafficClassCounter { +func (x *PatternFlowIpv4TosDelay) GetIncrement() *PatternFlowIpv4TosDelayCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6TrafficClass) GetDecrement() *PatternFlowIpv6TrafficClassCounter { +func (x *PatternFlowIpv4TosDelay) GetDecrement() *PatternFlowIpv4TosDelayCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficClassMetricTag { +func (x *PatternFlowIpv4TosDelay) GetMetricTags() []*PatternFlowIpv4TosDelayMetricTag { if x != nil { return x.MetricTags } @@ -52991,7 +53143,7 @@ func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficC } // integer counter pattern -type PatternFlowIpv6FlowLabelCounter struct { +type PatternFlowIpv4TosThroughputCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53007,8 +53159,8 @@ type PatternFlowIpv6FlowLabelCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6FlowLabelCounter) Reset() { - *x = PatternFlowIpv6FlowLabelCounter{} +func (x *PatternFlowIpv4TosThroughputCounter) Reset() { + *x = PatternFlowIpv4TosThroughputCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[413] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53016,13 +53168,13 @@ func (x *PatternFlowIpv6FlowLabelCounter) Reset() { } } -func (x *PatternFlowIpv6FlowLabelCounter) String() string { +func (x *PatternFlowIpv4TosThroughputCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabelCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughputCounter) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[413] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53034,26 +53186,26 @@ func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabelCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabelCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosThroughputCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughputCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{413} } -func (x *PatternFlowIpv6FlowLabelCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6FlowLabelCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -53063,7 +53215,7 @@ func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6FlowLabelMetricTag struct { +type PatternFlowIpv4TosThroughputMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53077,12 +53229,12 @@ type PatternFlowIpv6FlowLabelMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 20 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { - *x = PatternFlowIpv6FlowLabelMetricTag{} +func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { + *x = PatternFlowIpv4TosThroughputMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[414] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53090,13 +53242,13 @@ func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { } } -func (x *PatternFlowIpv6FlowLabelMetricTag) String() string { +func (x *PatternFlowIpv4TosThroughputMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabelMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughputMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[414] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53108,41 +53260,41 @@ func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabelMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabelMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosThroughputMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughputMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{414} } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetName() string { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Flow label -type PatternFlowIpv6FlowLabel struct { +// Throughput +type PatternFlowIpv4TosThroughput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6FlowLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6FlowLabel_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosThroughput_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosThroughput_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -53150,17 +53302,17 @@ type PatternFlowIpv6FlowLabel struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6FlowLabelMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosThroughputMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6FlowLabel) Reset() { - *x = PatternFlowIpv6FlowLabel{} +func (x *PatternFlowIpv4TosThroughput) Reset() { + *x = PatternFlowIpv4TosThroughput{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[415] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53168,13 +53320,13 @@ func (x *PatternFlowIpv6FlowLabel) Reset() { } } -func (x *PatternFlowIpv6FlowLabel) String() string { +func (x *PatternFlowIpv4TosThroughput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabel) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughput) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[415] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53186,47 +53338,47 @@ func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabel.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabel) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosThroughput.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughput) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{415} } -func (x *PatternFlowIpv6FlowLabel) GetChoice() PatternFlowIpv6FlowLabel_Choice_Enum { +func (x *PatternFlowIpv4TosThroughput) GetChoice() PatternFlowIpv4TosThroughput_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6FlowLabel_Choice_unspecified + return PatternFlowIpv4TosThroughput_Choice_unspecified } -func (x *PatternFlowIpv6FlowLabel) GetValue() uint32 { +func (x *PatternFlowIpv4TosThroughput) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6FlowLabel) GetValues() []uint32 { +func (x *PatternFlowIpv4TosThroughput) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6FlowLabel) GetIncrement() *PatternFlowIpv6FlowLabelCounter { +func (x *PatternFlowIpv4TosThroughput) GetIncrement() *PatternFlowIpv4TosThroughputCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6FlowLabel) GetDecrement() *PatternFlowIpv6FlowLabelCounter { +func (x *PatternFlowIpv4TosThroughput) GetDecrement() *PatternFlowIpv4TosThroughputCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6FlowLabel) GetMetricTags() []*PatternFlowIpv6FlowLabelMetricTag { +func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThroughputMetricTag { if x != nil { return x.MetricTags } @@ -53234,7 +53386,7 @@ func (x *PatternFlowIpv6FlowLabel) GetMetricTags() []*PatternFlowIpv6FlowLabelMe } // integer counter pattern -type PatternFlowIpv6PayloadLengthCounter struct { +type PatternFlowIpv4TosReliabilityCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53250,8 +53402,8 @@ type PatternFlowIpv6PayloadLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { - *x = PatternFlowIpv6PayloadLengthCounter{} +func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { + *x = PatternFlowIpv4TosReliabilityCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[416] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53259,13 +53411,13 @@ func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { } } -func (x *PatternFlowIpv6PayloadLengthCounter) String() string { +func (x *PatternFlowIpv4TosReliabilityCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLengthCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosReliabilityCounter) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[416] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53277,26 +53429,26 @@ func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosReliabilityCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliabilityCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{416} } -func (x *PatternFlowIpv6PayloadLengthCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6PayloadLengthCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -53306,7 +53458,7 @@ func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6PayloadLengthMetricTag struct { +type PatternFlowIpv4TosReliabilityMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53320,12 +53472,12 @@ type PatternFlowIpv6PayloadLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { - *x = PatternFlowIpv6PayloadLengthMetricTag{} +func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { + *x = PatternFlowIpv4TosReliabilityMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[417] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53333,13 +53485,13 @@ func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { } } -func (x *PatternFlowIpv6PayloadLengthMetricTag) String() string { +func (x *PatternFlowIpv4TosReliabilityMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLengthMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosReliabilityMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[417] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53351,64 +53503,59 @@ func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosReliabilityMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliabilityMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{417} } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetName() string { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Payload length -type PatternFlowIpv6PayloadLength struct { +// Reliability +type PatternFlowIpv4TosReliability struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv6PayloadLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6PayloadLength_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIpv4TosReliability_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosReliability_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 0 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6PayloadLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosReliabilityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6PayloadLength) Reset() { - *x = PatternFlowIpv6PayloadLength{} +func (x *PatternFlowIpv4TosReliability) Reset() { + *x = PatternFlowIpv4TosReliability{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[418] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53416,13 +53563,13 @@ func (x *PatternFlowIpv6PayloadLength) Reset() { } } -func (x *PatternFlowIpv6PayloadLength) String() string { +func (x *PatternFlowIpv4TosReliability) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLength) ProtoMessage() {} +func (*PatternFlowIpv4TosReliability) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[418] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53434,54 +53581,47 @@ func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosReliability.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliability) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{418} } -func (x *PatternFlowIpv6PayloadLength) GetChoice() PatternFlowIpv6PayloadLength_Choice_Enum { +func (x *PatternFlowIpv4TosReliability) GetChoice() PatternFlowIpv4TosReliability_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6PayloadLength_Choice_unspecified + return PatternFlowIpv4TosReliability_Choice_unspecified } -func (x *PatternFlowIpv6PayloadLength) GetValue() uint32 { +func (x *PatternFlowIpv4TosReliability) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6PayloadLength) GetValues() []uint32 { +func (x *PatternFlowIpv4TosReliability) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6PayloadLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv6PayloadLength) GetIncrement() *PatternFlowIpv6PayloadLengthCounter { +func (x *PatternFlowIpv4TosReliability) GetIncrement() *PatternFlowIpv4TosReliabilityCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6PayloadLength) GetDecrement() *PatternFlowIpv6PayloadLengthCounter { +func (x *PatternFlowIpv4TosReliability) GetDecrement() *PatternFlowIpv4TosReliabilityCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6PayloadLengthMetricTag { +func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosReliabilityMetricTag { if x != nil { return x.MetricTags } @@ -53489,13 +53629,13 @@ func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6Payload } // integer counter pattern -type PatternFlowIpv6NextHeaderCounter struct { +type PatternFlowIpv4TosMonetaryCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 59 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -53505,8 +53645,8 @@ type PatternFlowIpv6NextHeaderCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6NextHeaderCounter) Reset() { - *x = PatternFlowIpv6NextHeaderCounter{} +func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { + *x = PatternFlowIpv4TosMonetaryCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[419] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53514,13 +53654,13 @@ func (x *PatternFlowIpv6NextHeaderCounter) Reset() { } } -func (x *PatternFlowIpv6NextHeaderCounter) String() string { +func (x *PatternFlowIpv4TosMonetaryCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeaderCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetaryCounter) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[419] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53532,26 +53672,26 @@ func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeaderCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeaderCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosMonetaryCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetaryCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{419} } -func (x *PatternFlowIpv6NextHeaderCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6NextHeaderCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -53561,7 +53701,7 @@ func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6NextHeaderMetricTag struct { +type PatternFlowIpv4TosMonetaryMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53575,12 +53715,12 @@ type PatternFlowIpv6NextHeaderMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { - *x = PatternFlowIpv6NextHeaderMetricTag{} +func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { + *x = PatternFlowIpv4TosMonetaryMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[420] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53588,13 +53728,13 @@ func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { } } -func (x *PatternFlowIpv6NextHeaderMetricTag) String() string { +func (x *PatternFlowIpv4TosMonetaryMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeaderMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetaryMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[420] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53606,64 +53746,59 @@ func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeaderMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeaderMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosMonetaryMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetaryMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{420} } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetName() string { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Next header -type PatternFlowIpv6NextHeader struct { +// Monetary +type PatternFlowIpv4TosMonetary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv6NextHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6NextHeader_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIpv4TosMonetary_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosMonetary_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 59 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [59] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 59 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6NextHeaderMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosMonetaryMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6NextHeader) Reset() { - *x = PatternFlowIpv6NextHeader{} +func (x *PatternFlowIpv4TosMonetary) Reset() { + *x = PatternFlowIpv4TosMonetary{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[421] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53671,13 +53806,13 @@ func (x *PatternFlowIpv6NextHeader) Reset() { } } -func (x *PatternFlowIpv6NextHeader) String() string { +func (x *PatternFlowIpv4TosMonetary) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeader) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetary) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[421] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53689,54 +53824,47 @@ func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeader.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeader) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosMonetary.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetary) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{421} } -func (x *PatternFlowIpv6NextHeader) GetChoice() PatternFlowIpv6NextHeader_Choice_Enum { +func (x *PatternFlowIpv4TosMonetary) GetChoice() PatternFlowIpv4TosMonetary_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6NextHeader_Choice_unspecified + return PatternFlowIpv4TosMonetary_Choice_unspecified } -func (x *PatternFlowIpv6NextHeader) GetValue() uint32 { +func (x *PatternFlowIpv4TosMonetary) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6NextHeader) GetValues() []uint32 { +func (x *PatternFlowIpv4TosMonetary) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6NextHeader) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv6NextHeader) GetIncrement() *PatternFlowIpv6NextHeaderCounter { +func (x *PatternFlowIpv4TosMonetary) GetIncrement() *PatternFlowIpv4TosMonetaryCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6NextHeader) GetDecrement() *PatternFlowIpv6NextHeaderCounter { +func (x *PatternFlowIpv4TosMonetary) GetDecrement() *PatternFlowIpv4TosMonetaryCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeaderMetricTag { +func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMonetaryMetricTag { if x != nil { return x.MetricTags } @@ -53744,13 +53872,13 @@ func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeader } // integer counter pattern -type PatternFlowIpv6HopLimitCounter struct { +type PatternFlowIpv4TosUnusedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -53760,8 +53888,8 @@ type PatternFlowIpv6HopLimitCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6HopLimitCounter) Reset() { - *x = PatternFlowIpv6HopLimitCounter{} +func (x *PatternFlowIpv4TosUnusedCounter) Reset() { + *x = PatternFlowIpv4TosUnusedCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[422] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53769,13 +53897,13 @@ func (x *PatternFlowIpv6HopLimitCounter) Reset() { } } -func (x *PatternFlowIpv6HopLimitCounter) String() string { +func (x *PatternFlowIpv4TosUnusedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimitCounter) ProtoMessage() {} +func (*PatternFlowIpv4TosUnusedCounter) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[422] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53787,26 +53915,26 @@ func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimitCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimitCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosUnusedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnusedCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{422} } -func (x *PatternFlowIpv6HopLimitCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6HopLimitCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -53816,7 +53944,7 @@ func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6HopLimitMetricTag struct { +type PatternFlowIpv4TosUnusedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -53830,12 +53958,12 @@ type PatternFlowIpv6HopLimitMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { - *x = PatternFlowIpv6HopLimitMetricTag{} +func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { + *x = PatternFlowIpv4TosUnusedMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[423] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53843,13 +53971,13 @@ func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { } } -func (x *PatternFlowIpv6HopLimitMetricTag) String() string { +func (x *PatternFlowIpv4TosUnusedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimitMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosUnusedMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[423] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53861,59 +53989,59 @@ func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimitMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimitMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosUnusedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnusedMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{423} } -func (x *PatternFlowIpv6HopLimitMetricTag) GetName() string { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6HopLimitMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6HopLimitMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Hop limit -type PatternFlowIpv6HopLimit struct { +// Unused +type PatternFlowIpv4TosUnused struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6HopLimit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6HopLimit_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosUnused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosUnused_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6HopLimitMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosUnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6HopLimit) Reset() { - *x = PatternFlowIpv6HopLimit{} +func (x *PatternFlowIpv4TosUnused) Reset() { + *x = PatternFlowIpv4TosUnused{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[424] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53921,13 +54049,13 @@ func (x *PatternFlowIpv6HopLimit) Reset() { } } -func (x *PatternFlowIpv6HopLimit) String() string { +func (x *PatternFlowIpv4TosUnused) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimit) ProtoMessage() {} +func (*PatternFlowIpv4TosUnused) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[424] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53939,72 +54067,72 @@ func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimit.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimit) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv4TosUnused.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnused) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{424} } -func (x *PatternFlowIpv6HopLimit) GetChoice() PatternFlowIpv6HopLimit_Choice_Enum { +func (x *PatternFlowIpv4TosUnused) GetChoice() PatternFlowIpv4TosUnused_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6HopLimit_Choice_unspecified + return PatternFlowIpv4TosUnused_Choice_unspecified } -func (x *PatternFlowIpv6HopLimit) GetValue() uint32 { +func (x *PatternFlowIpv4TosUnused) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6HopLimit) GetValues() []uint32 { +func (x *PatternFlowIpv4TosUnused) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6HopLimit) GetIncrement() *PatternFlowIpv6HopLimitCounter { +func (x *PatternFlowIpv4TosUnused) GetIncrement() *PatternFlowIpv4TosUnusedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6HopLimit) GetDecrement() *PatternFlowIpv6HopLimitCounter { +func (x *PatternFlowIpv4TosUnused) GetDecrement() *PatternFlowIpv4TosUnusedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6HopLimit) GetMetricTags() []*PatternFlowIpv6HopLimitMetricTag { +func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv6 counter pattern -type PatternFlowIpv6SrcCounter struct { +// integer counter pattern +type PatternFlowIpv6VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = ::0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 6 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = ::1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6SrcCounter) Reset() { - *x = PatternFlowIpv6SrcCounter{} +func (x *PatternFlowIpv6VersionCounter) Reset() { + *x = PatternFlowIpv6VersionCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[425] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54012,13 +54140,13 @@ func (x *PatternFlowIpv6SrcCounter) Reset() { } } -func (x *PatternFlowIpv6SrcCounter) String() string { +func (x *PatternFlowIpv6VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6SrcCounter) ProtoMessage() {} +func (*PatternFlowIpv6VersionCounter) ProtoMessage() {} -func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[425] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54030,26 +54158,26 @@ func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6SrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6SrcCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6VersionCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{425} } -func (x *PatternFlowIpv6SrcCounter) GetStart() string { +func (x *PatternFlowIpv6VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv6SrcCounter) GetStep() string { +func (x *PatternFlowIpv6VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -54059,7 +54187,7 @@ func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6SrcMetricTag struct { +type PatternFlowIpv6VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -54073,12 +54201,12 @@ type PatternFlowIpv6SrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 128 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6SrcMetricTag) Reset() { - *x = PatternFlowIpv6SrcMetricTag{} +func (x *PatternFlowIpv6VersionMetricTag) Reset() { + *x = PatternFlowIpv6VersionMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[426] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54086,13 +54214,13 @@ func (x *PatternFlowIpv6SrcMetricTag) Reset() { } } -func (x *PatternFlowIpv6SrcMetricTag) String() string { +func (x *PatternFlowIpv6VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6SrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[426] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54104,59 +54232,59 @@ func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6SrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6SrcMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6VersionMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{426} } -func (x *PatternFlowIpv6SrcMetricTag) GetName() string { +func (x *PatternFlowIpv6VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6SrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6SrcMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source address -type PatternFlowIpv6Src struct { +// Version number +type PatternFlowIpv6Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Src_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = ::0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 6 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['::0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [6] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6Src) Reset() { - *x = PatternFlowIpv6Src{} +func (x *PatternFlowIpv6Version) Reset() { + *x = PatternFlowIpv6Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[427] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54164,13 +54292,13 @@ func (x *PatternFlowIpv6Src) Reset() { } } -func (x *PatternFlowIpv6Src) String() string { +func (x *PatternFlowIpv6Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Src) ProtoMessage() {} +func (*PatternFlowIpv6Version) ProtoMessage() {} -func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[427] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54182,72 +54310,72 @@ func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Src.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Src) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Version) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{427} } -func (x *PatternFlowIpv6Src) GetChoice() PatternFlowIpv6Src_Choice_Enum { +func (x *PatternFlowIpv6Version) GetChoice() PatternFlowIpv6Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Src_Choice_unspecified + return PatternFlowIpv6Version_Choice_unspecified } -func (x *PatternFlowIpv6Src) GetValue() string { +func (x *PatternFlowIpv6Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv6Src) GetValues() []string { +func (x *PatternFlowIpv6Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Src) GetIncrement() *PatternFlowIpv6SrcCounter { +func (x *PatternFlowIpv6Version) GetIncrement() *PatternFlowIpv6VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Src) GetDecrement() *PatternFlowIpv6SrcCounter { +func (x *PatternFlowIpv6Version) GetDecrement() *PatternFlowIpv6VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Src) GetMetricTags() []*PatternFlowIpv6SrcMetricTag { +func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv6 counter pattern -type PatternFlowIpv6DstCounter struct { +// integer counter pattern +type PatternFlowIpv6TrafficClassCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = ::0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = ::1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6DstCounter) Reset() { - *x = PatternFlowIpv6DstCounter{} +func (x *PatternFlowIpv6TrafficClassCounter) Reset() { + *x = PatternFlowIpv6TrafficClassCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[428] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54255,13 +54383,13 @@ func (x *PatternFlowIpv6DstCounter) Reset() { } } -func (x *PatternFlowIpv6DstCounter) String() string { +func (x *PatternFlowIpv6TrafficClassCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6DstCounter) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClassCounter) ProtoMessage() {} -func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[428] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54273,26 +54401,26 @@ func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6DstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6DstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6TrafficClassCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClassCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{428} } -func (x *PatternFlowIpv6DstCounter) GetStart() string { +func (x *PatternFlowIpv6TrafficClassCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv6DstCounter) GetStep() string { +func (x *PatternFlowIpv6TrafficClassCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { +func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -54302,7 +54430,7 @@ func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIpv6DstMetricTag struct { +type PatternFlowIpv6TrafficClassMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -54316,12 +54444,12 @@ type PatternFlowIpv6DstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 128 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6DstMetricTag) Reset() { - *x = PatternFlowIpv6DstMetricTag{} +func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { + *x = PatternFlowIpv6TrafficClassMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[429] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54329,13 +54457,13 @@ func (x *PatternFlowIpv6DstMetricTag) Reset() { } } -func (x *PatternFlowIpv6DstMetricTag) String() string { +func (x *PatternFlowIpv6TrafficClassMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6DstMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClassMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[429] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54347,59 +54475,59 @@ func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6DstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6DstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6TrafficClassMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClassMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{429} } -func (x *PatternFlowIpv6DstMetricTag) GetName() string { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIpv6DstMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6DstMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination address -type PatternFlowIpv6Dst struct { +// Traffic class +type PatternFlowIpv6TrafficClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Dst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6TrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6TrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = ::0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['::0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIpv6DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6TrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6Dst) Reset() { - *x = PatternFlowIpv6Dst{} +func (x *PatternFlowIpv6TrafficClass) Reset() { + *x = PatternFlowIpv6TrafficClass{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[430] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54407,13 +54535,13 @@ func (x *PatternFlowIpv6Dst) Reset() { } } -func (x *PatternFlowIpv6Dst) String() string { +func (x *PatternFlowIpv6TrafficClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Dst) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClass) ProtoMessage() {} -func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[430] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54425,72 +54553,72 @@ func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Dst.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Dst) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6TrafficClass.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClass) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{430} } -func (x *PatternFlowIpv6Dst) GetChoice() PatternFlowIpv6Dst_Choice_Enum { +func (x *PatternFlowIpv6TrafficClass) GetChoice() PatternFlowIpv6TrafficClass_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Dst_Choice_unspecified + return PatternFlowIpv6TrafficClass_Choice_unspecified } -func (x *PatternFlowIpv6Dst) GetValue() string { +func (x *PatternFlowIpv6TrafficClass) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv6Dst) GetValues() []string { +func (x *PatternFlowIpv6TrafficClass) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Dst) GetIncrement() *PatternFlowIpv6DstCounter { +func (x *PatternFlowIpv6TrafficClass) GetIncrement() *PatternFlowIpv6TrafficClassCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Dst) GetDecrement() *PatternFlowIpv6DstCounter { +func (x *PatternFlowIpv6TrafficClass) GetDecrement() *PatternFlowIpv6TrafficClassCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Dst) GetMetricTags() []*PatternFlowIpv6DstMetricTag { +func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficClassMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowPfcPauseDstCounter struct { +// integer counter pattern +type PatternFlowIpv6FlowLabelCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 01:80:c2:00:00:01 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseDstCounter) Reset() { - *x = PatternFlowPfcPauseDstCounter{} +func (x *PatternFlowIpv6FlowLabelCounter) Reset() { + *x = PatternFlowIpv6FlowLabelCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[431] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54498,13 +54626,13 @@ func (x *PatternFlowPfcPauseDstCounter) Reset() { } } -func (x *PatternFlowPfcPauseDstCounter) String() string { +func (x *PatternFlowIpv6FlowLabelCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDstCounter) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabelCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[431] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54516,26 +54644,26 @@ func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6FlowLabelCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabelCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{431} } -func (x *PatternFlowPfcPauseDstCounter) GetStart() string { +func (x *PatternFlowIpv6FlowLabelCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowPfcPauseDstCounter) GetStep() string { +func (x *PatternFlowIpv6FlowLabelCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowPfcPauseDstCounter) GetCount() uint32 { +func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -54545,7 +54673,7 @@ func (x *PatternFlowPfcPauseDstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseDstMetricTag struct { +type PatternFlowIpv6FlowLabelMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -54559,12 +54687,12 @@ type PatternFlowPfcPauseDstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 20 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseDstMetricTag) Reset() { - *x = PatternFlowPfcPauseDstMetricTag{} +func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { + *x = PatternFlowIpv6FlowLabelMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[432] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54572,13 +54700,13 @@ func (x *PatternFlowPfcPauseDstMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseDstMetricTag) String() string { +func (x *PatternFlowIpv6FlowLabelMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDstMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabelMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[432] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54590,59 +54718,59 @@ func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6FlowLabelMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabelMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{432} } -func (x *PatternFlowPfcPauseDstMetricTag) GetName() string { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseDstMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseDstMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination MAC address -type PatternFlowPfcPauseDst struct { +// Flow label +type PatternFlowIpv6FlowLabel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6FlowLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6FlowLabel_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 01:80:c2:00:00:01 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['01:80:c2:00:00:01'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6FlowLabelMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseDst) Reset() { - *x = PatternFlowPfcPauseDst{} +func (x *PatternFlowIpv6FlowLabel) Reset() { + *x = PatternFlowIpv6FlowLabel{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[433] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54650,13 +54778,13 @@ func (x *PatternFlowPfcPauseDst) Reset() { } } -func (x *PatternFlowPfcPauseDst) String() string { +func (x *PatternFlowIpv6FlowLabel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDst) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabel) ProtoMessage() {} -func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[433] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54668,72 +54796,72 @@ func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDst.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDst) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6FlowLabel.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabel) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{433} } -func (x *PatternFlowPfcPauseDst) GetChoice() PatternFlowPfcPauseDst_Choice_Enum { +func (x *PatternFlowIpv6FlowLabel) GetChoice() PatternFlowIpv6FlowLabel_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseDst_Choice_unspecified + return PatternFlowIpv6FlowLabel_Choice_unspecified } -func (x *PatternFlowPfcPauseDst) GetValue() string { +func (x *PatternFlowIpv6FlowLabel) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowPfcPauseDst) GetValues() []string { +func (x *PatternFlowIpv6FlowLabel) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseDst) GetIncrement() *PatternFlowPfcPauseDstCounter { +func (x *PatternFlowIpv6FlowLabel) GetIncrement() *PatternFlowIpv6FlowLabelCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseDst) GetDecrement() *PatternFlowPfcPauseDstCounter { +func (x *PatternFlowIpv6FlowLabel) GetDecrement() *PatternFlowIpv6FlowLabelCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseDst) GetMetricTags() []*PatternFlowPfcPauseDstMetricTag { +func (x *PatternFlowIpv6FlowLabel) GetMetricTags() []*PatternFlowIpv6FlowLabelMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowPfcPauseSrcCounter struct { +// integer counter pattern +type PatternFlowIpv6PayloadLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseSrcCounter) Reset() { - *x = PatternFlowPfcPauseSrcCounter{} +func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { + *x = PatternFlowIpv6PayloadLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[434] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54741,13 +54869,13 @@ func (x *PatternFlowPfcPauseSrcCounter) Reset() { } } -func (x *PatternFlowPfcPauseSrcCounter) String() string { +func (x *PatternFlowIpv6PayloadLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrcCounter) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLengthCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[434] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54759,26 +54887,26 @@ func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrcCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6PayloadLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{434} } -func (x *PatternFlowPfcPauseSrcCounter) GetStart() string { +func (x *PatternFlowIpv6PayloadLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrcCounter) GetStep() string { +func (x *PatternFlowIpv6PayloadLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -54788,7 +54916,7 @@ func (x *PatternFlowPfcPauseSrcCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseSrcMetricTag struct { +type PatternFlowIpv6PayloadLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -54802,12 +54930,12 @@ type PatternFlowPfcPauseSrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { - *x = PatternFlowPfcPauseSrcMetricTag{} +func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { + *x = PatternFlowIpv6PayloadLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[435] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54815,13 +54943,13 @@ func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseSrcMetricTag) String() string { +func (x *PatternFlowIpv6PayloadLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[435] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54833,59 +54961,64 @@ func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrcMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6PayloadLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{435} } -func (x *PatternFlowPfcPauseSrcMetricTag) GetName() string { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseSrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseSrcMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source MAC address -type PatternFlowPfcPauseSrc struct { +// Payload length +type PatternFlowIpv6PayloadLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowPfcPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv6PayloadLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6PayloadLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 0 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6PayloadLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseSrc) Reset() { - *x = PatternFlowPfcPauseSrc{} +func (x *PatternFlowIpv6PayloadLength) Reset() { + *x = PatternFlowIpv6PayloadLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[436] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54893,13 +55026,13 @@ func (x *PatternFlowPfcPauseSrc) Reset() { } } -func (x *PatternFlowPfcPauseSrc) String() string { +func (x *PatternFlowIpv6PayloadLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrc) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLength) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[436] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54911,47 +55044,54 @@ func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrc) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6PayloadLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{436} } -func (x *PatternFlowPfcPauseSrc) GetChoice() PatternFlowPfcPauseSrc_Choice_Enum { +func (x *PatternFlowIpv6PayloadLength) GetChoice() PatternFlowIpv6PayloadLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseSrc_Choice_unspecified + return PatternFlowIpv6PayloadLength_Choice_unspecified } -func (x *PatternFlowPfcPauseSrc) GetValue() string { +func (x *PatternFlowIpv6PayloadLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrc) GetValues() []string { +func (x *PatternFlowIpv6PayloadLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseSrc) GetIncrement() *PatternFlowPfcPauseSrcCounter { +func (x *PatternFlowIpv6PayloadLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv6PayloadLength) GetIncrement() *PatternFlowIpv6PayloadLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseSrc) GetDecrement() *PatternFlowPfcPauseSrcCounter { +func (x *PatternFlowIpv6PayloadLength) GetDecrement() *PatternFlowIpv6PayloadLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseSrc) GetMetricTags() []*PatternFlowPfcPauseSrcMetricTag { +func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6PayloadLengthMetricTag { if x != nil { return x.MetricTags } @@ -54959,13 +55099,13 @@ func (x *PatternFlowPfcPauseSrc) GetMetricTags() []*PatternFlowPfcPauseSrcMetric } // integer counter pattern -type PatternFlowPfcPauseEtherTypeCounter struct { +type PatternFlowIpv6NextHeaderCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 34824 + // default = 59 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -54975,8 +55115,8 @@ type PatternFlowPfcPauseEtherTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { - *x = PatternFlowPfcPauseEtherTypeCounter{} +func (x *PatternFlowIpv6NextHeaderCounter) Reset() { + *x = PatternFlowIpv6NextHeaderCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[437] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -54984,13 +55124,13 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { } } -func (x *PatternFlowPfcPauseEtherTypeCounter) String() string { +func (x *PatternFlowIpv6NextHeaderCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherTypeCounter) ProtoMessage() {} +func (*PatternFlowIpv6NextHeaderCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[437] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55002,26 +55142,26 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6NextHeaderCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeaderCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{437} } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetStart() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetStep() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -55031,7 +55171,7 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseEtherTypeMetricTag struct { +type PatternFlowIpv6NextHeaderMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -55045,12 +55185,12 @@ type PatternFlowPfcPauseEtherTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { - *x = PatternFlowPfcPauseEtherTypeMetricTag{} +func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { + *x = PatternFlowIpv6NextHeaderMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[438] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55058,13 +55198,13 @@ func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) String() string { +func (x *PatternFlowIpv6NextHeaderMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherTypeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6NextHeaderMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[438] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55076,59 +55216,64 @@ func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6NextHeaderMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeaderMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{438} } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetName() string { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Ethernet type -type PatternFlowPfcPauseEtherType struct { +// Next header +type PatternFlowIpv6NextHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowPfcPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv6NextHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6NextHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 34824 + // default = 59 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [34824] + // default = [59] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 59 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6NextHeaderMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseEtherType) Reset() { - *x = PatternFlowPfcPauseEtherType{} +func (x *PatternFlowIpv6NextHeader) Reset() { + *x = PatternFlowIpv6NextHeader{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[439] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55136,13 +55281,13 @@ func (x *PatternFlowPfcPauseEtherType) Reset() { } } -func (x *PatternFlowPfcPauseEtherType) String() string { +func (x *PatternFlowIpv6NextHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherType) ProtoMessage() {} +func (*PatternFlowIpv6NextHeader) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[439] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55154,47 +55299,54 @@ func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6NextHeader.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeader) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{439} } -func (x *PatternFlowPfcPauseEtherType) GetChoice() PatternFlowPfcPauseEtherType_Choice_Enum { +func (x *PatternFlowIpv6NextHeader) GetChoice() PatternFlowIpv6NextHeader_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseEtherType_Choice_unspecified + return PatternFlowIpv6NextHeader_Choice_unspecified } -func (x *PatternFlowPfcPauseEtherType) GetValue() uint32 { +func (x *PatternFlowIpv6NextHeader) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPauseEtherType) GetValues() []uint32 { +func (x *PatternFlowIpv6NextHeader) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseEtherType) GetIncrement() *PatternFlowPfcPauseEtherTypeCounter { +func (x *PatternFlowIpv6NextHeader) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv6NextHeader) GetIncrement() *PatternFlowIpv6NextHeaderCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseEtherType) GetDecrement() *PatternFlowPfcPauseEtherTypeCounter { +func (x *PatternFlowIpv6NextHeader) GetDecrement() *PatternFlowIpv6NextHeaderCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEtherTypeMetricTag { +func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeaderMetricTag { if x != nil { return x.MetricTags } @@ -55202,13 +55354,13 @@ func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEth } // integer counter pattern -type PatternFlowPfcPauseControlOpCodeCounter struct { +type PatternFlowIpv6HopLimitCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 257 + // default = 64 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -55218,8 +55370,8 @@ type PatternFlowPfcPauseControlOpCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { - *x = PatternFlowPfcPauseControlOpCodeCounter{} +func (x *PatternFlowIpv6HopLimitCounter) Reset() { + *x = PatternFlowIpv6HopLimitCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[440] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55227,13 +55379,13 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { } } -func (x *PatternFlowPfcPauseControlOpCodeCounter) String() string { +func (x *PatternFlowIpv6HopLimitCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCodeCounter) ProtoMessage() {} +func (*PatternFlowIpv6HopLimitCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[440] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55245,26 +55397,26 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6HopLimitCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimitCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{440} } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStart() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStep() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -55274,7 +55426,7 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseControlOpCodeMetricTag struct { +type PatternFlowIpv6HopLimitMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -55288,12 +55440,12 @@ type PatternFlowPfcPauseControlOpCodeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { - *x = PatternFlowPfcPauseControlOpCodeMetricTag{} +func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { + *x = PatternFlowIpv6HopLimitMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[441] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55301,13 +55453,13 @@ func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) String() string { +func (x *PatternFlowIpv6HopLimitMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCodeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6HopLimitMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[441] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55319,59 +55471,59 @@ func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6HopLimitMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimitMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{441} } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetName() string { +func (x *PatternFlowIpv6HopLimitMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6HopLimitMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6HopLimitMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Control operation code -type PatternFlowPfcPauseControlOpCode struct { +// Hop limit +type PatternFlowIpv6HopLimit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6HopLimit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6HopLimit_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 257 + // default = 64 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [257] + // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6HopLimitMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCode) Reset() { - *x = PatternFlowPfcPauseControlOpCode{} +func (x *PatternFlowIpv6HopLimit) Reset() { + *x = PatternFlowIpv6HopLimit{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[442] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55379,13 +55531,13 @@ func (x *PatternFlowPfcPauseControlOpCode) Reset() { } } -func (x *PatternFlowPfcPauseControlOpCode) String() string { +func (x *PatternFlowIpv6HopLimit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCode) ProtoMessage() {} +func (*PatternFlowIpv6HopLimit) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[442] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55397,72 +55549,72 @@ func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCode.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCode) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6HopLimit.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimit) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{442} } -func (x *PatternFlowPfcPauseControlOpCode) GetChoice() PatternFlowPfcPauseControlOpCode_Choice_Enum { +func (x *PatternFlowIpv6HopLimit) GetChoice() PatternFlowIpv6HopLimit_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseControlOpCode_Choice_unspecified + return PatternFlowIpv6HopLimit_Choice_unspecified } -func (x *PatternFlowPfcPauseControlOpCode) GetValue() uint32 { +func (x *PatternFlowIpv6HopLimit) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPauseControlOpCode) GetValues() []uint32 { +func (x *PatternFlowIpv6HopLimit) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetIncrement() *PatternFlowPfcPauseControlOpCodeCounter { +func (x *PatternFlowIpv6HopLimit) GetIncrement() *PatternFlowIpv6HopLimitCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetDecrement() *PatternFlowPfcPauseControlOpCodeCounter { +func (x *PatternFlowIpv6HopLimit) GetDecrement() *PatternFlowIpv6HopLimitCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetMetricTags() []*PatternFlowPfcPauseControlOpCodeMetricTag { +func (x *PatternFlowIpv6HopLimit) GetMetricTags() []*PatternFlowIpv6HopLimitMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowPfcPauseClassEnableVectorCounter struct { +// ipv6 counter pattern +type PatternFlowIpv6SrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = ::0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = ::1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { - *x = PatternFlowPfcPauseClassEnableVectorCounter{} +func (x *PatternFlowIpv6SrcCounter) Reset() { + *x = PatternFlowIpv6SrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[443] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55470,13 +55622,13 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { } } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) String() string { +func (x *PatternFlowIpv6SrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVectorCounter) ProtoMessage() {} +func (*PatternFlowIpv6SrcCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[443] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55488,26 +55640,26 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVectorCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVectorCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6SrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6SrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{443} } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStart() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStep() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -55517,7 +55669,7 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPauseClassEnableVectorMetricTag struct { +type PatternFlowIpv6SrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -55531,12 +55683,12 @@ type PatternFlowPfcPauseClassEnableVectorMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 128 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { - *x = PatternFlowPfcPauseClassEnableVectorMetricTag{} +func (x *PatternFlowIpv6SrcMetricTag) Reset() { + *x = PatternFlowIpv6SrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[444] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55544,13 +55696,13 @@ func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { } } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) String() string { +func (x *PatternFlowIpv6SrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6SrcMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[444] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55562,59 +55714,59 @@ func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVectorMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVectorMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6SrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6SrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{444} } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetName() string { +func (x *PatternFlowIpv6SrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6SrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6SrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination -type PatternFlowPfcPauseClassEnableVector struct { +// Source address +type PatternFlowIpv6Src struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseClassEnableVector_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseClassEnableVector_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Src_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = ::0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['::0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPauseClassEnableVectorMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVector) Reset() { - *x = PatternFlowPfcPauseClassEnableVector{} +func (x *PatternFlowIpv6Src) Reset() { + *x = PatternFlowIpv6Src{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[445] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55622,13 +55774,13 @@ func (x *PatternFlowPfcPauseClassEnableVector) Reset() { } } -func (x *PatternFlowPfcPauseClassEnableVector) String() string { +func (x *PatternFlowIpv6Src) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVector) ProtoMessage() {} +func (*PatternFlowIpv6Src) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[445] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55640,72 +55792,72 @@ func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVector.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVector) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6Src.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Src) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{445} } -func (x *PatternFlowPfcPauseClassEnableVector) GetChoice() PatternFlowPfcPauseClassEnableVector_Choice_Enum { +func (x *PatternFlowIpv6Src) GetChoice() PatternFlowIpv6Src_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseClassEnableVector_Choice_unspecified + return PatternFlowIpv6Src_Choice_unspecified } -func (x *PatternFlowPfcPauseClassEnableVector) GetValue() uint32 { +func (x *PatternFlowIpv6Src) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowPfcPauseClassEnableVector) GetValues() []uint32 { +func (x *PatternFlowIpv6Src) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetIncrement() *PatternFlowPfcPauseClassEnableVectorCounter { +func (x *PatternFlowIpv6Src) GetIncrement() *PatternFlowIpv6SrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetDecrement() *PatternFlowPfcPauseClassEnableVectorCounter { +func (x *PatternFlowIpv6Src) GetDecrement() *PatternFlowIpv6SrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetMetricTags() []*PatternFlowPfcPauseClassEnableVectorMetricTag { +func (x *PatternFlowIpv6Src) GetMetricTags() []*PatternFlowIpv6SrcMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowPfcPausePauseClass0Counter struct { +// ipv6 counter pattern +type PatternFlowIpv6DstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = ::0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = ::1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { - *x = PatternFlowPfcPausePauseClass0Counter{} +func (x *PatternFlowIpv6DstCounter) Reset() { + *x = PatternFlowIpv6DstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[446] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55713,13 +55865,13 @@ func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass0Counter) String() string { +func (x *PatternFlowIpv6DstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0Counter) ProtoMessage() {} +func (*PatternFlowIpv6DstCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[446] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55731,26 +55883,26 @@ func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6DstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6DstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{446} } -func (x *PatternFlowPfcPausePauseClass0Counter) GetStart() uint32 { +func (x *PatternFlowIpv6DstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass0Counter) GetStep() uint32 { +func (x *PatternFlowIpv6DstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { +func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -55760,7 +55912,7 @@ func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass0MetricTag struct { +type PatternFlowIpv6DstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -55774,12 +55926,12 @@ type PatternFlowPfcPausePauseClass0MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 128 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass0MetricTag{} +func (x *PatternFlowIpv6DstMetricTag) Reset() { + *x = PatternFlowIpv6DstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[447] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55787,13 +55939,13 @@ func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass0MetricTag) String() string { +func (x *PatternFlowIpv6DstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0MetricTag) ProtoMessage() {} +func (*PatternFlowIpv6DstMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[447] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55805,59 +55957,59 @@ func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6DstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6DstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{447} } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetName() string { +func (x *PatternFlowIpv6DstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6DstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6DstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 0 -type PatternFlowPfcPausePauseClass0 struct { +// Destination address +type PatternFlowIpv6Dst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass0_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Dst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = ::0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['::0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0) Reset() { - *x = PatternFlowPfcPausePauseClass0{} +func (x *PatternFlowIpv6Dst) Reset() { + *x = PatternFlowIpv6Dst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[448] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55865,13 +56017,13 @@ func (x *PatternFlowPfcPausePauseClass0) Reset() { } } -func (x *PatternFlowPfcPausePauseClass0) String() string { +func (x *PatternFlowIpv6Dst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0) ProtoMessage() {} +func (*PatternFlowIpv6Dst) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[448] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55883,72 +56035,72 @@ func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowIpv6Dst.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Dst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{448} } -func (x *PatternFlowPfcPausePauseClass0) GetChoice() PatternFlowPfcPausePauseClass0_Choice_Enum { +func (x *PatternFlowIpv6Dst) GetChoice() PatternFlowIpv6Dst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass0_Choice_unspecified + return PatternFlowIpv6Dst_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass0) GetValue() uint32 { +func (x *PatternFlowIpv6Dst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass0) GetValues() []uint32 { +func (x *PatternFlowIpv6Dst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetIncrement() *PatternFlowPfcPausePauseClass0Counter { +func (x *PatternFlowIpv6Dst) GetIncrement() *PatternFlowIpv6DstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetDecrement() *PatternFlowPfcPausePauseClass0Counter { +func (x *PatternFlowIpv6Dst) GetDecrement() *PatternFlowIpv6DstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetMetricTags() []*PatternFlowPfcPausePauseClass0MetricTag { +func (x *PatternFlowIpv6Dst) GetMetricTags() []*PatternFlowIpv6DstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowPfcPausePauseClass1Counter struct { +// mac counter pattern +type PatternFlowPfcPauseDstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 01:80:c2:00:00:01 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { - *x = PatternFlowPfcPausePauseClass1Counter{} +func (x *PatternFlowPfcPauseDstCounter) Reset() { + *x = PatternFlowPfcPauseDstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[449] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55956,13 +56108,13 @@ func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass1Counter) String() string { +func (x *PatternFlowPfcPauseDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseDstCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[449] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -55974,26 +56126,26 @@ func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{449} } -func (x *PatternFlowPfcPausePauseClass1Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass1Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56003,7 +56155,7 @@ func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass1MetricTag struct { +type PatternFlowPfcPauseDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56017,12 +56169,12 @@ type PatternFlowPfcPausePauseClass1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass1MetricTag{} +func (x *PatternFlowPfcPauseDstMetricTag) Reset() { + *x = PatternFlowPfcPauseDstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[450] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56030,13 +56182,13 @@ func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass1MetricTag) String() string { +func (x *PatternFlowPfcPauseDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseDstMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[450] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56048,59 +56200,59 @@ func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{450} } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetName() string { +func (x *PatternFlowPfcPauseDstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 1 -type PatternFlowPfcPausePauseClass1 struct { +// Destination MAC address +type PatternFlowPfcPauseDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 01:80:c2:00:00:01 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['01:80:c2:00:00:01'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1) Reset() { - *x = PatternFlowPfcPausePauseClass1{} +func (x *PatternFlowPfcPauseDst) Reset() { + *x = PatternFlowPfcPauseDst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[451] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56108,13 +56260,13 @@ func (x *PatternFlowPfcPausePauseClass1) Reset() { } } -func (x *PatternFlowPfcPausePauseClass1) String() string { +func (x *PatternFlowPfcPauseDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1) ProtoMessage() {} +func (*PatternFlowPfcPauseDst) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[451] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56126,72 +56278,72 @@ func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseDst.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{451} } -func (x *PatternFlowPfcPausePauseClass1) GetChoice() PatternFlowPfcPausePauseClass1_Choice_Enum { +func (x *PatternFlowPfcPauseDst) GetChoice() PatternFlowPfcPauseDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass1_Choice_unspecified + return PatternFlowPfcPauseDst_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass1) GetValue() uint32 { +func (x *PatternFlowPfcPauseDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass1) GetValues() []uint32 { +func (x *PatternFlowPfcPauseDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetIncrement() *PatternFlowPfcPausePauseClass1Counter { +func (x *PatternFlowPfcPauseDst) GetIncrement() *PatternFlowPfcPauseDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetDecrement() *PatternFlowPfcPausePauseClass1Counter { +func (x *PatternFlowPfcPauseDst) GetDecrement() *PatternFlowPfcPauseDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetMetricTags() []*PatternFlowPfcPausePauseClass1MetricTag { +func (x *PatternFlowPfcPauseDst) GetMetricTags() []*PatternFlowPfcPauseDstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowPfcPausePauseClass2Counter struct { +// mac counter pattern +type PatternFlowPfcPauseSrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { - *x = PatternFlowPfcPausePauseClass2Counter{} +func (x *PatternFlowPfcPauseSrcCounter) Reset() { + *x = PatternFlowPfcPauseSrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[452] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56199,13 +56351,13 @@ func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass2Counter) String() string { +func (x *PatternFlowPfcPauseSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseSrcCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[452] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56217,26 +56369,26 @@ func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{452} } -func (x *PatternFlowPfcPausePauseClass2Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass2Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56246,7 +56398,7 @@ func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass2MetricTag struct { +type PatternFlowPfcPauseSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56260,12 +56412,12 @@ type PatternFlowPfcPausePauseClass2MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass2MetricTag{} +func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { + *x = PatternFlowPfcPauseSrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[453] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56273,13 +56425,13 @@ func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass2MetricTag) String() string { +func (x *PatternFlowPfcPauseSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[453] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56291,59 +56443,59 @@ func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{453} } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetName() string { +func (x *PatternFlowPfcPauseSrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 2 -type PatternFlowPfcPausePauseClass2 struct { +// Source MAC address +type PatternFlowPfcPauseSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass2_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2) Reset() { - *x = PatternFlowPfcPausePauseClass2{} +func (x *PatternFlowPfcPauseSrc) Reset() { + *x = PatternFlowPfcPauseSrc{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[454] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56351,13 +56503,13 @@ func (x *PatternFlowPfcPausePauseClass2) Reset() { } } -func (x *PatternFlowPfcPausePauseClass2) String() string { +func (x *PatternFlowPfcPauseSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2) ProtoMessage() {} +func (*PatternFlowPfcPauseSrc) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[454] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56369,47 +56521,47 @@ func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrc) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{454} } -func (x *PatternFlowPfcPausePauseClass2) GetChoice() PatternFlowPfcPausePauseClass2_Choice_Enum { +func (x *PatternFlowPfcPauseSrc) GetChoice() PatternFlowPfcPauseSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass2_Choice_unspecified + return PatternFlowPfcPauseSrc_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass2) GetValue() uint32 { +func (x *PatternFlowPfcPauseSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowPfcPausePauseClass2) GetValues() []uint32 { +func (x *PatternFlowPfcPauseSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetIncrement() *PatternFlowPfcPausePauseClass2Counter { +func (x *PatternFlowPfcPauseSrc) GetIncrement() *PatternFlowPfcPauseSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetDecrement() *PatternFlowPfcPausePauseClass2Counter { +func (x *PatternFlowPfcPauseSrc) GetDecrement() *PatternFlowPfcPauseSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPausePauseClass2MetricTag { +func (x *PatternFlowPfcPauseSrc) GetMetricTags() []*PatternFlowPfcPauseSrcMetricTag { if x != nil { return x.MetricTags } @@ -56417,13 +56569,13 @@ func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass3Counter struct { +type PatternFlowPfcPauseEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 34824 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -56433,8 +56585,8 @@ type PatternFlowPfcPausePauseClass3Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { - *x = PatternFlowPfcPausePauseClass3Counter{} +func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { + *x = PatternFlowPfcPauseEtherTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[455] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56442,13 +56594,13 @@ func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass3Counter) String() string { +func (x *PatternFlowPfcPauseEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[455] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56460,26 +56612,26 @@ func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{455} } -func (x *PatternFlowPfcPausePauseClass3Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass3Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56489,7 +56641,7 @@ func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass3MetricTag struct { +type PatternFlowPfcPauseEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56507,8 +56659,8 @@ type PatternFlowPfcPausePauseClass3MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass3MetricTag{} +func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { + *x = PatternFlowPfcPauseEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[456] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56516,13 +56668,13 @@ func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass3MetricTag) String() string { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[456] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56534,59 +56686,59 @@ func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{456} } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetName() string { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 3 -type PatternFlowPfcPausePauseClass3 struct { +// Ethernet type +type PatternFlowPfcPauseEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass3_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass3_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 34824 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [34824] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass3MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3) Reset() { - *x = PatternFlowPfcPausePauseClass3{} +func (x *PatternFlowPfcPauseEtherType) Reset() { + *x = PatternFlowPfcPauseEtherType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[457] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56594,13 +56746,13 @@ func (x *PatternFlowPfcPausePauseClass3) Reset() { } } -func (x *PatternFlowPfcPausePauseClass3) String() string { +func (x *PatternFlowPfcPauseEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherType) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[457] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56612,47 +56764,47 @@ func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{457} } -func (x *PatternFlowPfcPausePauseClass3) GetChoice() PatternFlowPfcPausePauseClass3_Choice_Enum { +func (x *PatternFlowPfcPauseEtherType) GetChoice() PatternFlowPfcPauseEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass3_Choice_unspecified + return PatternFlowPfcPauseEtherType_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass3) GetValue() uint32 { +func (x *PatternFlowPfcPauseEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass3) GetValues() []uint32 { +func (x *PatternFlowPfcPauseEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetIncrement() *PatternFlowPfcPausePauseClass3Counter { +func (x *PatternFlowPfcPauseEtherType) GetIncrement() *PatternFlowPfcPauseEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetDecrement() *PatternFlowPfcPausePauseClass3Counter { +func (x *PatternFlowPfcPauseEtherType) GetDecrement() *PatternFlowPfcPauseEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPausePauseClass3MetricTag { +func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEtherTypeMetricTag { if x != nil { return x.MetricTags } @@ -56660,13 +56812,13 @@ func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass4Counter struct { +type PatternFlowPfcPauseControlOpCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 257 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -56676,8 +56828,8 @@ type PatternFlowPfcPausePauseClass4Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { - *x = PatternFlowPfcPausePauseClass4Counter{} +func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { + *x = PatternFlowPfcPauseControlOpCodeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[458] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56685,13 +56837,13 @@ func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass4Counter) String() string { +func (x *PatternFlowPfcPauseControlOpCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCodeCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[458] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56703,26 +56855,26 @@ func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{458} } -func (x *PatternFlowPfcPausePauseClass4Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass4Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56732,7 +56884,7 @@ func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass4MetricTag struct { +type PatternFlowPfcPauseControlOpCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56750,8 +56902,8 @@ type PatternFlowPfcPausePauseClass4MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass4MetricTag{} +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { + *x = PatternFlowPfcPauseControlOpCodeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[459] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56759,13 +56911,13 @@ func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass4MetricTag) String() string { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[459] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56777,59 +56929,59 @@ func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{459} } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetName() string { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 4 -type PatternFlowPfcPausePauseClass4 struct { +// Control operation code +type PatternFlowPfcPauseControlOpCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass4_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 257 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [257] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass4MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4) Reset() { - *x = PatternFlowPfcPausePauseClass4{} +func (x *PatternFlowPfcPauseControlOpCode) Reset() { + *x = PatternFlowPfcPauseControlOpCode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[460] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56837,13 +56989,13 @@ func (x *PatternFlowPfcPausePauseClass4) Reset() { } } -func (x *PatternFlowPfcPausePauseClass4) String() string { +func (x *PatternFlowPfcPauseControlOpCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCode) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[460] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56855,47 +57007,47 @@ func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseControlOpCode.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCode) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{460} } -func (x *PatternFlowPfcPausePauseClass4) GetChoice() PatternFlowPfcPausePauseClass4_Choice_Enum { +func (x *PatternFlowPfcPauseControlOpCode) GetChoice() PatternFlowPfcPauseControlOpCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass4_Choice_unspecified + return PatternFlowPfcPauseControlOpCode_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass4) GetValue() uint32 { +func (x *PatternFlowPfcPauseControlOpCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass4) GetValues() []uint32 { +func (x *PatternFlowPfcPauseControlOpCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetIncrement() *PatternFlowPfcPausePauseClass4Counter { +func (x *PatternFlowPfcPauseControlOpCode) GetIncrement() *PatternFlowPfcPauseControlOpCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetDecrement() *PatternFlowPfcPausePauseClass4Counter { +func (x *PatternFlowPfcPauseControlOpCode) GetDecrement() *PatternFlowPfcPauseControlOpCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPausePauseClass4MetricTag { +func (x *PatternFlowPfcPauseControlOpCode) GetMetricTags() []*PatternFlowPfcPauseControlOpCodeMetricTag { if x != nil { return x.MetricTags } @@ -56903,7 +57055,7 @@ func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass5Counter struct { +type PatternFlowPfcPauseClassEnableVectorCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56919,8 +57071,8 @@ type PatternFlowPfcPausePauseClass5Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { - *x = PatternFlowPfcPausePauseClass5Counter{} +func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { + *x = PatternFlowPfcPauseClassEnableVectorCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[461] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56928,13 +57080,13 @@ func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass5Counter) String() string { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5Counter) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVectorCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[461] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56946,26 +57098,26 @@ func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseClassEnableVectorCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVectorCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{461} } -func (x *PatternFlowPfcPausePauseClass5Counter) GetStart() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass5Counter) GetStep() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -56975,7 +57127,7 @@ func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass5MetricTag struct { +type PatternFlowPfcPauseClassEnableVectorMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -56993,8 +57145,8 @@ type PatternFlowPfcPausePauseClass5MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass5MetricTag{} +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { + *x = PatternFlowPfcPauseClassEnableVectorMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[462] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57002,13 +57154,13 @@ func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass5MetricTag) String() string { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[462] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57020,41 +57172,41 @@ func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseClassEnableVectorMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVectorMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{462} } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetName() string { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 5 -type PatternFlowPfcPausePauseClass5 struct { +// Destination +type PatternFlowPfcPauseClassEnableVector struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass5_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass5_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseClassEnableVector_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseClassEnableVector_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -57062,17 +57214,17 @@ type PatternFlowPfcPausePauseClass5 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass5MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseClassEnableVectorMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5) Reset() { - *x = PatternFlowPfcPausePauseClass5{} +func (x *PatternFlowPfcPauseClassEnableVector) Reset() { + *x = PatternFlowPfcPauseClassEnableVector{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[463] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57080,13 +57232,13 @@ func (x *PatternFlowPfcPausePauseClass5) Reset() { } } -func (x *PatternFlowPfcPausePauseClass5) String() string { +func (x *PatternFlowPfcPauseClassEnableVector) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVector) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[463] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57098,47 +57250,47 @@ func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPauseClassEnableVector.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVector) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{463} } -func (x *PatternFlowPfcPausePauseClass5) GetChoice() PatternFlowPfcPausePauseClass5_Choice_Enum { +func (x *PatternFlowPfcPauseClassEnableVector) GetChoice() PatternFlowPfcPauseClassEnableVector_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass5_Choice_unspecified + return PatternFlowPfcPauseClassEnableVector_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass5) GetValue() uint32 { +func (x *PatternFlowPfcPauseClassEnableVector) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass5) GetValues() []uint32 { +func (x *PatternFlowPfcPauseClassEnableVector) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetIncrement() *PatternFlowPfcPausePauseClass5Counter { +func (x *PatternFlowPfcPauseClassEnableVector) GetIncrement() *PatternFlowPfcPauseClassEnableVectorCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetDecrement() *PatternFlowPfcPausePauseClass5Counter { +func (x *PatternFlowPfcPauseClassEnableVector) GetDecrement() *PatternFlowPfcPauseClassEnableVectorCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPausePauseClass5MetricTag { +func (x *PatternFlowPfcPauseClassEnableVector) GetMetricTags() []*PatternFlowPfcPauseClassEnableVectorMetricTag { if x != nil { return x.MetricTags } @@ -57146,7 +57298,7 @@ func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass6Counter struct { +type PatternFlowPfcPausePauseClass0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57162,8 +57314,8 @@ type PatternFlowPfcPausePauseClass6Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { - *x = PatternFlowPfcPausePauseClass6Counter{} +func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { + *x = PatternFlowPfcPausePauseClass0Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[464] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57171,13 +57323,13 @@ func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass6Counter) String() string { +func (x *PatternFlowPfcPausePauseClass0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6Counter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0Counter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[464] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57189,26 +57341,26 @@ func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{464} } -func (x *PatternFlowPfcPausePauseClass6Counter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass6Counter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -57218,7 +57370,7 @@ func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass6MetricTag struct { +type PatternFlowPfcPausePauseClass0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57236,8 +57388,8 @@ type PatternFlowPfcPausePauseClass6MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass6MetricTag{} +func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass0MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[465] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57245,13 +57397,13 @@ func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass6MetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0MetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[465] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57263,41 +57415,41 @@ func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{465} } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 6 -type PatternFlowPfcPausePauseClass6 struct { +// Pause class 0 +type PatternFlowPfcPausePauseClass0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass6_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass0_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -57305,17 +57457,17 @@ type PatternFlowPfcPausePauseClass6 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass6MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6) Reset() { - *x = PatternFlowPfcPausePauseClass6{} +func (x *PatternFlowPfcPausePauseClass0) Reset() { + *x = PatternFlowPfcPausePauseClass0{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[466] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57323,13 +57475,13 @@ func (x *PatternFlowPfcPausePauseClass6) Reset() { } } -func (x *PatternFlowPfcPausePauseClass6) String() string { +func (x *PatternFlowPfcPausePauseClass0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[466] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57341,47 +57493,47 @@ func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass0.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{466} } -func (x *PatternFlowPfcPausePauseClass6) GetChoice() PatternFlowPfcPausePauseClass6_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass0) GetChoice() PatternFlowPfcPausePauseClass0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass6_Choice_unspecified + return PatternFlowPfcPausePauseClass0_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass6) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass6) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetIncrement() *PatternFlowPfcPausePauseClass6Counter { +func (x *PatternFlowPfcPausePauseClass0) GetIncrement() *PatternFlowPfcPausePauseClass0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetDecrement() *PatternFlowPfcPausePauseClass6Counter { +func (x *PatternFlowPfcPausePauseClass0) GetDecrement() *PatternFlowPfcPausePauseClass0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPausePauseClass6MetricTag { +func (x *PatternFlowPfcPausePauseClass0) GetMetricTags() []*PatternFlowPfcPausePauseClass0MetricTag { if x != nil { return x.MetricTags } @@ -57389,7 +57541,7 @@ func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass7Counter struct { +type PatternFlowPfcPausePauseClass1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57405,8 +57557,8 @@ type PatternFlowPfcPausePauseClass7Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { - *x = PatternFlowPfcPausePauseClass7Counter{} +func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { + *x = PatternFlowPfcPausePauseClass1Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[467] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57414,13 +57566,13 @@ func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { } } -func (x *PatternFlowPfcPausePauseClass7Counter) String() string { +func (x *PatternFlowPfcPausePauseClass1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7Counter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1Counter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[467] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57432,26 +57584,26 @@ func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{467} } -func (x *PatternFlowPfcPausePauseClass7Counter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass7Counter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -57461,7 +57613,7 @@ func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPfcPausePauseClass7MetricTag struct { +type PatternFlowPfcPausePauseClass1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57479,8 +57631,8 @@ type PatternFlowPfcPausePauseClass7MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass7MetricTag{} +func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass1MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[468] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57488,13 +57640,13 @@ func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { } } -func (x *PatternFlowPfcPausePauseClass7MetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7MetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1MetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[468] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57506,41 +57658,41 @@ func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{468} } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 7 -type PatternFlowPfcPausePauseClass7 struct { +// Pause class 1 +type PatternFlowPfcPausePauseClass1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass7_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass7_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass1_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -57548,17 +57700,17 @@ type PatternFlowPfcPausePauseClass7 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPfcPausePauseClass7MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7) Reset() { - *x = PatternFlowPfcPausePauseClass7{} +func (x *PatternFlowPfcPausePauseClass1) Reset() { + *x = PatternFlowPfcPausePauseClass1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[469] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57566,13 +57718,13 @@ func (x *PatternFlowPfcPausePauseClass7) Reset() { } } -func (x *PatternFlowPfcPausePauseClass7) String() string { +func (x *PatternFlowPfcPausePauseClass1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[469] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57584,72 +57736,72 @@ func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass1.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{469} } -func (x *PatternFlowPfcPausePauseClass7) GetChoice() PatternFlowPfcPausePauseClass7_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass1) GetChoice() PatternFlowPfcPausePauseClass1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass7_Choice_unspecified + return PatternFlowPfcPausePauseClass1_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass7) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass7) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetIncrement() *PatternFlowPfcPausePauseClass7Counter { +func (x *PatternFlowPfcPausePauseClass1) GetIncrement() *PatternFlowPfcPausePauseClass1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetDecrement() *PatternFlowPfcPausePauseClass7Counter { +func (x *PatternFlowPfcPausePauseClass1) GetDecrement() *PatternFlowPfcPausePauseClass1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetMetricTags() []*PatternFlowPfcPausePauseClass7MetricTag { +func (x *PatternFlowPfcPausePauseClass1) GetMetricTags() []*PatternFlowPfcPausePauseClass1MetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowEthernetPauseDstCounter struct { +// integer counter pattern +type PatternFlowPfcPausePauseClass2Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 01:80:c2:00:00:01 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseDstCounter) Reset() { - *x = PatternFlowEthernetPauseDstCounter{} +func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { + *x = PatternFlowPfcPausePauseClass2Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[470] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57657,13 +57809,13 @@ func (x *PatternFlowEthernetPauseDstCounter) Reset() { } } -func (x *PatternFlowEthernetPauseDstCounter) String() string { +func (x *PatternFlowPfcPausePauseClass2Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDstCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[470] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57675,26 +57827,26 @@ func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass2Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{470} } -func (x *PatternFlowEthernetPauseDstCounter) GetStart() string { +func (x *PatternFlowPfcPausePauseClass2Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDstCounter) GetStep() string { +func (x *PatternFlowPfcPausePauseClass2Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -57704,7 +57856,7 @@ func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseDstMetricTag struct { +type PatternFlowPfcPausePauseClass2MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57718,12 +57870,12 @@ type PatternFlowEthernetPauseDstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { - *x = PatternFlowEthernetPauseDstMetricTag{} +func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass2MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[471] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57731,13 +57883,13 @@ func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseDstMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass2MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDstMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[471] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57749,59 +57901,59 @@ func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass2MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{471} } -func (x *PatternFlowEthernetPauseDstMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseDstMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseDstMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination MAC address -type PatternFlowEthernetPauseDst struct { +// Pause class 2 +type PatternFlowPfcPausePauseClass2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass2_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 01:80:c2:00:00:01 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['01:80:c2:00:00:01'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseDst) Reset() { - *x = PatternFlowEthernetPauseDst{} +func (x *PatternFlowPfcPausePauseClass2) Reset() { + *x = PatternFlowPfcPausePauseClass2{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[472] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57809,13 +57961,13 @@ func (x *PatternFlowEthernetPauseDst) Reset() { } } -func (x *PatternFlowEthernetPauseDst) String() string { +func (x *PatternFlowPfcPausePauseClass2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDst) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[472] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57827,72 +57979,72 @@ func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDst.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDst) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass2.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{472} } -func (x *PatternFlowEthernetPauseDst) GetChoice() PatternFlowEthernetPauseDst_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass2) GetChoice() PatternFlowPfcPausePauseClass2_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseDst_Choice_unspecified + return PatternFlowPfcPausePauseClass2_Choice_unspecified } -func (x *PatternFlowEthernetPauseDst) GetValue() string { +func (x *PatternFlowPfcPausePauseClass2) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDst) GetValues() []string { +func (x *PatternFlowPfcPausePauseClass2) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseDst) GetIncrement() *PatternFlowEthernetPauseDstCounter { +func (x *PatternFlowPfcPausePauseClass2) GetIncrement() *PatternFlowPfcPausePauseClass2Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseDst) GetDecrement() *PatternFlowEthernetPauseDstCounter { +func (x *PatternFlowPfcPausePauseClass2) GetDecrement() *PatternFlowPfcPausePauseClass2Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseDst) GetMetricTags() []*PatternFlowEthernetPauseDstMetricTag { +func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPausePauseClass2MetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowEthernetPauseSrcCounter struct { +// integer counter pattern +type PatternFlowPfcPausePauseClass3Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseSrcCounter) Reset() { - *x = PatternFlowEthernetPauseSrcCounter{} +func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { + *x = PatternFlowPfcPausePauseClass3Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[473] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57900,13 +58052,13 @@ func (x *PatternFlowEthernetPauseSrcCounter) Reset() { } } -func (x *PatternFlowEthernetPauseSrcCounter) String() string { +func (x *PatternFlowPfcPausePauseClass3Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrcCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[473] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57918,26 +58070,26 @@ func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrcCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass3Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{473} } -func (x *PatternFlowEthernetPauseSrcCounter) GetStart() string { +func (x *PatternFlowPfcPausePauseClass3Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrcCounter) GetStep() string { +func (x *PatternFlowPfcPausePauseClass3Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -57947,7 +58099,7 @@ func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseSrcMetricTag struct { +type PatternFlowPfcPausePauseClass3MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -57961,12 +58113,12 @@ type PatternFlowEthernetPauseSrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { - *x = PatternFlowEthernetPauseSrcMetricTag{} +func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass3MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[474] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57974,13 +58126,13 @@ func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseSrcMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass3MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrcMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[474] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57992,59 +58144,59 @@ func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrcMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass3MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{474} } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source MAC address -type PatternFlowEthernetPauseSrc struct { +// Pause class 3 +type PatternFlowPfcPausePauseClass3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass3_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass3_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass3MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseSrc) Reset() { - *x = PatternFlowEthernetPauseSrc{} +func (x *PatternFlowPfcPausePauseClass3) Reset() { + *x = PatternFlowPfcPausePauseClass3{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[475] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58052,13 +58204,13 @@ func (x *PatternFlowEthernetPauseSrc) Reset() { } } -func (x *PatternFlowEthernetPauseSrc) String() string { +func (x *PatternFlowPfcPausePauseClass3) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrc) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[475] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58070,47 +58222,47 @@ func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrc) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass3.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{475} } -func (x *PatternFlowEthernetPauseSrc) GetChoice() PatternFlowEthernetPauseSrc_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass3) GetChoice() PatternFlowPfcPausePauseClass3_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseSrc_Choice_unspecified + return PatternFlowPfcPausePauseClass3_Choice_unspecified } -func (x *PatternFlowEthernetPauseSrc) GetValue() string { +func (x *PatternFlowPfcPausePauseClass3) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrc) GetValues() []string { +func (x *PatternFlowPfcPausePauseClass3) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseSrc) GetIncrement() *PatternFlowEthernetPauseSrcCounter { +func (x *PatternFlowPfcPausePauseClass3) GetIncrement() *PatternFlowPfcPausePauseClass3Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseSrc) GetDecrement() *PatternFlowEthernetPauseSrcCounter { +func (x *PatternFlowPfcPausePauseClass3) GetDecrement() *PatternFlowPfcPausePauseClass3Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPauseSrcMetricTag { +func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPausePauseClass3MetricTag { if x != nil { return x.MetricTags } @@ -58118,13 +58270,13 @@ func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPaus } // integer counter pattern -type PatternFlowEthernetPauseEtherTypeCounter struct { +type PatternFlowPfcPausePauseClass4Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 34824 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -58134,8 +58286,8 @@ type PatternFlowEthernetPauseEtherTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { - *x = PatternFlowEthernetPauseEtherTypeCounter{} +func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { + *x = PatternFlowPfcPausePauseClass4Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[476] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58143,13 +58295,13 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { } } -func (x *PatternFlowEthernetPauseEtherTypeCounter) String() string { +func (x *PatternFlowPfcPausePauseClass4Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherTypeCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[476] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58161,26 +58313,26 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass4Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{476} } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -58190,7 +58342,7 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseEtherTypeMetricTag struct { +type PatternFlowPfcPausePauseClass4MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58208,8 +58360,8 @@ type PatternFlowEthernetPauseEtherTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { - *x = PatternFlowEthernetPauseEtherTypeMetricTag{} +func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass4MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[477] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58217,13 +58369,13 @@ func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass4MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherTypeMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[477] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58235,59 +58387,59 @@ func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass4MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{477} } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Ethernet type -type PatternFlowEthernetPauseEtherType struct { +// Pause class 4 +type PatternFlowPfcPausePauseClass4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass4_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 34824 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [34824] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass4MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseEtherType) Reset() { - *x = PatternFlowEthernetPauseEtherType{} +func (x *PatternFlowPfcPausePauseClass4) Reset() { + *x = PatternFlowPfcPausePauseClass4{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[478] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58295,13 +58447,13 @@ func (x *PatternFlowEthernetPauseEtherType) Reset() { } } -func (x *PatternFlowEthernetPauseEtherType) String() string { +func (x *PatternFlowPfcPausePauseClass4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherType) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[478] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58313,47 +58465,47 @@ func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass4.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{478} } -func (x *PatternFlowEthernetPauseEtherType) GetChoice() PatternFlowEthernetPauseEtherType_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass4) GetChoice() PatternFlowPfcPausePauseClass4_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseEtherType_Choice_unspecified + return PatternFlowPfcPausePauseClass4_Choice_unspecified } -func (x *PatternFlowEthernetPauseEtherType) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass4) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowEthernetPauseEtherType) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass4) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetIncrement() *PatternFlowEthernetPauseEtherTypeCounter { +func (x *PatternFlowPfcPausePauseClass4) GetIncrement() *PatternFlowPfcPausePauseClass4Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetDecrement() *PatternFlowEthernetPauseEtherTypeCounter { +func (x *PatternFlowPfcPausePauseClass4) GetDecrement() *PatternFlowPfcPausePauseClass4Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthernetPauseEtherTypeMetricTag { +func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPausePauseClass4MetricTag { if x != nil { return x.MetricTags } @@ -58361,13 +58513,13 @@ func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthern } // integer counter pattern -type PatternFlowEthernetPauseControlOpCodeCounter struct { +type PatternFlowPfcPausePauseClass5Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -58377,8 +58529,8 @@ type PatternFlowEthernetPauseControlOpCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { - *x = PatternFlowEthernetPauseControlOpCodeCounter{} +func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { + *x = PatternFlowPfcPausePauseClass5Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[479] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58386,13 +58538,13 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { } } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) String() string { +func (x *PatternFlowPfcPausePauseClass5Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCodeCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[479] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58404,26 +58556,26 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass5Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{479} } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -58433,7 +58585,7 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseControlOpCodeMetricTag struct { +type PatternFlowPfcPausePauseClass5MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58451,8 +58603,8 @@ type PatternFlowEthernetPauseControlOpCodeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { - *x = PatternFlowEthernetPauseControlOpCodeMetricTag{} +func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass5MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[480] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58460,13 +58612,13 @@ func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass5MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[480] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58478,59 +58630,59 @@ func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass5MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{480} } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Control operation code -type PatternFlowEthernetPauseControlOpCode struct { +// Pause class 5 +type PatternFlowPfcPausePauseClass5 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass5_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass5_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass5MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCode) Reset() { - *x = PatternFlowEthernetPauseControlOpCode{} +func (x *PatternFlowPfcPausePauseClass5) Reset() { + *x = PatternFlowPfcPausePauseClass5{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[481] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58538,13 +58690,13 @@ func (x *PatternFlowEthernetPauseControlOpCode) Reset() { } } -func (x *PatternFlowEthernetPauseControlOpCode) String() string { +func (x *PatternFlowPfcPausePauseClass5) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCode) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[481] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58556,47 +58708,47 @@ func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCode.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCode) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass5.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{481} } -func (x *PatternFlowEthernetPauseControlOpCode) GetChoice() PatternFlowEthernetPauseControlOpCode_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass5) GetChoice() PatternFlowPfcPausePauseClass5_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseControlOpCode_Choice_unspecified + return PatternFlowPfcPausePauseClass5_Choice_unspecified } -func (x *PatternFlowEthernetPauseControlOpCode) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass5) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowEthernetPauseControlOpCode) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass5) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetIncrement() *PatternFlowEthernetPauseControlOpCodeCounter { +func (x *PatternFlowPfcPausePauseClass5) GetIncrement() *PatternFlowPfcPausePauseClass5Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetDecrement() *PatternFlowEthernetPauseControlOpCodeCounter { +func (x *PatternFlowPfcPausePauseClass5) GetDecrement() *PatternFlowPfcPausePauseClass5Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetMetricTags() []*PatternFlowEthernetPauseControlOpCodeMetricTag { +func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPausePauseClass5MetricTag { if x != nil { return x.MetricTags } @@ -58604,7 +58756,7 @@ func (x *PatternFlowEthernetPauseControlOpCode) GetMetricTags() []*PatternFlowEt } // integer counter pattern -type PatternFlowEthernetPauseTimeCounter struct { +type PatternFlowPfcPausePauseClass6Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58620,8 +58772,8 @@ type PatternFlowEthernetPauseTimeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseTimeCounter) Reset() { - *x = PatternFlowEthernetPauseTimeCounter{} +func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { + *x = PatternFlowPfcPausePauseClass6Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[482] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58629,13 +58781,13 @@ func (x *PatternFlowEthernetPauseTimeCounter) Reset() { } } -func (x *PatternFlowEthernetPauseTimeCounter) String() string { +func (x *PatternFlowPfcPausePauseClass6Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTimeCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6Counter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[482] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58647,26 +58799,26 @@ func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTimeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTimeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass6Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{482} } -func (x *PatternFlowEthernetPauseTimeCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowEthernetPauseTimeCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -58676,7 +58828,7 @@ func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowEthernetPauseTimeMetricTag struct { +type PatternFlowPfcPausePauseClass6MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58694,8 +58846,8 @@ type PatternFlowEthernetPauseTimeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { - *x = PatternFlowEthernetPauseTimeMetricTag{} +func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass6MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[483] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58703,13 +58855,13 @@ func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { } } -func (x *PatternFlowEthernetPauseTimeMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass6MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTimeMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6MetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[483] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58721,41 +58873,41 @@ func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTimeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTimeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass6MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{483} } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time -type PatternFlowEthernetPauseTime struct { +// Pause class 6 +type PatternFlowPfcPausePauseClass6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseTime_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseTime_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass6_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -58763,17 +58915,17 @@ type PatternFlowEthernetPauseTime struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowEthernetPauseTimeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass6MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseTime) Reset() { - *x = PatternFlowEthernetPauseTime{} +func (x *PatternFlowPfcPausePauseClass6) Reset() { + *x = PatternFlowPfcPausePauseClass6{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[484] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58781,13 +58933,13 @@ func (x *PatternFlowEthernetPauseTime) Reset() { } } -func (x *PatternFlowEthernetPauseTime) String() string { +func (x *PatternFlowPfcPausePauseClass6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTime) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[484] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58799,47 +58951,47 @@ func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTime.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTime) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass6.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{484} } -func (x *PatternFlowEthernetPauseTime) GetChoice() PatternFlowEthernetPauseTime_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass6) GetChoice() PatternFlowPfcPausePauseClass6_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseTime_Choice_unspecified + return PatternFlowPfcPausePauseClass6_Choice_unspecified } -func (x *PatternFlowEthernetPauseTime) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass6) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowEthernetPauseTime) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass6) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseTime) GetIncrement() *PatternFlowEthernetPauseTimeCounter { +func (x *PatternFlowPfcPausePauseClass6) GetIncrement() *PatternFlowPfcPausePauseClass6Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseTime) GetDecrement() *PatternFlowEthernetPauseTimeCounter { +func (x *PatternFlowPfcPausePauseClass6) GetDecrement() *PatternFlowPfcPausePauseClass6Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseTime) GetMetricTags() []*PatternFlowEthernetPauseTimeMetricTag { +func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPausePauseClass6MetricTag { if x != nil { return x.MetricTags } @@ -58847,7 +58999,7 @@ func (x *PatternFlowEthernetPauseTime) GetMetricTags() []*PatternFlowEthernetPau } // integer counter pattern -type PatternFlowTcpSrcPortCounter struct { +type PatternFlowPfcPausePauseClass7Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58863,8 +59015,8 @@ type PatternFlowTcpSrcPortCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpSrcPortCounter) Reset() { - *x = PatternFlowTcpSrcPortCounter{} +func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { + *x = PatternFlowPfcPausePauseClass7Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[485] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58872,13 +59024,13 @@ func (x *PatternFlowTcpSrcPortCounter) Reset() { } } -func (x *PatternFlowTcpSrcPortCounter) String() string { +func (x *PatternFlowPfcPausePauseClass7Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPortCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7Counter) ProtoMessage() {} -func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[485] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58890,26 +59042,26 @@ func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPortCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass7Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{485} } -func (x *PatternFlowTcpSrcPortCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpSrcPortCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -58919,7 +59071,7 @@ func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpSrcPortMetricTag struct { +type PatternFlowPfcPausePauseClass7MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -58937,8 +59089,8 @@ type PatternFlowTcpSrcPortMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpSrcPortMetricTag) Reset() { - *x = PatternFlowTcpSrcPortMetricTag{} +func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass7MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[486] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58946,13 +59098,13 @@ func (x *PatternFlowTcpSrcPortMetricTag) Reset() { } } -func (x *PatternFlowTcpSrcPortMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass7MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPortMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[486] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -58964,41 +59116,41 @@ func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPortMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass7MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{486} } -func (x *PatternFlowTcpSrcPortMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpSrcPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpSrcPortMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source port -type PatternFlowTcpSrcPort struct { +// Pause class 7 +type PatternFlowPfcPausePauseClass7 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass7_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass7_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -59006,17 +59158,17 @@ type PatternFlowTcpSrcPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass7MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpSrcPort) Reset() { - *x = PatternFlowTcpSrcPort{} +func (x *PatternFlowPfcPausePauseClass7) Reset() { + *x = PatternFlowPfcPausePauseClass7{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[487] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59024,13 +59176,13 @@ func (x *PatternFlowTcpSrcPort) Reset() { } } -func (x *PatternFlowTcpSrcPort) String() string { +func (x *PatternFlowPfcPausePauseClass7) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPort) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7) ProtoMessage() {} -func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[487] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59042,72 +59194,72 @@ func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPort.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPort) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowPfcPausePauseClass7.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{487} } -func (x *PatternFlowTcpSrcPort) GetChoice() PatternFlowTcpSrcPort_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass7) GetChoice() PatternFlowPfcPausePauseClass7_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpSrcPort_Choice_unspecified + return PatternFlowPfcPausePauseClass7_Choice_unspecified } -func (x *PatternFlowTcpSrcPort) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass7) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpSrcPort) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass7) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpSrcPort) GetIncrement() *PatternFlowTcpSrcPortCounter { +func (x *PatternFlowPfcPausePauseClass7) GetIncrement() *PatternFlowPfcPausePauseClass7Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpSrcPort) GetDecrement() *PatternFlowTcpSrcPortCounter { +func (x *PatternFlowPfcPausePauseClass7) GetDecrement() *PatternFlowPfcPausePauseClass7Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpSrcPort) GetMetricTags() []*PatternFlowTcpSrcPortMetricTag { +func (x *PatternFlowPfcPausePauseClass7) GetMetricTags() []*PatternFlowPfcPausePauseClass7MetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowTcpDstPortCounter struct { +// mac counter pattern +type PatternFlowEthernetPauseDstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 01:80:c2:00:00:01 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpDstPortCounter) Reset() { - *x = PatternFlowTcpDstPortCounter{} +func (x *PatternFlowEthernetPauseDstCounter) Reset() { + *x = PatternFlowEthernetPauseDstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[488] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59115,13 +59267,13 @@ func (x *PatternFlowTcpDstPortCounter) Reset() { } } -func (x *PatternFlowTcpDstPortCounter) String() string { +func (x *PatternFlowEthernetPauseDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPortCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseDstCounter) ProtoMessage() {} -func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[488] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59133,26 +59285,26 @@ func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPortCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{488} } -func (x *PatternFlowTcpDstPortCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowTcpDstPortCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -59162,7 +59314,7 @@ func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpDstPortMetricTag struct { +type PatternFlowEthernetPauseDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -59176,12 +59328,12 @@ type PatternFlowTcpDstPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpDstPortMetricTag) Reset() { - *x = PatternFlowTcpDstPortMetricTag{} +func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { + *x = PatternFlowEthernetPauseDstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[489] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59189,13 +59341,13 @@ func (x *PatternFlowTcpDstPortMetricTag) Reset() { } } -func (x *PatternFlowTcpDstPortMetricTag) String() string { +func (x *PatternFlowEthernetPauseDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPortMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseDstMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[489] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59207,59 +59359,59 @@ func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPortMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{489} } -func (x *PatternFlowTcpDstPortMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseDstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpDstPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpDstPortMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination port -type PatternFlowTcpDstPort struct { +// Destination MAC address +type PatternFlowEthernetPauseDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 01:80:c2:00:00:01 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['01:80:c2:00:00:01'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpDstPort) Reset() { - *x = PatternFlowTcpDstPort{} +func (x *PatternFlowEthernetPauseDst) Reset() { + *x = PatternFlowEthernetPauseDst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[490] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59267,13 +59419,13 @@ func (x *PatternFlowTcpDstPort) Reset() { } } -func (x *PatternFlowTcpDstPort) String() string { +func (x *PatternFlowEthernetPauseDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPort) ProtoMessage() {} +func (*PatternFlowEthernetPauseDst) ProtoMessage() {} -func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[490] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59285,72 +59437,72 @@ func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPort.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPort) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseDst.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{490} } -func (x *PatternFlowTcpDstPort) GetChoice() PatternFlowTcpDstPort_Choice_Enum { +func (x *PatternFlowEthernetPauseDst) GetChoice() PatternFlowEthernetPauseDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpDstPort_Choice_unspecified + return PatternFlowEthernetPauseDst_Choice_unspecified } -func (x *PatternFlowTcpDstPort) GetValue() uint32 { +func (x *PatternFlowEthernetPauseDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowTcpDstPort) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpDstPort) GetIncrement() *PatternFlowTcpDstPortCounter { +func (x *PatternFlowEthernetPauseDst) GetIncrement() *PatternFlowEthernetPauseDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpDstPort) GetDecrement() *PatternFlowTcpDstPortCounter { +func (x *PatternFlowEthernetPauseDst) GetDecrement() *PatternFlowEthernetPauseDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpDstPort) GetMetricTags() []*PatternFlowTcpDstPortMetricTag { +func (x *PatternFlowEthernetPauseDst) GetMetricTags() []*PatternFlowEthernetPauseDstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowTcpSeqNumCounter struct { +// mac counter pattern +type PatternFlowEthernetPauseSrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpSeqNumCounter) Reset() { - *x = PatternFlowTcpSeqNumCounter{} +func (x *PatternFlowEthernetPauseSrcCounter) Reset() { + *x = PatternFlowEthernetPauseSrcCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[491] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59358,13 +59510,13 @@ func (x *PatternFlowTcpSeqNumCounter) Reset() { } } -func (x *PatternFlowTcpSeqNumCounter) String() string { +func (x *PatternFlowEthernetPauseSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNumCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrcCounter) ProtoMessage() {} -func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[491] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59376,26 +59528,26 @@ func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNumCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNumCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrcCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{491} } -func (x *PatternFlowTcpSeqNumCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowTcpSeqNumCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -59405,7 +59557,7 @@ func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpSeqNumMetricTag struct { +type PatternFlowEthernetPauseSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -59419,12 +59571,12 @@ type PatternFlowTcpSeqNumMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpSeqNumMetricTag) Reset() { - *x = PatternFlowTcpSeqNumMetricTag{} +func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { + *x = PatternFlowEthernetPauseSrcMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[492] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59432,13 +59584,13 @@ func (x *PatternFlowTcpSeqNumMetricTag) Reset() { } } -func (x *PatternFlowTcpSeqNumMetricTag) String() string { +func (x *PatternFlowEthernetPauseSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNumMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[492] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59450,59 +59602,59 @@ func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNumMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNumMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrcMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{492} } -func (x *PatternFlowTcpSeqNumMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpSeqNumMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpSeqNumMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number -type PatternFlowTcpSeqNum struct { +// Source MAC address +type PatternFlowEthernetPauseSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpSeqNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSeqNum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpSeqNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpSeqNum) Reset() { - *x = PatternFlowTcpSeqNum{} +func (x *PatternFlowEthernetPauseSrc) Reset() { + *x = PatternFlowEthernetPauseSrc{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[493] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59510,13 +59662,13 @@ func (x *PatternFlowTcpSeqNum) Reset() { } } -func (x *PatternFlowTcpSeqNum) String() string { +func (x *PatternFlowEthernetPauseSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNum) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrc) ProtoMessage() {} -func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[493] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59528,47 +59680,47 @@ func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNum.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNum) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrc) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{493} } -func (x *PatternFlowTcpSeqNum) GetChoice() PatternFlowTcpSeqNum_Choice_Enum { +func (x *PatternFlowEthernetPauseSrc) GetChoice() PatternFlowEthernetPauseSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpSeqNum_Choice_unspecified + return PatternFlowEthernetPauseSrc_Choice_unspecified } -func (x *PatternFlowTcpSeqNum) GetValue() uint32 { +func (x *PatternFlowEthernetPauseSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowTcpSeqNum) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpSeqNum) GetIncrement() *PatternFlowTcpSeqNumCounter { +func (x *PatternFlowEthernetPauseSrc) GetIncrement() *PatternFlowEthernetPauseSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpSeqNum) GetDecrement() *PatternFlowTcpSeqNumCounter { +func (x *PatternFlowEthernetPauseSrc) GetDecrement() *PatternFlowEthernetPauseSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag { +func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPauseSrcMetricTag { if x != nil { return x.MetricTags } @@ -59576,13 +59728,13 @@ func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag } // integer counter pattern -type PatternFlowTcpAckNumCounter struct { +type PatternFlowEthernetPauseEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 34824 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -59592,8 +59744,8 @@ type PatternFlowTcpAckNumCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpAckNumCounter) Reset() { - *x = PatternFlowTcpAckNumCounter{} +func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { + *x = PatternFlowEthernetPauseEtherTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[494] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59601,13 +59753,13 @@ func (x *PatternFlowTcpAckNumCounter) Reset() { } } -func (x *PatternFlowTcpAckNumCounter) String() string { +func (x *PatternFlowEthernetPauseEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNumCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[494] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59619,26 +59771,26 @@ func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNumCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNumCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{494} } -func (x *PatternFlowTcpAckNumCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpAckNumCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -59648,7 +59800,7 @@ func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpAckNumMetricTag struct { +type PatternFlowEthernetPauseEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -59662,12 +59814,12 @@ type PatternFlowTcpAckNumMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpAckNumMetricTag) Reset() { - *x = PatternFlowTcpAckNumMetricTag{} +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { + *x = PatternFlowEthernetPauseEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[495] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59675,13 +59827,13 @@ func (x *PatternFlowTcpAckNumMetricTag) Reset() { } } -func (x *PatternFlowTcpAckNumMetricTag) String() string { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNumMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[495] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59693,59 +59845,59 @@ func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNumMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNumMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{495} } -func (x *PatternFlowTcpAckNumMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpAckNumMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpAckNumMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Acknowledgement number -type PatternFlowTcpAckNum struct { +// Ethernet type +type PatternFlowEthernetPauseEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpAckNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpAckNum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 34824 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [34824] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpAckNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpAckNum) Reset() { - *x = PatternFlowTcpAckNum{} +func (x *PatternFlowEthernetPauseEtherType) Reset() { + *x = PatternFlowEthernetPauseEtherType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[496] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59753,13 +59905,13 @@ func (x *PatternFlowTcpAckNum) Reset() { } } -func (x *PatternFlowTcpAckNum) String() string { +func (x *PatternFlowEthernetPauseEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNum) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherType) ProtoMessage() {} -func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[496] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59771,47 +59923,47 @@ func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNum.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNum) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{496} } -func (x *PatternFlowTcpAckNum) GetChoice() PatternFlowTcpAckNum_Choice_Enum { +func (x *PatternFlowEthernetPauseEtherType) GetChoice() PatternFlowEthernetPauseEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpAckNum_Choice_unspecified + return PatternFlowEthernetPauseEtherType_Choice_unspecified } -func (x *PatternFlowTcpAckNum) GetValue() uint32 { +func (x *PatternFlowEthernetPauseEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpAckNum) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpAckNum) GetIncrement() *PatternFlowTcpAckNumCounter { +func (x *PatternFlowEthernetPauseEtherType) GetIncrement() *PatternFlowEthernetPauseEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpAckNum) GetDecrement() *PatternFlowTcpAckNumCounter { +func (x *PatternFlowEthernetPauseEtherType) GetDecrement() *PatternFlowEthernetPauseEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag { +func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthernetPauseEtherTypeMetricTag { if x != nil { return x.MetricTags } @@ -59819,13 +59971,13 @@ func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag } // integer counter pattern -type PatternFlowTcpDataOffsetCounter struct { +type PatternFlowEthernetPauseControlOpCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -59835,8 +59987,8 @@ type PatternFlowTcpDataOffsetCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpDataOffsetCounter) Reset() { - *x = PatternFlowTcpDataOffsetCounter{} +func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { + *x = PatternFlowEthernetPauseControlOpCodeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[497] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59844,13 +59996,13 @@ func (x *PatternFlowTcpDataOffsetCounter) Reset() { } } -func (x *PatternFlowTcpDataOffsetCounter) String() string { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffsetCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCodeCounter) ProtoMessage() {} -func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[497] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59862,26 +60014,26 @@ func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffsetCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffsetCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{497} } -func (x *PatternFlowTcpDataOffsetCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpDataOffsetCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -59891,7 +60043,7 @@ func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpDataOffsetMetricTag struct { +type PatternFlowEthernetPauseControlOpCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -59905,12 +60057,12 @@ type PatternFlowTcpDataOffsetMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { - *x = PatternFlowTcpDataOffsetMetricTag{} +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { + *x = PatternFlowEthernetPauseControlOpCodeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[498] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59918,13 +60070,13 @@ func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { } } -func (x *PatternFlowTcpDataOffsetMetricTag) String() string { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffsetMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[498] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59936,59 +60088,59 @@ func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffsetMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffsetMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{498} } -func (x *PatternFlowTcpDataOffsetMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpDataOffsetMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpDataOffsetMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The number of 32 bit words in the TCP header. This indicates where the data begins. -type PatternFlowTcpDataOffset struct { +// Control operation code +type PatternFlowEthernetPauseControlOpCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpDataOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDataOffset_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpDataOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpDataOffset) Reset() { - *x = PatternFlowTcpDataOffset{} +func (x *PatternFlowEthernetPauseControlOpCode) Reset() { + *x = PatternFlowEthernetPauseControlOpCode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[499] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59996,13 +60148,13 @@ func (x *PatternFlowTcpDataOffset) Reset() { } } -func (x *PatternFlowTcpDataOffset) String() string { +func (x *PatternFlowEthernetPauseControlOpCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffset) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCode) ProtoMessage() {} -func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[499] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60014,47 +60166,47 @@ func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffset.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffset) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseControlOpCode.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCode) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{499} } -func (x *PatternFlowTcpDataOffset) GetChoice() PatternFlowTcpDataOffset_Choice_Enum { +func (x *PatternFlowEthernetPauseControlOpCode) GetChoice() PatternFlowEthernetPauseControlOpCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpDataOffset_Choice_unspecified + return PatternFlowEthernetPauseControlOpCode_Choice_unspecified } -func (x *PatternFlowTcpDataOffset) GetValue() uint32 { +func (x *PatternFlowEthernetPauseControlOpCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpDataOffset) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseControlOpCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpDataOffset) GetIncrement() *PatternFlowTcpDataOffsetCounter { +func (x *PatternFlowEthernetPauseControlOpCode) GetIncrement() *PatternFlowEthernetPauseControlOpCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpDataOffset) GetDecrement() *PatternFlowTcpDataOffsetCounter { +func (x *PatternFlowEthernetPauseControlOpCode) GetDecrement() *PatternFlowEthernetPauseControlOpCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMetricTag { +func (x *PatternFlowEthernetPauseControlOpCode) GetMetricTags() []*PatternFlowEthernetPauseControlOpCodeMetricTag { if x != nil { return x.MetricTags } @@ -60062,7 +60214,7 @@ func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMe } // integer counter pattern -type PatternFlowTcpEcnNsCounter struct { +type PatternFlowEthernetPauseTimeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60078,8 +60230,8 @@ type PatternFlowTcpEcnNsCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnNsCounter) Reset() { - *x = PatternFlowTcpEcnNsCounter{} +func (x *PatternFlowEthernetPauseTimeCounter) Reset() { + *x = PatternFlowEthernetPauseTimeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[500] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60087,13 +60239,13 @@ func (x *PatternFlowTcpEcnNsCounter) Reset() { } } -func (x *PatternFlowTcpEcnNsCounter) String() string { +func (x *PatternFlowEthernetPauseTimeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNsCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseTimeCounter) ProtoMessage() {} -func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[500] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60105,26 +60257,26 @@ func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNsCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseTimeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTimeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{500} } -func (x *PatternFlowTcpEcnNsCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnNsCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -60134,7 +60286,7 @@ func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpEcnNsMetricTag struct { +type PatternFlowEthernetPauseTimeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60148,12 +60300,12 @@ type PatternFlowTcpEcnNsMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnNsMetricTag) Reset() { - *x = PatternFlowTcpEcnNsMetricTag{} +func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { + *x = PatternFlowEthernetPauseTimeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[501] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60161,13 +60313,13 @@ func (x *PatternFlowTcpEcnNsMetricTag) Reset() { } } -func (x *PatternFlowTcpEcnNsMetricTag) String() string { +func (x *PatternFlowEthernetPauseTimeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNsMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseTimeMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[501] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60179,41 +60331,41 @@ func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNsMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseTimeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTimeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{501} } -func (x *PatternFlowTcpEcnNsMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpEcnNsMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnNsMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, concealment protection. -type PatternFlowTcpEcnNs struct { +// Time +type PatternFlowEthernetPauseTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnNs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnNs_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseTime_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseTime_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -60221,17 +60373,17 @@ type PatternFlowTcpEcnNs struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpEcnNsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseTimeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnNs) Reset() { - *x = PatternFlowTcpEcnNs{} +func (x *PatternFlowEthernetPauseTime) Reset() { + *x = PatternFlowEthernetPauseTime{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[502] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60239,13 +60391,13 @@ func (x *PatternFlowTcpEcnNs) Reset() { } } -func (x *PatternFlowTcpEcnNs) String() string { +func (x *PatternFlowEthernetPauseTime) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNs) ProtoMessage() {} +func (*PatternFlowEthernetPauseTime) ProtoMessage() {} -func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[502] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60257,47 +60409,47 @@ func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNs.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNs) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowEthernetPauseTime.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTime) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{502} } -func (x *PatternFlowTcpEcnNs) GetChoice() PatternFlowTcpEcnNs_Choice_Enum { +func (x *PatternFlowEthernetPauseTime) GetChoice() PatternFlowEthernetPauseTime_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnNs_Choice_unspecified + return PatternFlowEthernetPauseTime_Choice_unspecified } -func (x *PatternFlowTcpEcnNs) GetValue() uint32 { +func (x *PatternFlowEthernetPauseTime) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnNs) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseTime) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnNs) GetIncrement() *PatternFlowTcpEcnNsCounter { +func (x *PatternFlowEthernetPauseTime) GetIncrement() *PatternFlowEthernetPauseTimeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnNs) GetDecrement() *PatternFlowTcpEcnNsCounter { +func (x *PatternFlowEthernetPauseTime) GetDecrement() *PatternFlowEthernetPauseTimeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { +func (x *PatternFlowEthernetPauseTime) GetMetricTags() []*PatternFlowEthernetPauseTimeMetricTag { if x != nil { return x.MetricTags } @@ -60305,7 +60457,7 @@ func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { } // integer counter pattern -type PatternFlowTcpEcnCwrCounter struct { +type PatternFlowTcpSrcPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60321,8 +60473,8 @@ type PatternFlowTcpEcnCwrCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnCwrCounter) Reset() { - *x = PatternFlowTcpEcnCwrCounter{} +func (x *PatternFlowTcpSrcPortCounter) Reset() { + *x = PatternFlowTcpSrcPortCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[503] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60330,13 +60482,13 @@ func (x *PatternFlowTcpEcnCwrCounter) Reset() { } } -func (x *PatternFlowTcpEcnCwrCounter) String() string { +func (x *PatternFlowTcpSrcPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwrCounter) ProtoMessage() {} +func (*PatternFlowTcpSrcPortCounter) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[503] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60348,26 +60500,26 @@ func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSrcPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPortCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{503} } -func (x *PatternFlowTcpEcnCwrCounter) GetStart() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnCwrCounter) GetStep() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -60377,7 +60529,7 @@ func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpEcnCwrMetricTag struct { +type PatternFlowTcpSrcPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60391,12 +60543,12 @@ type PatternFlowTcpEcnCwrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { - *x = PatternFlowTcpEcnCwrMetricTag{} +func (x *PatternFlowTcpSrcPortMetricTag) Reset() { + *x = PatternFlowTcpSrcPortMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[504] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60404,13 +60556,13 @@ func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { } } -func (x *PatternFlowTcpEcnCwrMetricTag) String() string { +func (x *PatternFlowTcpSrcPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwrMetricTag) ProtoMessage() {} +func (*PatternFlowTcpSrcPortMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[504] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60422,41 +60574,41 @@ func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSrcPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPortMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{504} } -func (x *PatternFlowTcpEcnCwrMetricTag) GetName() string { +func (x *PatternFlowTcpSrcPortMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpEcnCwrMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpSrcPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnCwrMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpSrcPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, congestion window reduced. -type PatternFlowTcpEcnCwr struct { +// Source port +type PatternFlowTcpSrcPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnCwr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnCwr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -60464,17 +60616,17 @@ type PatternFlowTcpEcnCwr struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpEcnCwrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnCwr) Reset() { - *x = PatternFlowTcpEcnCwr{} +func (x *PatternFlowTcpSrcPort) Reset() { + *x = PatternFlowTcpSrcPort{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[505] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60482,13 +60634,13 @@ func (x *PatternFlowTcpEcnCwr) Reset() { } } -func (x *PatternFlowTcpEcnCwr) String() string { +func (x *PatternFlowTcpSrcPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwr) ProtoMessage() {} +func (*PatternFlowTcpSrcPort) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[505] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60500,47 +60652,47 @@ func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwr.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSrcPort.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPort) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{505} } -func (x *PatternFlowTcpEcnCwr) GetChoice() PatternFlowTcpEcnCwr_Choice_Enum { +func (x *PatternFlowTcpSrcPort) GetChoice() PatternFlowTcpSrcPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnCwr_Choice_unspecified + return PatternFlowTcpSrcPort_Choice_unspecified } -func (x *PatternFlowTcpEcnCwr) GetValue() uint32 { +func (x *PatternFlowTcpSrcPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnCwr) GetValues() []uint32 { +func (x *PatternFlowTcpSrcPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnCwr) GetIncrement() *PatternFlowTcpEcnCwrCounter { +func (x *PatternFlowTcpSrcPort) GetIncrement() *PatternFlowTcpSrcPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnCwr) GetDecrement() *PatternFlowTcpEcnCwrCounter { +func (x *PatternFlowTcpSrcPort) GetDecrement() *PatternFlowTcpSrcPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag { +func (x *PatternFlowTcpSrcPort) GetMetricTags() []*PatternFlowTcpSrcPortMetricTag { if x != nil { return x.MetricTags } @@ -60548,7 +60700,7 @@ func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag } // integer counter pattern -type PatternFlowTcpEcnEchoCounter struct { +type PatternFlowTcpDstPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60564,8 +60716,8 @@ type PatternFlowTcpEcnEchoCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnEchoCounter) Reset() { - *x = PatternFlowTcpEcnEchoCounter{} +func (x *PatternFlowTcpDstPortCounter) Reset() { + *x = PatternFlowTcpDstPortCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[506] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60573,13 +60725,13 @@ func (x *PatternFlowTcpEcnEchoCounter) Reset() { } } -func (x *PatternFlowTcpEcnEchoCounter) String() string { +func (x *PatternFlowTcpDstPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEchoCounter) ProtoMessage() {} +func (*PatternFlowTcpDstPortCounter) ProtoMessage() {} -func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[506] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60591,26 +60743,26 @@ func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEchoCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEchoCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDstPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPortCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{506} } -func (x *PatternFlowTcpEcnEchoCounter) GetStart() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnEchoCounter) GetStep() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -60620,7 +60772,7 @@ func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpEcnEchoMetricTag struct { +type PatternFlowTcpDstPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60634,12 +60786,12 @@ type PatternFlowTcpEcnEchoMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { - *x = PatternFlowTcpEcnEchoMetricTag{} +func (x *PatternFlowTcpDstPortMetricTag) Reset() { + *x = PatternFlowTcpDstPortMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[507] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60647,13 +60799,13 @@ func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { } } -func (x *PatternFlowTcpEcnEchoMetricTag) String() string { +func (x *PatternFlowTcpDstPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEchoMetricTag) ProtoMessage() {} +func (*PatternFlowTcpDstPortMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[507] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60665,42 +60817,41 @@ func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEchoMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEchoMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDstPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPortMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{507} } -func (x *PatternFlowTcpEcnEchoMetricTag) GetName() string { +func (x *PatternFlowTcpDstPortMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpEcnEchoMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpDstPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnEchoMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpDstPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, echo. 1 indicates the peer is ecn capable. 0 indicates -// that a packet with ipv4.ecn = 11 in the ip header was received during normal transmission. -type PatternFlowTcpEcnEcho struct { +// Destination port +type PatternFlowTcpDstPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnEcho_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnEcho_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -60708,17 +60859,17 @@ type PatternFlowTcpEcnEcho struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpEcnEchoMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnEcho) Reset() { - *x = PatternFlowTcpEcnEcho{} +func (x *PatternFlowTcpDstPort) Reset() { + *x = PatternFlowTcpDstPort{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[508] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60726,13 +60877,13 @@ func (x *PatternFlowTcpEcnEcho) Reset() { } } -func (x *PatternFlowTcpEcnEcho) String() string { +func (x *PatternFlowTcpDstPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEcho) ProtoMessage() {} +func (*PatternFlowTcpDstPort) ProtoMessage() {} -func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[508] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60744,47 +60895,47 @@ func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEcho.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEcho) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDstPort.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPort) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{508} } -func (x *PatternFlowTcpEcnEcho) GetChoice() PatternFlowTcpEcnEcho_Choice_Enum { +func (x *PatternFlowTcpDstPort) GetChoice() PatternFlowTcpDstPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnEcho_Choice_unspecified + return PatternFlowTcpDstPort_Choice_unspecified } -func (x *PatternFlowTcpEcnEcho) GetValue() uint32 { +func (x *PatternFlowTcpDstPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnEcho) GetValues() []uint32 { +func (x *PatternFlowTcpDstPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnEcho) GetIncrement() *PatternFlowTcpEcnEchoCounter { +func (x *PatternFlowTcpDstPort) GetIncrement() *PatternFlowTcpDstPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnEcho) GetDecrement() *PatternFlowTcpEcnEchoCounter { +func (x *PatternFlowTcpDstPort) GetDecrement() *PatternFlowTcpDstPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTag { +func (x *PatternFlowTcpDstPort) GetMetricTags() []*PatternFlowTcpDstPortMetricTag { if x != nil { return x.MetricTags } @@ -60792,7 +60943,7 @@ func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTa } // integer counter pattern -type PatternFlowTcpCtlUrgCounter struct { +type PatternFlowTcpSeqNumCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60808,8 +60959,8 @@ type PatternFlowTcpCtlUrgCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlUrgCounter) Reset() { - *x = PatternFlowTcpCtlUrgCounter{} +func (x *PatternFlowTcpSeqNumCounter) Reset() { + *x = PatternFlowTcpSeqNumCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[509] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60817,13 +60968,13 @@ func (x *PatternFlowTcpCtlUrgCounter) Reset() { } } -func (x *PatternFlowTcpCtlUrgCounter) String() string { +func (x *PatternFlowTcpSeqNumCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrgCounter) ProtoMessage() {} +func (*PatternFlowTcpSeqNumCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[509] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60835,26 +60986,26 @@ func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrgCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrgCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSeqNumCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNumCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{509} } -func (x *PatternFlowTcpCtlUrgCounter) GetStart() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlUrgCounter) GetStep() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -60864,7 +61015,7 @@ func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlUrgMetricTag struct { +type PatternFlowTcpSeqNumMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -60878,12 +61029,12 @@ type PatternFlowTcpCtlUrgMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { - *x = PatternFlowTcpCtlUrgMetricTag{} +func (x *PatternFlowTcpSeqNumMetricTag) Reset() { + *x = PatternFlowTcpSeqNumMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[510] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60891,13 +61042,13 @@ func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlUrgMetricTag) String() string { +func (x *PatternFlowTcpSeqNumMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrgMetricTag) ProtoMessage() {} +func (*PatternFlowTcpSeqNumMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[510] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60909,41 +61060,41 @@ func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrgMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrgMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSeqNumMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNumMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{510} } -func (x *PatternFlowTcpCtlUrgMetricTag) GetName() string { +func (x *PatternFlowTcpSeqNumMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlUrgMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpSeqNumMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlUrgMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpSeqNumMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A value of 1 indicates that the urgent pointer field is significant. -type PatternFlowTcpCtlUrg struct { +// Sequence number +type PatternFlowTcpSeqNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlUrg_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlUrg_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpSeqNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSeqNum_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -60951,17 +61102,17 @@ type PatternFlowTcpCtlUrg struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlUrgMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpSeqNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlUrg) Reset() { - *x = PatternFlowTcpCtlUrg{} +func (x *PatternFlowTcpSeqNum) Reset() { + *x = PatternFlowTcpSeqNum{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[511] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60969,13 +61120,13 @@ func (x *PatternFlowTcpCtlUrg) Reset() { } } -func (x *PatternFlowTcpCtlUrg) String() string { +func (x *PatternFlowTcpSeqNum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrg) ProtoMessage() {} +func (*PatternFlowTcpSeqNum) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[511] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60987,47 +61138,47 @@ func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrg.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrg) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpSeqNum.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNum) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{511} } -func (x *PatternFlowTcpCtlUrg) GetChoice() PatternFlowTcpCtlUrg_Choice_Enum { +func (x *PatternFlowTcpSeqNum) GetChoice() PatternFlowTcpSeqNum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlUrg_Choice_unspecified + return PatternFlowTcpSeqNum_Choice_unspecified } -func (x *PatternFlowTcpCtlUrg) GetValue() uint32 { +func (x *PatternFlowTcpSeqNum) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlUrg) GetValues() []uint32 { +func (x *PatternFlowTcpSeqNum) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlUrg) GetIncrement() *PatternFlowTcpCtlUrgCounter { +func (x *PatternFlowTcpSeqNum) GetIncrement() *PatternFlowTcpSeqNumCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlUrg) GetDecrement() *PatternFlowTcpCtlUrgCounter { +func (x *PatternFlowTcpSeqNum) GetDecrement() *PatternFlowTcpSeqNumCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag { +func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag { if x != nil { return x.MetricTags } @@ -61035,7 +61186,7 @@ func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag } // integer counter pattern -type PatternFlowTcpCtlAckCounter struct { +type PatternFlowTcpAckNumCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61051,8 +61202,8 @@ type PatternFlowTcpCtlAckCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlAckCounter) Reset() { - *x = PatternFlowTcpCtlAckCounter{} +func (x *PatternFlowTcpAckNumCounter) Reset() { + *x = PatternFlowTcpAckNumCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[512] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61060,13 +61211,13 @@ func (x *PatternFlowTcpCtlAckCounter) Reset() { } } -func (x *PatternFlowTcpCtlAckCounter) String() string { +func (x *PatternFlowTcpAckNumCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAckCounter) ProtoMessage() {} +func (*PatternFlowTcpAckNumCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[512] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61078,26 +61229,26 @@ func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAckCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAckCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpAckNumCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNumCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{512} } -func (x *PatternFlowTcpCtlAckCounter) GetStart() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlAckCounter) GetStep() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -61107,7 +61258,7 @@ func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlAckMetricTag struct { +type PatternFlowTcpAckNumMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61121,12 +61272,12 @@ type PatternFlowTcpCtlAckMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlAckMetricTag) Reset() { - *x = PatternFlowTcpCtlAckMetricTag{} +func (x *PatternFlowTcpAckNumMetricTag) Reset() { + *x = PatternFlowTcpAckNumMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[513] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61134,13 +61285,13 @@ func (x *PatternFlowTcpCtlAckMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlAckMetricTag) String() string { +func (x *PatternFlowTcpAckNumMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAckMetricTag) ProtoMessage() {} +func (*PatternFlowTcpAckNumMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[513] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61152,41 +61303,41 @@ func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAckMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAckMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpAckNumMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNumMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{513} } -func (x *PatternFlowTcpCtlAckMetricTag) GetName() string { +func (x *PatternFlowTcpAckNumMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlAckMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpAckNumMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlAckMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpAckNumMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A value of 1 indicates that the ackknowledgment field is significant. -type PatternFlowTcpCtlAck struct { +// Acknowledgement number +type PatternFlowTcpAckNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlAck_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlAck_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpAckNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpAckNum_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -61194,17 +61345,17 @@ type PatternFlowTcpCtlAck struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlAckMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpAckNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlAck) Reset() { - *x = PatternFlowTcpCtlAck{} +func (x *PatternFlowTcpAckNum) Reset() { + *x = PatternFlowTcpAckNum{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[514] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61212,13 +61363,13 @@ func (x *PatternFlowTcpCtlAck) Reset() { } } -func (x *PatternFlowTcpCtlAck) String() string { +func (x *PatternFlowTcpAckNum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAck) ProtoMessage() {} +func (*PatternFlowTcpAckNum) ProtoMessage() {} -func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[514] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61230,47 +61381,47 @@ func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAck.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAck) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpAckNum.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNum) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{514} } -func (x *PatternFlowTcpCtlAck) GetChoice() PatternFlowTcpCtlAck_Choice_Enum { +func (x *PatternFlowTcpAckNum) GetChoice() PatternFlowTcpAckNum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlAck_Choice_unspecified + return PatternFlowTcpAckNum_Choice_unspecified } -func (x *PatternFlowTcpCtlAck) GetValue() uint32 { +func (x *PatternFlowTcpAckNum) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlAck) GetValues() []uint32 { +func (x *PatternFlowTcpAckNum) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlAck) GetIncrement() *PatternFlowTcpCtlAckCounter { +func (x *PatternFlowTcpAckNum) GetIncrement() *PatternFlowTcpAckNumCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlAck) GetDecrement() *PatternFlowTcpCtlAckCounter { +func (x *PatternFlowTcpAckNum) GetDecrement() *PatternFlowTcpAckNumCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag { +func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag { if x != nil { return x.MetricTags } @@ -61278,7 +61429,7 @@ func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag } // integer counter pattern -type PatternFlowTcpCtlPshCounter struct { +type PatternFlowTcpDataOffsetCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61294,8 +61445,8 @@ type PatternFlowTcpCtlPshCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlPshCounter) Reset() { - *x = PatternFlowTcpCtlPshCounter{} +func (x *PatternFlowTcpDataOffsetCounter) Reset() { + *x = PatternFlowTcpDataOffsetCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[515] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61303,13 +61454,13 @@ func (x *PatternFlowTcpCtlPshCounter) Reset() { } } -func (x *PatternFlowTcpCtlPshCounter) String() string { +func (x *PatternFlowTcpDataOffsetCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPshCounter) ProtoMessage() {} +func (*PatternFlowTcpDataOffsetCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[515] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61321,26 +61472,26 @@ func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPshCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPshCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDataOffsetCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffsetCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{515} } -func (x *PatternFlowTcpCtlPshCounter) GetStart() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlPshCounter) GetStep() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -61350,7 +61501,7 @@ func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlPshMetricTag struct { +type PatternFlowTcpDataOffsetMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61364,12 +61515,12 @@ type PatternFlowTcpCtlPshMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlPshMetricTag) Reset() { - *x = PatternFlowTcpCtlPshMetricTag{} +func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { + *x = PatternFlowTcpDataOffsetMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[516] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61377,13 +61528,13 @@ func (x *PatternFlowTcpCtlPshMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlPshMetricTag) String() string { +func (x *PatternFlowTcpDataOffsetMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPshMetricTag) ProtoMessage() {} +func (*PatternFlowTcpDataOffsetMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[516] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61395,41 +61546,41 @@ func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPshMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPshMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDataOffsetMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffsetMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{516} } -func (x *PatternFlowTcpCtlPshMetricTag) GetName() string { +func (x *PatternFlowTcpDataOffsetMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlPshMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpDataOffsetMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlPshMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpDataOffsetMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Asks to push the buffered data to the receiving application. -type PatternFlowTcpCtlPsh struct { +// The number of 32 bit words in the TCP header. This indicates where the data begins. +type PatternFlowTcpDataOffset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlPsh_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlPsh_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpDataOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDataOffset_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -61437,17 +61588,17 @@ type PatternFlowTcpCtlPsh struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlPshMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpDataOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlPsh) Reset() { - *x = PatternFlowTcpCtlPsh{} +func (x *PatternFlowTcpDataOffset) Reset() { + *x = PatternFlowTcpDataOffset{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[517] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61455,13 +61606,13 @@ func (x *PatternFlowTcpCtlPsh) Reset() { } } -func (x *PatternFlowTcpCtlPsh) String() string { +func (x *PatternFlowTcpDataOffset) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPsh) ProtoMessage() {} +func (*PatternFlowTcpDataOffset) ProtoMessage() {} -func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[517] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61473,47 +61624,47 @@ func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPsh.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPsh) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpDataOffset.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffset) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{517} } -func (x *PatternFlowTcpCtlPsh) GetChoice() PatternFlowTcpCtlPsh_Choice_Enum { +func (x *PatternFlowTcpDataOffset) GetChoice() PatternFlowTcpDataOffset_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlPsh_Choice_unspecified + return PatternFlowTcpDataOffset_Choice_unspecified } -func (x *PatternFlowTcpCtlPsh) GetValue() uint32 { +func (x *PatternFlowTcpDataOffset) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlPsh) GetValues() []uint32 { +func (x *PatternFlowTcpDataOffset) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlPsh) GetIncrement() *PatternFlowTcpCtlPshCounter { +func (x *PatternFlowTcpDataOffset) GetIncrement() *PatternFlowTcpDataOffsetCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlPsh) GetDecrement() *PatternFlowTcpCtlPshCounter { +func (x *PatternFlowTcpDataOffset) GetDecrement() *PatternFlowTcpDataOffsetCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag { +func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMetricTag { if x != nil { return x.MetricTags } @@ -61521,7 +61672,7 @@ func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag } // integer counter pattern -type PatternFlowTcpCtlRstCounter struct { +type PatternFlowTcpEcnNsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61537,8 +61688,8 @@ type PatternFlowTcpCtlRstCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlRstCounter) Reset() { - *x = PatternFlowTcpCtlRstCounter{} +func (x *PatternFlowTcpEcnNsCounter) Reset() { + *x = PatternFlowTcpEcnNsCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[518] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61546,13 +61697,13 @@ func (x *PatternFlowTcpCtlRstCounter) Reset() { } } -func (x *PatternFlowTcpCtlRstCounter) String() string { +func (x *PatternFlowTcpEcnNsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRstCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnNsCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[518] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61564,26 +61715,26 @@ func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRstCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnNsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNsCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{518} } -func (x *PatternFlowTcpCtlRstCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlRstCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -61593,7 +61744,7 @@ func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlRstMetricTag struct { +type PatternFlowTcpEcnNsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61611,8 +61762,8 @@ type PatternFlowTcpCtlRstMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlRstMetricTag) Reset() { - *x = PatternFlowTcpCtlRstMetricTag{} +func (x *PatternFlowTcpEcnNsMetricTag) Reset() { + *x = PatternFlowTcpEcnNsMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[519] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61620,13 +61771,13 @@ func (x *PatternFlowTcpCtlRstMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlRstMetricTag) String() string { +func (x *PatternFlowTcpEcnNsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRstMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnNsMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[519] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61638,41 +61789,41 @@ func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRstMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnNsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNsMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{519} } -func (x *PatternFlowTcpCtlRstMetricTag) GetName() string { +func (x *PatternFlowTcpEcnNsMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlRstMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnNsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlRstMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnNsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reset the connection. -type PatternFlowTcpCtlRst struct { +// Explicit congestion notification, concealment protection. +type PatternFlowTcpEcnNs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlRst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlRst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnNs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnNs_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -61680,17 +61831,17 @@ type PatternFlowTcpCtlRst struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlRstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnNsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlRst) Reset() { - *x = PatternFlowTcpCtlRst{} +func (x *PatternFlowTcpEcnNs) Reset() { + *x = PatternFlowTcpEcnNs{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[520] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61698,13 +61849,13 @@ func (x *PatternFlowTcpCtlRst) Reset() { } } -func (x *PatternFlowTcpCtlRst) String() string { +func (x *PatternFlowTcpEcnNs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRst) ProtoMessage() {} +func (*PatternFlowTcpEcnNs) ProtoMessage() {} -func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[520] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61716,47 +61867,47 @@ func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRst.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRst) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnNs.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNs) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{520} } -func (x *PatternFlowTcpCtlRst) GetChoice() PatternFlowTcpCtlRst_Choice_Enum { +func (x *PatternFlowTcpEcnNs) GetChoice() PatternFlowTcpEcnNs_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlRst_Choice_unspecified + return PatternFlowTcpEcnNs_Choice_unspecified } -func (x *PatternFlowTcpCtlRst) GetValue() uint32 { +func (x *PatternFlowTcpEcnNs) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlRst) GetValues() []uint32 { +func (x *PatternFlowTcpEcnNs) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlRst) GetIncrement() *PatternFlowTcpCtlRstCounter { +func (x *PatternFlowTcpEcnNs) GetIncrement() *PatternFlowTcpEcnNsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlRst) GetDecrement() *PatternFlowTcpCtlRstCounter { +func (x *PatternFlowTcpEcnNs) GetDecrement() *PatternFlowTcpEcnNsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag { +func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { if x != nil { return x.MetricTags } @@ -61764,7 +61915,7 @@ func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag } // integer counter pattern -type PatternFlowTcpCtlSynCounter struct { +type PatternFlowTcpEcnCwrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61780,8 +61931,8 @@ type PatternFlowTcpCtlSynCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlSynCounter) Reset() { - *x = PatternFlowTcpCtlSynCounter{} +func (x *PatternFlowTcpEcnCwrCounter) Reset() { + *x = PatternFlowTcpEcnCwrCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[521] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61789,13 +61940,13 @@ func (x *PatternFlowTcpCtlSynCounter) Reset() { } } -func (x *PatternFlowTcpCtlSynCounter) String() string { +func (x *PatternFlowTcpEcnCwrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSynCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnCwrCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[521] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61807,26 +61958,26 @@ func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSynCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSynCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnCwrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwrCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{521} } -func (x *PatternFlowTcpCtlSynCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlSynCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -61836,7 +61987,7 @@ func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlSynMetricTag struct { +type PatternFlowTcpEcnCwrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -61854,8 +62005,8 @@ type PatternFlowTcpCtlSynMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlSynMetricTag) Reset() { - *x = PatternFlowTcpCtlSynMetricTag{} +func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { + *x = PatternFlowTcpEcnCwrMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[522] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61863,13 +62014,13 @@ func (x *PatternFlowTcpCtlSynMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlSynMetricTag) String() string { +func (x *PatternFlowTcpEcnCwrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSynMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnCwrMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[522] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61881,41 +62032,41 @@ func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSynMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSynMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnCwrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwrMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{522} } -func (x *PatternFlowTcpCtlSynMetricTag) GetName() string { +func (x *PatternFlowTcpEcnCwrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlSynMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnCwrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlSynMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnCwrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Synchronize sequenece numbers. -type PatternFlowTcpCtlSyn struct { +// Explicit congestion notification, congestion window reduced. +type PatternFlowTcpEcnCwr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlSyn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlSyn_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnCwr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnCwr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -61923,17 +62074,17 @@ type PatternFlowTcpCtlSyn struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlSynMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnCwrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlSyn) Reset() { - *x = PatternFlowTcpCtlSyn{} +func (x *PatternFlowTcpEcnCwr) Reset() { + *x = PatternFlowTcpEcnCwr{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[523] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61941,13 +62092,13 @@ func (x *PatternFlowTcpCtlSyn) Reset() { } } -func (x *PatternFlowTcpCtlSyn) String() string { +func (x *PatternFlowTcpEcnCwr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSyn) ProtoMessage() {} +func (*PatternFlowTcpEcnCwr) ProtoMessage() {} -func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[523] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61959,47 +62110,47 @@ func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSyn.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSyn) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnCwr.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwr) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{523} } -func (x *PatternFlowTcpCtlSyn) GetChoice() PatternFlowTcpCtlSyn_Choice_Enum { +func (x *PatternFlowTcpEcnCwr) GetChoice() PatternFlowTcpEcnCwr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlSyn_Choice_unspecified + return PatternFlowTcpEcnCwr_Choice_unspecified } -func (x *PatternFlowTcpCtlSyn) GetValue() uint32 { +func (x *PatternFlowTcpEcnCwr) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlSyn) GetValues() []uint32 { +func (x *PatternFlowTcpEcnCwr) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlSyn) GetIncrement() *PatternFlowTcpCtlSynCounter { +func (x *PatternFlowTcpEcnCwr) GetIncrement() *PatternFlowTcpEcnCwrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlSyn) GetDecrement() *PatternFlowTcpCtlSynCounter { +func (x *PatternFlowTcpEcnCwr) GetDecrement() *PatternFlowTcpEcnCwrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag { +func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag { if x != nil { return x.MetricTags } @@ -62007,7 +62158,7 @@ func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag } // integer counter pattern -type PatternFlowTcpCtlFinCounter struct { +type PatternFlowTcpEcnEchoCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62023,8 +62174,8 @@ type PatternFlowTcpCtlFinCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlFinCounter) Reset() { - *x = PatternFlowTcpCtlFinCounter{} +func (x *PatternFlowTcpEcnEchoCounter) Reset() { + *x = PatternFlowTcpEcnEchoCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[524] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62032,13 +62183,13 @@ func (x *PatternFlowTcpCtlFinCounter) Reset() { } } -func (x *PatternFlowTcpCtlFinCounter) String() string { +func (x *PatternFlowTcpEcnEchoCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFinCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnEchoCounter) ProtoMessage() {} -func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[524] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62050,26 +62201,26 @@ func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFinCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFinCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnEchoCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEchoCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{524} } -func (x *PatternFlowTcpCtlFinCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlFinCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -62079,7 +62230,7 @@ func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpCtlFinMetricTag struct { +type PatternFlowTcpEcnEchoMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62097,8 +62248,8 @@ type PatternFlowTcpCtlFinMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlFinMetricTag) Reset() { - *x = PatternFlowTcpCtlFinMetricTag{} +func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { + *x = PatternFlowTcpEcnEchoMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[525] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62106,13 +62257,13 @@ func (x *PatternFlowTcpCtlFinMetricTag) Reset() { } } -func (x *PatternFlowTcpCtlFinMetricTag) String() string { +func (x *PatternFlowTcpEcnEchoMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFinMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnEchoMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[525] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62124,41 +62275,42 @@ func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFinMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFinMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnEchoMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEchoMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{525} } -func (x *PatternFlowTcpCtlFinMetricTag) GetName() string { +func (x *PatternFlowTcpEcnEchoMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpCtlFinMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnEchoMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlFinMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnEchoMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Last packet from the sender. -type PatternFlowTcpCtlFin struct { +// Explicit congestion notification, echo. 1 indicates the peer is ecn capable. 0 indicates +// that a packet with ipv4.ecn = 11 in the ip header was received during normal transmission. +type PatternFlowTcpEcnEcho struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlFin_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlFin_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnEcho_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnEcho_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -62166,17 +62318,17 @@ type PatternFlowTcpCtlFin struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpCtlFinMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnEchoMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlFin) Reset() { - *x = PatternFlowTcpCtlFin{} +func (x *PatternFlowTcpEcnEcho) Reset() { + *x = PatternFlowTcpEcnEcho{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[526] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62184,13 +62336,13 @@ func (x *PatternFlowTcpCtlFin) Reset() { } } -func (x *PatternFlowTcpCtlFin) String() string { +func (x *PatternFlowTcpEcnEcho) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFin) ProtoMessage() {} +func (*PatternFlowTcpEcnEcho) ProtoMessage() {} -func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[526] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62202,47 +62354,47 @@ func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFin.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFin) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpEcnEcho.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEcho) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{526} } -func (x *PatternFlowTcpCtlFin) GetChoice() PatternFlowTcpCtlFin_Choice_Enum { +func (x *PatternFlowTcpEcnEcho) GetChoice() PatternFlowTcpEcnEcho_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlFin_Choice_unspecified + return PatternFlowTcpEcnEcho_Choice_unspecified } -func (x *PatternFlowTcpCtlFin) GetValue() uint32 { +func (x *PatternFlowTcpEcnEcho) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlFin) GetValues() []uint32 { +func (x *PatternFlowTcpEcnEcho) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlFin) GetIncrement() *PatternFlowTcpCtlFinCounter { +func (x *PatternFlowTcpEcnEcho) GetIncrement() *PatternFlowTcpEcnEchoCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlFin) GetDecrement() *PatternFlowTcpCtlFinCounter { +func (x *PatternFlowTcpEcnEcho) GetDecrement() *PatternFlowTcpEcnEchoCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlFin) GetMetricTags() []*PatternFlowTcpCtlFinMetricTag { +func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTag { if x != nil { return x.MetricTags } @@ -62250,7 +62402,7 @@ func (x *PatternFlowTcpCtlFin) GetMetricTags() []*PatternFlowTcpCtlFinMetricTag } // integer counter pattern -type PatternFlowTcpWindowCounter struct { +type PatternFlowTcpCtlUrgCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62266,8 +62418,8 @@ type PatternFlowTcpWindowCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpWindowCounter) Reset() { - *x = PatternFlowTcpWindowCounter{} +func (x *PatternFlowTcpCtlUrgCounter) Reset() { + *x = PatternFlowTcpCtlUrgCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[527] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62275,13 +62427,13 @@ func (x *PatternFlowTcpWindowCounter) Reset() { } } -func (x *PatternFlowTcpWindowCounter) String() string { +func (x *PatternFlowTcpCtlUrgCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindowCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlUrgCounter) ProtoMessage() {} -func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[527] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62293,26 +62445,26 @@ func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindowCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindowCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlUrgCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrgCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{527} } -func (x *PatternFlowTcpWindowCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpWindowCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -62322,7 +62474,7 @@ func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowTcpWindowMetricTag struct { +type PatternFlowTcpCtlUrgMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62336,12 +62488,12 @@ type PatternFlowTcpWindowMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpWindowMetricTag) Reset() { - *x = PatternFlowTcpWindowMetricTag{} +func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { + *x = PatternFlowTcpCtlUrgMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[528] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62349,13 +62501,13 @@ func (x *PatternFlowTcpWindowMetricTag) Reset() { } } -func (x *PatternFlowTcpWindowMetricTag) String() string { +func (x *PatternFlowTcpCtlUrgMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindowMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlUrgMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[528] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62367,41 +62519,41 @@ func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindowMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindowMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlUrgMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrgMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{528} } -func (x *PatternFlowTcpWindowMetricTag) GetName() string { +func (x *PatternFlowTcpCtlUrgMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowTcpWindowMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlUrgMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpWindowMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlUrgMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tcp connection window. -type PatternFlowTcpWindow struct { +// A value of 1 indicates that the urgent pointer field is significant. +type PatternFlowTcpCtlUrg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpWindow_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpWindow_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlUrg_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlUrg_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -62409,17 +62561,17 @@ type PatternFlowTcpWindow struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowTcpWindowMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlUrgMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpWindow) Reset() { - *x = PatternFlowTcpWindow{} +func (x *PatternFlowTcpCtlUrg) Reset() { + *x = PatternFlowTcpCtlUrg{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[529] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62427,13 +62579,13 @@ func (x *PatternFlowTcpWindow) Reset() { } } -func (x *PatternFlowTcpWindow) String() string { +func (x *PatternFlowTcpCtlUrg) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindow) ProtoMessage() {} +func (*PatternFlowTcpCtlUrg) ProtoMessage() {} -func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[529] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62445,47 +62597,47 @@ func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindow.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindow) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlUrg.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrg) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{529} } -func (x *PatternFlowTcpWindow) GetChoice() PatternFlowTcpWindow_Choice_Enum { +func (x *PatternFlowTcpCtlUrg) GetChoice() PatternFlowTcpCtlUrg_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpWindow_Choice_unspecified + return PatternFlowTcpCtlUrg_Choice_unspecified } -func (x *PatternFlowTcpWindow) GetValue() uint32 { +func (x *PatternFlowTcpCtlUrg) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpWindow) GetValues() []uint32 { +func (x *PatternFlowTcpCtlUrg) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpWindow) GetIncrement() *PatternFlowTcpWindowCounter { +func (x *PatternFlowTcpCtlUrg) GetIncrement() *PatternFlowTcpCtlUrgCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpWindow) GetDecrement() *PatternFlowTcpWindowCounter { +func (x *PatternFlowTcpCtlUrg) GetDecrement() *PatternFlowTcpCtlUrgCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpWindow) GetMetricTags() []*PatternFlowTcpWindowMetricTag { +func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag { if x != nil { return x.MetricTags } @@ -62493,7 +62645,7 @@ func (x *PatternFlowTcpWindow) GetMetricTags() []*PatternFlowTcpWindowMetricTag } // integer counter pattern -type PatternFlowUdpSrcPortCounter struct { +type PatternFlowTcpCtlAckCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62509,8 +62661,8 @@ type PatternFlowUdpSrcPortCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowUdpSrcPortCounter) Reset() { - *x = PatternFlowUdpSrcPortCounter{} +func (x *PatternFlowTcpCtlAckCounter) Reset() { + *x = PatternFlowTcpCtlAckCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[530] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62518,13 +62670,13 @@ func (x *PatternFlowUdpSrcPortCounter) Reset() { } } -func (x *PatternFlowUdpSrcPortCounter) String() string { +func (x *PatternFlowTcpCtlAckCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPortCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlAckCounter) ProtoMessage() {} -func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[530] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62536,26 +62688,26 @@ func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPortCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlAckCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAckCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{530} } -func (x *PatternFlowUdpSrcPortCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowUdpSrcPortCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -62565,7 +62717,7 @@ func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowUdpSrcPortMetricTag struct { +type PatternFlowTcpCtlAckMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62579,12 +62731,12 @@ type PatternFlowUdpSrcPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpSrcPortMetricTag) Reset() { - *x = PatternFlowUdpSrcPortMetricTag{} +func (x *PatternFlowTcpCtlAckMetricTag) Reset() { + *x = PatternFlowTcpCtlAckMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[531] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62592,13 +62744,13 @@ func (x *PatternFlowUdpSrcPortMetricTag) Reset() { } } -func (x *PatternFlowUdpSrcPortMetricTag) String() string { +func (x *PatternFlowTcpCtlAckMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPortMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlAckMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[531] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62610,41 +62762,41 @@ func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPortMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlAckMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAckMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{531} } -func (x *PatternFlowUdpSrcPortMetricTag) GetName() string { +func (x *PatternFlowTcpCtlAckMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowUdpSrcPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlAckMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpSrcPortMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlAckMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source port -type PatternFlowUdpSrcPort struct { +// A value of 1 indicates that the ackknowledgment field is significant. +type PatternFlowTcpCtlAck struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlAck_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlAck_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -62652,17 +62804,17 @@ type PatternFlowUdpSrcPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowUdpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlAckMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpSrcPort) Reset() { - *x = PatternFlowUdpSrcPort{} +func (x *PatternFlowTcpCtlAck) Reset() { + *x = PatternFlowTcpCtlAck{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[532] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62670,13 +62822,13 @@ func (x *PatternFlowUdpSrcPort) Reset() { } } -func (x *PatternFlowUdpSrcPort) String() string { +func (x *PatternFlowTcpCtlAck) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPort) ProtoMessage() {} +func (*PatternFlowTcpCtlAck) ProtoMessage() {} -func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[532] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62688,47 +62840,47 @@ func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPort.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPort) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlAck.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAck) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{532} } -func (x *PatternFlowUdpSrcPort) GetChoice() PatternFlowUdpSrcPort_Choice_Enum { +func (x *PatternFlowTcpCtlAck) GetChoice() PatternFlowTcpCtlAck_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpSrcPort_Choice_unspecified + return PatternFlowTcpCtlAck_Choice_unspecified } -func (x *PatternFlowUdpSrcPort) GetValue() uint32 { +func (x *PatternFlowTcpCtlAck) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowUdpSrcPort) GetValues() []uint32 { +func (x *PatternFlowTcpCtlAck) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpSrcPort) GetIncrement() *PatternFlowUdpSrcPortCounter { +func (x *PatternFlowTcpCtlAck) GetIncrement() *PatternFlowTcpCtlAckCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpSrcPort) GetDecrement() *PatternFlowUdpSrcPortCounter { +func (x *PatternFlowTcpCtlAck) GetDecrement() *PatternFlowTcpCtlAckCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpSrcPort) GetMetricTags() []*PatternFlowUdpSrcPortMetricTag { +func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag { if x != nil { return x.MetricTags } @@ -62736,7 +62888,7 @@ func (x *PatternFlowUdpSrcPort) GetMetricTags() []*PatternFlowUdpSrcPortMetricTa } // integer counter pattern -type PatternFlowUdpDstPortCounter struct { +type PatternFlowTcpCtlPshCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62752,8 +62904,8 @@ type PatternFlowUdpDstPortCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowUdpDstPortCounter) Reset() { - *x = PatternFlowUdpDstPortCounter{} +func (x *PatternFlowTcpCtlPshCounter) Reset() { + *x = PatternFlowTcpCtlPshCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[533] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62761,13 +62913,13 @@ func (x *PatternFlowUdpDstPortCounter) Reset() { } } -func (x *PatternFlowUdpDstPortCounter) String() string { +func (x *PatternFlowTcpCtlPshCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPortCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlPshCounter) ProtoMessage() {} -func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[533] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62779,26 +62931,26 @@ func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPortCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlPshCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPshCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{533} } -func (x *PatternFlowUdpDstPortCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowUdpDstPortCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -62808,7 +62960,7 @@ func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowUdpDstPortMetricTag struct { +type PatternFlowTcpCtlPshMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62822,12 +62974,12 @@ type PatternFlowUdpDstPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpDstPortMetricTag) Reset() { - *x = PatternFlowUdpDstPortMetricTag{} +func (x *PatternFlowTcpCtlPshMetricTag) Reset() { + *x = PatternFlowTcpCtlPshMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[534] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62835,13 +62987,13 @@ func (x *PatternFlowUdpDstPortMetricTag) Reset() { } } -func (x *PatternFlowUdpDstPortMetricTag) String() string { +func (x *PatternFlowTcpCtlPshMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPortMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlPshMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[534] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62853,41 +63005,41 @@ func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPortMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlPshMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPshMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{534} } -func (x *PatternFlowUdpDstPortMetricTag) GetName() string { +func (x *PatternFlowTcpCtlPshMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowUdpDstPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlPshMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpDstPortMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlPshMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination port -type PatternFlowUdpDstPort struct { +// Asks to push the buffered data to the receiving application. +type PatternFlowTcpCtlPsh struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlPsh_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlPsh_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -62895,17 +63047,17 @@ type PatternFlowUdpDstPort struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowUdpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlPshMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpDstPort) Reset() { - *x = PatternFlowUdpDstPort{} +func (x *PatternFlowTcpCtlPsh) Reset() { + *x = PatternFlowTcpCtlPsh{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[535] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62913,13 +63065,13 @@ func (x *PatternFlowUdpDstPort) Reset() { } } -func (x *PatternFlowUdpDstPort) String() string { +func (x *PatternFlowTcpCtlPsh) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPort) ProtoMessage() {} +func (*PatternFlowTcpCtlPsh) ProtoMessage() {} -func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[535] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -62931,47 +63083,47 @@ func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPort.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPort) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlPsh.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPsh) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{535} } -func (x *PatternFlowUdpDstPort) GetChoice() PatternFlowUdpDstPort_Choice_Enum { +func (x *PatternFlowTcpCtlPsh) GetChoice() PatternFlowTcpCtlPsh_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpDstPort_Choice_unspecified + return PatternFlowTcpCtlPsh_Choice_unspecified } -func (x *PatternFlowUdpDstPort) GetValue() uint32 { +func (x *PatternFlowTcpCtlPsh) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowUdpDstPort) GetValues() []uint32 { +func (x *PatternFlowTcpCtlPsh) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpDstPort) GetIncrement() *PatternFlowUdpDstPortCounter { +func (x *PatternFlowTcpCtlPsh) GetIncrement() *PatternFlowTcpCtlPshCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpDstPort) GetDecrement() *PatternFlowUdpDstPortCounter { +func (x *PatternFlowTcpCtlPsh) GetDecrement() *PatternFlowTcpCtlPshCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpDstPort) GetMetricTags() []*PatternFlowUdpDstPortMetricTag { +func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag { if x != nil { return x.MetricTags } @@ -62979,7 +63131,7 @@ func (x *PatternFlowUdpDstPort) GetMetricTags() []*PatternFlowUdpDstPortMetricTa } // integer counter pattern -type PatternFlowUdpLengthCounter struct { +type PatternFlowTcpCtlRstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -62995,8 +63147,8 @@ type PatternFlowUdpLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowUdpLengthCounter) Reset() { - *x = PatternFlowUdpLengthCounter{} +func (x *PatternFlowTcpCtlRstCounter) Reset() { + *x = PatternFlowTcpCtlRstCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[536] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63004,13 +63156,13 @@ func (x *PatternFlowUdpLengthCounter) Reset() { } } -func (x *PatternFlowUdpLengthCounter) String() string { +func (x *PatternFlowTcpCtlRstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLengthCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlRstCounter) ProtoMessage() {} -func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[536] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63022,26 +63174,26 @@ func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlRstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRstCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{536} } -func (x *PatternFlowUdpLengthCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowUdpLengthCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -63051,7 +63203,7 @@ func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowUdpLengthMetricTag struct { +type PatternFlowTcpCtlRstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63065,12 +63217,12 @@ type PatternFlowUdpLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpLengthMetricTag) Reset() { - *x = PatternFlowUdpLengthMetricTag{} +func (x *PatternFlowTcpCtlRstMetricTag) Reset() { + *x = PatternFlowTcpCtlRstMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[537] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63078,13 +63230,13 @@ func (x *PatternFlowUdpLengthMetricTag) Reset() { } } -func (x *PatternFlowUdpLengthMetricTag) String() string { +func (x *PatternFlowTcpCtlRstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLengthMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlRstMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[537] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63096,41 +63248,41 @@ func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlRstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRstMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{537} } -func (x *PatternFlowUdpLengthMetricTag) GetName() string { +func (x *PatternFlowTcpCtlRstMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowUdpLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlRstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlRstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length -type PatternFlowUdpLength struct { +// Reset the connection. +type PatternFlowTcpCtlRst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlRst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlRst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -63138,17 +63290,17 @@ type PatternFlowUdpLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowUdpLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlRstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpLength) Reset() { - *x = PatternFlowUdpLength{} +func (x *PatternFlowTcpCtlRst) Reset() { + *x = PatternFlowTcpCtlRst{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[538] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63156,13 +63308,13 @@ func (x *PatternFlowUdpLength) Reset() { } } -func (x *PatternFlowUdpLength) String() string { +func (x *PatternFlowTcpCtlRst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLength) ProtoMessage() {} +func (*PatternFlowTcpCtlRst) ProtoMessage() {} -func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[538] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -63174,124 +63326,55 @@ func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLength.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowTcpCtlRst.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRst) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{538} } -func (x *PatternFlowUdpLength) GetChoice() PatternFlowUdpLength_Choice_Enum { +func (x *PatternFlowTcpCtlRst) GetChoice() PatternFlowTcpCtlRst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpLength_Choice_unspecified + return PatternFlowTcpCtlRst_Choice_unspecified } -func (x *PatternFlowUdpLength) GetValue() uint32 { +func (x *PatternFlowTcpCtlRst) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowUdpLength) GetValues() []uint32 { +func (x *PatternFlowTcpCtlRst) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpLength) GetIncrement() *PatternFlowUdpLengthCounter { +func (x *PatternFlowTcpCtlRst) GetIncrement() *PatternFlowTcpCtlRstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpLength) GetDecrement() *PatternFlowUdpLengthCounter { +func (x *PatternFlowTcpCtlRst) GetDecrement() *PatternFlowTcpCtlRstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpLength) GetMetricTags() []*PatternFlowUdpLengthMetricTag { +func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag { if x != nil { return x.MetricTags } return nil } -// UDP checksum -type PatternFlowUdpChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowUdpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowUdpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowUdpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowUdpChecksum) Reset() { - *x = PatternFlowUdpChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[539] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowUdpChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowUdpChecksum) ProtoMessage() {} - -func (x *PatternFlowUdpChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[539] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowUdpChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539} -} - -func (x *PatternFlowUdpChecksum) GetChoice() PatternFlowUdpChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowUdpChecksum_Choice_unspecified -} - -func (x *PatternFlowUdpChecksum) GetGenerated() PatternFlowUdpChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowUdpChecksum_Generated_unspecified -} - -func (x *PatternFlowUdpChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowGreChecksumPresentCounter struct { +type PatternFlowTcpCtlSynCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63307,23 +63390,23 @@ type PatternFlowGreChecksumPresentCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreChecksumPresentCounter) Reset() { - *x = PatternFlowGreChecksumPresentCounter{} +func (x *PatternFlowTcpCtlSynCounter) Reset() { + *x = PatternFlowTcpCtlSynCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[540] + mi := &file_otg_proto_msgTypes[539] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresentCounter) String() string { +func (x *PatternFlowTcpCtlSynCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresentCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlSynCounter) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[540] +func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[539] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63334,26 +63417,26 @@ func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresentCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresentCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{540} +// Deprecated: Use PatternFlowTcpCtlSynCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSynCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{539} } -func (x *PatternFlowGreChecksumPresentCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreChecksumPresentCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -63363,7 +63446,7 @@ func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreChecksumPresentMetricTag struct { +type PatternFlowTcpCtlSynMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63381,23 +63464,23 @@ type PatternFlowGreChecksumPresentMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreChecksumPresentMetricTag) Reset() { - *x = PatternFlowGreChecksumPresentMetricTag{} +func (x *PatternFlowTcpCtlSynMetricTag) Reset() { + *x = PatternFlowTcpCtlSynMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[541] + mi := &file_otg_proto_msgTypes[540] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresentMetricTag) String() string { +func (x *PatternFlowTcpCtlSynMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresentMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlSynMetricTag) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[541] +func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[540] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63408,41 +63491,41 @@ func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresentMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresentMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{541} +// Deprecated: Use PatternFlowTcpCtlSynMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSynMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{540} } -func (x *PatternFlowGreChecksumPresentMetricTag) GetName() string { +func (x *PatternFlowTcpCtlSynMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreChecksumPresentMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlSynMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreChecksumPresentMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlSynMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Checksum present bit -type PatternFlowGreChecksumPresent struct { +// Synchronize sequenece numbers. +type PatternFlowTcpCtlSyn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreChecksumPresent_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksumPresent_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlSyn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlSyn_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -63450,32 +63533,32 @@ type PatternFlowGreChecksumPresent struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreChecksumPresentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlSynMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreChecksumPresent) Reset() { - *x = PatternFlowGreChecksumPresent{} +func (x *PatternFlowTcpCtlSyn) Reset() { + *x = PatternFlowTcpCtlSyn{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[542] + mi := &file_otg_proto_msgTypes[541] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresent) String() string { +func (x *PatternFlowTcpCtlSyn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresent) ProtoMessage() {} +func (*PatternFlowTcpCtlSyn) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[542] +func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[541] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63486,47 +63569,47 @@ func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresent.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresent) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{542} +// Deprecated: Use PatternFlowTcpCtlSyn.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSyn) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{541} } -func (x *PatternFlowGreChecksumPresent) GetChoice() PatternFlowGreChecksumPresent_Choice_Enum { +func (x *PatternFlowTcpCtlSyn) GetChoice() PatternFlowTcpCtlSyn_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreChecksumPresent_Choice_unspecified + return PatternFlowTcpCtlSyn_Choice_unspecified } -func (x *PatternFlowGreChecksumPresent) GetValue() uint32 { +func (x *PatternFlowTcpCtlSyn) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreChecksumPresent) GetValues() []uint32 { +func (x *PatternFlowTcpCtlSyn) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreChecksumPresent) GetIncrement() *PatternFlowGreChecksumPresentCounter { +func (x *PatternFlowTcpCtlSyn) GetIncrement() *PatternFlowTcpCtlSynCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreChecksumPresent) GetDecrement() *PatternFlowGreChecksumPresentCounter { +func (x *PatternFlowTcpCtlSyn) GetDecrement() *PatternFlowTcpCtlSynCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksumPresentMetricTag { +func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag { if x != nil { return x.MetricTags } @@ -63534,7 +63617,7 @@ func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksu } // integer counter pattern -type PatternFlowGreReserved0Counter struct { +type PatternFlowTcpCtlFinCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63550,23 +63633,23 @@ type PatternFlowGreReserved0Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreReserved0Counter) Reset() { - *x = PatternFlowGreReserved0Counter{} +func (x *PatternFlowTcpCtlFinCounter) Reset() { + *x = PatternFlowTcpCtlFinCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[543] + mi := &file_otg_proto_msgTypes[542] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0Counter) String() string { +func (x *PatternFlowTcpCtlFinCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0Counter) ProtoMessage() {} +func (*PatternFlowTcpCtlFinCounter) ProtoMessage() {} -func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[543] +func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[542] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63577,26 +63660,26 @@ func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{543} +// Deprecated: Use PatternFlowTcpCtlFinCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFinCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{542} } -func (x *PatternFlowGreReserved0Counter) GetStart() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreReserved0Counter) GetStep() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -63606,7 +63689,7 @@ func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreReserved0MetricTag struct { +type PatternFlowTcpCtlFinMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63620,27 +63703,27 @@ type PatternFlowGreReserved0MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 12 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreReserved0MetricTag) Reset() { - *x = PatternFlowGreReserved0MetricTag{} +func (x *PatternFlowTcpCtlFinMetricTag) Reset() { + *x = PatternFlowTcpCtlFinMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[544] + mi := &file_otg_proto_msgTypes[543] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0MetricTag) String() string { +func (x *PatternFlowTcpCtlFinMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0MetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlFinMetricTag) ProtoMessage() {} -func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[544] +func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[543] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63651,41 +63734,41 @@ func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{544} +// Deprecated: Use PatternFlowTcpCtlFinMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFinMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{543} } -func (x *PatternFlowGreReserved0MetricTag) GetName() string { +func (x *PatternFlowTcpCtlFinMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreReserved0MetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlFinMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreReserved0MetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlFinMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved bits -type PatternFlowGreReserved0 struct { +// Last packet from the sender. +type PatternFlowTcpCtlFin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved0_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlFin_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlFin_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -63693,32 +63776,32 @@ type PatternFlowGreReserved0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlFinMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreReserved0) Reset() { - *x = PatternFlowGreReserved0{} +func (x *PatternFlowTcpCtlFin) Reset() { + *x = PatternFlowTcpCtlFin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[545] + mi := &file_otg_proto_msgTypes[544] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0) String() string { +func (x *PatternFlowTcpCtlFin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0) ProtoMessage() {} +func (*PatternFlowTcpCtlFin) ProtoMessage() {} -func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[545] +func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[544] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63729,47 +63812,47 @@ func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{545} +// Deprecated: Use PatternFlowTcpCtlFin.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{544} } -func (x *PatternFlowGreReserved0) GetChoice() PatternFlowGreReserved0_Choice_Enum { +func (x *PatternFlowTcpCtlFin) GetChoice() PatternFlowTcpCtlFin_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreReserved0_Choice_unspecified + return PatternFlowTcpCtlFin_Choice_unspecified } -func (x *PatternFlowGreReserved0) GetValue() uint32 { +func (x *PatternFlowTcpCtlFin) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreReserved0) GetValues() []uint32 { +func (x *PatternFlowTcpCtlFin) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreReserved0) GetIncrement() *PatternFlowGreReserved0Counter { +func (x *PatternFlowTcpCtlFin) GetIncrement() *PatternFlowTcpCtlFinCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreReserved0) GetDecrement() *PatternFlowGreReserved0Counter { +func (x *PatternFlowTcpCtlFin) GetDecrement() *PatternFlowTcpCtlFinCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreReserved0) GetMetricTags() []*PatternFlowGreReserved0MetricTag { +func (x *PatternFlowTcpCtlFin) GetMetricTags() []*PatternFlowTcpCtlFinMetricTag { if x != nil { return x.MetricTags } @@ -63777,7 +63860,7 @@ func (x *PatternFlowGreReserved0) GetMetricTags() []*PatternFlowGreReserved0Metr } // integer counter pattern -type PatternFlowGreVersionCounter struct { +type PatternFlowTcpWindowCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63793,23 +63876,23 @@ type PatternFlowGreVersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreVersionCounter) Reset() { - *x = PatternFlowGreVersionCounter{} +func (x *PatternFlowTcpWindowCounter) Reset() { + *x = PatternFlowTcpWindowCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[546] + mi := &file_otg_proto_msgTypes[545] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersionCounter) String() string { +func (x *PatternFlowTcpWindowCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersionCounter) ProtoMessage() {} +func (*PatternFlowTcpWindowCounter) ProtoMessage() {} -func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[546] +func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[545] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63820,26 +63903,26 @@ func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{546} +// Deprecated: Use PatternFlowTcpWindowCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindowCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{545} } -func (x *PatternFlowGreVersionCounter) GetStart() uint32 { +func (x *PatternFlowTcpWindowCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreVersionCounter) GetStep() uint32 { +func (x *PatternFlowTcpWindowCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreVersionCounter) GetCount() uint32 { +func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -63849,7 +63932,7 @@ func (x *PatternFlowGreVersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreVersionMetricTag struct { +type PatternFlowTcpWindowMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -63863,27 +63946,27 @@ type PatternFlowGreVersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreVersionMetricTag) Reset() { - *x = PatternFlowGreVersionMetricTag{} +func (x *PatternFlowTcpWindowMetricTag) Reset() { + *x = PatternFlowTcpWindowMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[547] + mi := &file_otg_proto_msgTypes[546] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersionMetricTag) String() string { +func (x *PatternFlowTcpWindowMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersionMetricTag) ProtoMessage() {} +func (*PatternFlowTcpWindowMetricTag) ProtoMessage() {} -func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[547] +func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[546] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63894,41 +63977,41 @@ func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{547} +// Deprecated: Use PatternFlowTcpWindowMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindowMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{546} } -func (x *PatternFlowGreVersionMetricTag) GetName() string { +func (x *PatternFlowTcpWindowMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreVersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpWindowMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreVersionMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpWindowMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// GRE version number -type PatternFlowGreVersion struct { +// Tcp connection window. +type PatternFlowTcpWindow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreVersion_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpWindow_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpWindow_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -63936,32 +64019,32 @@ type PatternFlowGreVersion struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreVersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpWindowMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreVersion) Reset() { - *x = PatternFlowGreVersion{} +func (x *PatternFlowTcpWindow) Reset() { + *x = PatternFlowTcpWindow{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[548] + mi := &file_otg_proto_msgTypes[547] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersion) String() string { +func (x *PatternFlowTcpWindow) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersion) ProtoMessage() {} +func (*PatternFlowTcpWindow) ProtoMessage() {} -func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[548] +func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[547] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63972,47 +64055,47 @@ func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersion.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersion) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{548} +// Deprecated: Use PatternFlowTcpWindow.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindow) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{547} } -func (x *PatternFlowGreVersion) GetChoice() PatternFlowGreVersion_Choice_Enum { +func (x *PatternFlowTcpWindow) GetChoice() PatternFlowTcpWindow_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreVersion_Choice_unspecified + return PatternFlowTcpWindow_Choice_unspecified } -func (x *PatternFlowGreVersion) GetValue() uint32 { +func (x *PatternFlowTcpWindow) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreVersion) GetValues() []uint32 { +func (x *PatternFlowTcpWindow) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreVersion) GetIncrement() *PatternFlowGreVersionCounter { +func (x *PatternFlowTcpWindow) GetIncrement() *PatternFlowTcpWindowCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreVersion) GetDecrement() *PatternFlowGreVersionCounter { +func (x *PatternFlowTcpWindow) GetDecrement() *PatternFlowTcpWindowCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreVersion) GetMetricTags() []*PatternFlowGreVersionMetricTag { +func (x *PatternFlowTcpWindow) GetMetricTags() []*PatternFlowTcpWindowMetricTag { if x != nil { return x.MetricTags } @@ -64020,13 +64103,13 @@ func (x *PatternFlowGreVersion) GetMetricTags() []*PatternFlowGreVersionMetricTa } // integer counter pattern -type PatternFlowGreProtocolCounter struct { +type PatternFlowUdpSrcPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2048 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -64036,23 +64119,23 @@ type PatternFlowGreProtocolCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreProtocolCounter) Reset() { - *x = PatternFlowGreProtocolCounter{} +func (x *PatternFlowUdpSrcPortCounter) Reset() { + *x = PatternFlowUdpSrcPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[549] + mi := &file_otg_proto_msgTypes[548] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocolCounter) String() string { +func (x *PatternFlowUdpSrcPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocolCounter) ProtoMessage() {} +func (*PatternFlowUdpSrcPortCounter) ProtoMessage() {} -func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[549] +func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[548] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64063,26 +64146,26 @@ func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocolCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocolCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{549} +// Deprecated: Use PatternFlowUdpSrcPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPortCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{548} } -func (x *PatternFlowGreProtocolCounter) GetStart() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreProtocolCounter) GetStep() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -64092,7 +64175,7 @@ func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreProtocolMetricTag struct { +type PatternFlowUdpSrcPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64110,23 +64193,23 @@ type PatternFlowGreProtocolMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreProtocolMetricTag) Reset() { - *x = PatternFlowGreProtocolMetricTag{} +func (x *PatternFlowUdpSrcPortMetricTag) Reset() { + *x = PatternFlowUdpSrcPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[550] + mi := &file_otg_proto_msgTypes[549] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocolMetricTag) String() string { +func (x *PatternFlowUdpSrcPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocolMetricTag) ProtoMessage() {} +func (*PatternFlowUdpSrcPortMetricTag) ProtoMessage() {} -func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[550] +func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[549] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64137,74 +64220,74 @@ func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocolMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocolMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{550} +// Deprecated: Use PatternFlowUdpSrcPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPortMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{549} } -func (x *PatternFlowGreProtocolMetricTag) GetName() string { +func (x *PatternFlowUdpSrcPortMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreProtocolMetricTag) GetOffset() uint32 { +func (x *PatternFlowUdpSrcPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreProtocolMetricTag) GetLength() uint32 { +func (x *PatternFlowUdpSrcPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol type of encapsulated payload -type PatternFlowGreProtocol struct { +// Source port +type PatternFlowUdpSrcPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreProtocol_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2048 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2048] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreProtocolMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreProtocol) Reset() { - *x = PatternFlowGreProtocol{} +func (x *PatternFlowUdpSrcPort) Reset() { + *x = PatternFlowUdpSrcPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[551] + mi := &file_otg_proto_msgTypes[550] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocol) String() string { +func (x *PatternFlowUdpSrcPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocol) ProtoMessage() {} +func (*PatternFlowUdpSrcPort) ProtoMessage() {} -func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[551] +func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[550] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64215,125 +64298,55 @@ func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocol.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{551} +// Deprecated: Use PatternFlowUdpSrcPort.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{550} } -func (x *PatternFlowGreProtocol) GetChoice() PatternFlowGreProtocol_Choice_Enum { +func (x *PatternFlowUdpSrcPort) GetChoice() PatternFlowUdpSrcPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreProtocol_Choice_unspecified + return PatternFlowUdpSrcPort_Choice_unspecified } -func (x *PatternFlowGreProtocol) GetValue() uint32 { +func (x *PatternFlowUdpSrcPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreProtocol) GetValues() []uint32 { +func (x *PatternFlowUdpSrcPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreProtocol) GetIncrement() *PatternFlowGreProtocolCounter { +func (x *PatternFlowUdpSrcPort) GetIncrement() *PatternFlowUdpSrcPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreProtocol) GetDecrement() *PatternFlowGreProtocolCounter { +func (x *PatternFlowUdpSrcPort) GetDecrement() *PatternFlowUdpSrcPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreProtocol) GetMetricTags() []*PatternFlowGreProtocolMetricTag { +func (x *PatternFlowUdpSrcPort) GetMetricTags() []*PatternFlowUdpSrcPortMetricTag { if x != nil { return x.MetricTags } return nil } -// Optional checksum of GRE header and payload. Only present if the checksum_present -// bit is set. -type PatternFlowGreChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowGreChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowGreChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowGreChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowGreChecksum) Reset() { - *x = PatternFlowGreChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[552] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowGreChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowGreChecksum) ProtoMessage() {} - -func (x *PatternFlowGreChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[552] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowGreChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552} -} - -func (x *PatternFlowGreChecksum) GetChoice() PatternFlowGreChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowGreChecksum_Choice_unspecified -} - -func (x *PatternFlowGreChecksum) GetGenerated() PatternFlowGreChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowGreChecksum_Generated_unspecified -} - -func (x *PatternFlowGreChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowGreReserved1Counter struct { +type PatternFlowUdpDstPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64349,23 +64362,23 @@ type PatternFlowGreReserved1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreReserved1Counter) Reset() { - *x = PatternFlowGreReserved1Counter{} +func (x *PatternFlowUdpDstPortCounter) Reset() { + *x = PatternFlowUdpDstPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[553] + mi := &file_otg_proto_msgTypes[551] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1Counter) String() string { +func (x *PatternFlowUdpDstPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1Counter) ProtoMessage() {} +func (*PatternFlowUdpDstPortCounter) ProtoMessage() {} -func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[553] +func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[551] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64376,26 +64389,26 @@ func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{553} +// Deprecated: Use PatternFlowUdpDstPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPortCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{551} } -func (x *PatternFlowGreReserved1Counter) GetStart() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreReserved1Counter) GetStep() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -64405,7 +64418,7 @@ func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGreReserved1MetricTag struct { +type PatternFlowUdpDstPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64423,23 +64436,23 @@ type PatternFlowGreReserved1MetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreReserved1MetricTag) Reset() { - *x = PatternFlowGreReserved1MetricTag{} +func (x *PatternFlowUdpDstPortMetricTag) Reset() { + *x = PatternFlowUdpDstPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[554] + mi := &file_otg_proto_msgTypes[552] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1MetricTag) String() string { +func (x *PatternFlowUdpDstPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1MetricTag) ProtoMessage() {} +func (*PatternFlowUdpDstPortMetricTag) ProtoMessage() {} -func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[554] +func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[552] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64450,41 +64463,41 @@ func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{554} +// Deprecated: Use PatternFlowUdpDstPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPortMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{552} } -func (x *PatternFlowGreReserved1MetricTag) GetName() string { +func (x *PatternFlowUdpDstPortMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGreReserved1MetricTag) GetOffset() uint32 { +func (x *PatternFlowUdpDstPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreReserved1MetricTag) GetLength() uint32 { +func (x *PatternFlowUdpDstPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Optional reserved field. Only present if the checksum_present bit is set. -type PatternFlowGreReserved1 struct { +// Destination port +type PatternFlowUdpDstPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -64492,32 +64505,32 @@ type PatternFlowGreReserved1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGreReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreReserved1) Reset() { - *x = PatternFlowGreReserved1{} +func (x *PatternFlowUdpDstPort) Reset() { + *x = PatternFlowUdpDstPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[555] + mi := &file_otg_proto_msgTypes[553] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1) String() string { +func (x *PatternFlowUdpDstPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1) ProtoMessage() {} +func (*PatternFlowUdpDstPort) ProtoMessage() {} -func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[555] +func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[553] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64528,47 +64541,47 @@ func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{555} +// Deprecated: Use PatternFlowUdpDstPort.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{553} } -func (x *PatternFlowGreReserved1) GetChoice() PatternFlowGreReserved1_Choice_Enum { +func (x *PatternFlowUdpDstPort) GetChoice() PatternFlowUdpDstPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreReserved1_Choice_unspecified + return PatternFlowUdpDstPort_Choice_unspecified } -func (x *PatternFlowGreReserved1) GetValue() uint32 { +func (x *PatternFlowUdpDstPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreReserved1) GetValues() []uint32 { +func (x *PatternFlowUdpDstPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreReserved1) GetIncrement() *PatternFlowGreReserved1Counter { +func (x *PatternFlowUdpDstPort) GetIncrement() *PatternFlowUdpDstPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreReserved1) GetDecrement() *PatternFlowGreReserved1Counter { +func (x *PatternFlowUdpDstPort) GetDecrement() *PatternFlowUdpDstPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1MetricTag { +func (x *PatternFlowUdpDstPort) GetMetricTags() []*PatternFlowUdpDstPortMetricTag { if x != nil { return x.MetricTags } @@ -64576,13 +64589,13 @@ func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1Metr } // integer counter pattern -type PatternFlowGtpv1VersionCounter struct { +type PatternFlowUdpLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -64592,23 +64605,23 @@ type PatternFlowGtpv1VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1VersionCounter) Reset() { - *x = PatternFlowGtpv1VersionCounter{} +func (x *PatternFlowUdpLengthCounter) Reset() { + *x = PatternFlowUdpLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[556] + mi := &file_otg_proto_msgTypes[554] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1VersionCounter) String() string { +func (x *PatternFlowUdpLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1VersionCounter) ProtoMessage() {} +func (*PatternFlowUdpLengthCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[556] +func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[554] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64619,26 +64632,26 @@ func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{556} +// Deprecated: Use PatternFlowUdpLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{554} } -func (x *PatternFlowGtpv1VersionCounter) GetStart() uint32 { +func (x *PatternFlowUdpLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1VersionCounter) GetStep() uint32 { +func (x *PatternFlowUdpLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { +func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -64648,7 +64661,7 @@ func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1VersionMetricTag struct { +type PatternFlowUdpLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64662,27 +64675,27 @@ type PatternFlowGtpv1VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1VersionMetricTag) Reset() { - *x = PatternFlowGtpv1VersionMetricTag{} +func (x *PatternFlowUdpLengthMetricTag) Reset() { + *x = PatternFlowUdpLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[557] + mi := &file_otg_proto_msgTypes[555] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1VersionMetricTag) String() string { +func (x *PatternFlowUdpLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1VersionMetricTag) ProtoMessage() {} +func (*PatternFlowUdpLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[557] +func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[555] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64693,74 +64706,74 @@ func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{557} +// Deprecated: Use PatternFlowUdpLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{555} } -func (x *PatternFlowGtpv1VersionMetricTag) GetName() string { +func (x *PatternFlowUdpLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowUdpLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowUdpLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// GTPv1 version -type PatternFlowGtpv1Version struct { +// Length +type PatternFlowUdpLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Version) Reset() { - *x = PatternFlowGtpv1Version{} +func (x *PatternFlowUdpLength) Reset() { + *x = PatternFlowUdpLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[558] + mi := &file_otg_proto_msgTypes[556] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Version) String() string { +func (x *PatternFlowUdpLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Version) ProtoMessage() {} +func (*PatternFlowUdpLength) ProtoMessage() {} -func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[558] +func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[556] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64771,61 +64784,130 @@ func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Version.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{558} +// Deprecated: Use PatternFlowUdpLength.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{556} } -func (x *PatternFlowGtpv1Version) GetChoice() PatternFlowGtpv1Version_Choice_Enum { +func (x *PatternFlowUdpLength) GetChoice() PatternFlowUdpLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Version_Choice_unspecified + return PatternFlowUdpLength_Choice_unspecified } -func (x *PatternFlowGtpv1Version) GetValue() uint32 { +func (x *PatternFlowUdpLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Version) GetValues() []uint32 { +func (x *PatternFlowUdpLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Version) GetIncrement() *PatternFlowGtpv1VersionCounter { +func (x *PatternFlowUdpLength) GetIncrement() *PatternFlowUdpLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Version) GetDecrement() *PatternFlowGtpv1VersionCounter { +func (x *PatternFlowUdpLength) GetDecrement() *PatternFlowUdpLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Version) GetMetricTags() []*PatternFlowGtpv1VersionMetricTag { +func (x *PatternFlowUdpLength) GetMetricTags() []*PatternFlowUdpLengthMetricTag { if x != nil { return x.MetricTags } return nil } +// UDP checksum +type PatternFlowUdpChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowUdpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowUdpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowUdpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowUdpChecksum) Reset() { + *x = PatternFlowUdpChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[557] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowUdpChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowUdpChecksum) ProtoMessage() {} + +func (x *PatternFlowUdpChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[557] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowUdpChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{557} +} + +func (x *PatternFlowUdpChecksum) GetChoice() PatternFlowUdpChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowUdpChecksum_Choice_unspecified +} + +func (x *PatternFlowUdpChecksum) GetGenerated() PatternFlowUdpChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowUdpChecksum_Generated_unspecified +} + +func (x *PatternFlowUdpChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowGtpv1ProtocolTypeCounter struct { +type PatternFlowGreChecksumPresentCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -64835,23 +64917,23 @@ type PatternFlowGtpv1ProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1ProtocolTypeCounter) Reset() { - *x = PatternFlowGtpv1ProtocolTypeCounter{} +func (x *PatternFlowGreChecksumPresentCounter) Reset() { + *x = PatternFlowGreChecksumPresentCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[559] + mi := &file_otg_proto_msgTypes[558] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolTypeCounter) String() string { +func (x *PatternFlowGreChecksumPresentCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowGreChecksumPresentCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[559] +func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[558] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64862,26 +64944,26 @@ func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{559} +// Deprecated: Use PatternFlowGreChecksumPresentCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresentCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{558} } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowGreChecksumPresentCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowGreChecksumPresentCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -64891,7 +64973,7 @@ func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1ProtocolTypeMetricTag struct { +type PatternFlowGreChecksumPresentMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -64909,23 +64991,23 @@ type PatternFlowGtpv1ProtocolTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) Reset() { - *x = PatternFlowGtpv1ProtocolTypeMetricTag{} +func (x *PatternFlowGreChecksumPresentMetricTag) Reset() { + *x = PatternFlowGreChecksumPresentMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[560] + mi := &file_otg_proto_msgTypes[559] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) String() string { +func (x *PatternFlowGreChecksumPresentMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGreChecksumPresentMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[560] +func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[559] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64936,74 +65018,74 @@ func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{560} +// Deprecated: Use PatternFlowGreChecksumPresentMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresentMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{559} } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowGreChecksumPresentMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreChecksumPresentMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGreChecksumPresentMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol type, GTP is 1, GTP' is 0 -type PatternFlowGtpv1ProtocolType struct { +// Checksum present bit +type PatternFlowGreChecksumPresent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1ProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1ProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreChecksumPresent_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksumPresent_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1ProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreChecksumPresentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1ProtocolType) Reset() { - *x = PatternFlowGtpv1ProtocolType{} +func (x *PatternFlowGreChecksumPresent) Reset() { + *x = PatternFlowGreChecksumPresent{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[561] + mi := &file_otg_proto_msgTypes[560] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolType) String() string { +func (x *PatternFlowGreChecksumPresent) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolType) ProtoMessage() {} +func (*PatternFlowGreChecksumPresent) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[561] +func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[560] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65014,47 +65096,47 @@ func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{561} +// Deprecated: Use PatternFlowGreChecksumPresent.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresent) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{560} } -func (x *PatternFlowGtpv1ProtocolType) GetChoice() PatternFlowGtpv1ProtocolType_Choice_Enum { +func (x *PatternFlowGreChecksumPresent) GetChoice() PatternFlowGreChecksumPresent_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1ProtocolType_Choice_unspecified + return PatternFlowGreChecksumPresent_Choice_unspecified } -func (x *PatternFlowGtpv1ProtocolType) GetValue() uint32 { +func (x *PatternFlowGreChecksumPresent) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1ProtocolType) GetValues() []uint32 { +func (x *PatternFlowGreChecksumPresent) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetIncrement() *PatternFlowGtpv1ProtocolTypeCounter { +func (x *PatternFlowGreChecksumPresent) GetIncrement() *PatternFlowGreChecksumPresentCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetDecrement() *PatternFlowGtpv1ProtocolTypeCounter { +func (x *PatternFlowGreChecksumPresent) GetDecrement() *PatternFlowGreChecksumPresentCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1ProtocolTypeMetricTag { +func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksumPresentMetricTag { if x != nil { return x.MetricTags } @@ -65062,7 +65144,7 @@ func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1Protoc } // integer counter pattern -type PatternFlowGtpv1ReservedCounter struct { +type PatternFlowGreReserved0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65078,23 +65160,23 @@ type PatternFlowGtpv1ReservedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1ReservedCounter) Reset() { - *x = PatternFlowGtpv1ReservedCounter{} +func (x *PatternFlowGreReserved0Counter) Reset() { + *x = PatternFlowGreReserved0Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[562] + mi := &file_otg_proto_msgTypes[561] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ReservedCounter) String() string { +func (x *PatternFlowGreReserved0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ReservedCounter) ProtoMessage() {} +func (*PatternFlowGreReserved0Counter) ProtoMessage() {} -func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[562] +func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[561] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65105,26 +65187,26 @@ func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{562} +// Deprecated: Use PatternFlowGreReserved0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{561} } -func (x *PatternFlowGtpv1ReservedCounter) GetStart() uint32 { +func (x *PatternFlowGreReserved0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1ReservedCounter) GetStep() uint32 { +func (x *PatternFlowGreReserved0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { +func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -65134,7 +65216,7 @@ func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1ReservedMetricTag struct { +type PatternFlowGreReserved0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65148,27 +65230,27 @@ type PatternFlowGtpv1ReservedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 12 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1ReservedMetricTag) Reset() { - *x = PatternFlowGtpv1ReservedMetricTag{} +func (x *PatternFlowGreReserved0MetricTag) Reset() { + *x = PatternFlowGreReserved0MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[563] + mi := &file_otg_proto_msgTypes[562] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ReservedMetricTag) String() string { +func (x *PatternFlowGreReserved0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ReservedMetricTag) ProtoMessage() {} +func (*PatternFlowGreReserved0MetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[563] +func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[562] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65179,41 +65261,41 @@ func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ReservedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ReservedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{563} +// Deprecated: Use PatternFlowGreReserved0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{562} } -func (x *PatternFlowGtpv1ReservedMetricTag) GetName() string { +func (x *PatternFlowGreReserved0MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1ReservedMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreReserved0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1ReservedMetricTag) GetLength() uint32 { +func (x *PatternFlowGreReserved0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowGtpv1Reserved struct { +// Reserved bits +type PatternFlowGreReserved0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Reserved_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved0_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -65221,32 +65303,32 @@ type PatternFlowGtpv1Reserved struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Reserved) Reset() { - *x = PatternFlowGtpv1Reserved{} +func (x *PatternFlowGreReserved0) Reset() { + *x = PatternFlowGreReserved0{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[564] + mi := &file_otg_proto_msgTypes[563] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Reserved) String() string { +func (x *PatternFlowGreReserved0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Reserved) ProtoMessage() {} +func (*PatternFlowGreReserved0) ProtoMessage() {} -func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[564] +func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[563] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65257,47 +65339,47 @@ func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Reserved.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Reserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{564} +// Deprecated: Use PatternFlowGreReserved0.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{563} } -func (x *PatternFlowGtpv1Reserved) GetChoice() PatternFlowGtpv1Reserved_Choice_Enum { +func (x *PatternFlowGreReserved0) GetChoice() PatternFlowGreReserved0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Reserved_Choice_unspecified + return PatternFlowGreReserved0_Choice_unspecified } -func (x *PatternFlowGtpv1Reserved) GetValue() uint32 { +func (x *PatternFlowGreReserved0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Reserved) GetValues() []uint32 { +func (x *PatternFlowGreReserved0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Reserved) GetIncrement() *PatternFlowGtpv1ReservedCounter { +func (x *PatternFlowGreReserved0) GetIncrement() *PatternFlowGreReserved0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Reserved) GetDecrement() *PatternFlowGtpv1ReservedCounter { +func (x *PatternFlowGreReserved0) GetDecrement() *PatternFlowGreReserved0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMetricTag { +func (x *PatternFlowGreReserved0) GetMetricTags() []*PatternFlowGreReserved0MetricTag { if x != nil { return x.MetricTags } @@ -65305,7 +65387,7 @@ func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMe } // integer counter pattern -type PatternFlowGtpv1EFlagCounter struct { +type PatternFlowGreVersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65321,23 +65403,23 @@ type PatternFlowGtpv1EFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1EFlagCounter) Reset() { - *x = PatternFlowGtpv1EFlagCounter{} +func (x *PatternFlowGreVersionCounter) Reset() { + *x = PatternFlowGreVersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[565] + mi := &file_otg_proto_msgTypes[564] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlagCounter) String() string { +func (x *PatternFlowGreVersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlagCounter) ProtoMessage() {} +func (*PatternFlowGreVersionCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[565] +func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[564] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65348,26 +65430,26 @@ func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{565} +// Deprecated: Use PatternFlowGreVersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{564} } -func (x *PatternFlowGtpv1EFlagCounter) GetStart() uint32 { +func (x *PatternFlowGreVersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1EFlagCounter) GetStep() uint32 { +func (x *PatternFlowGreVersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { +func (x *PatternFlowGreVersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -65377,7 +65459,7 @@ func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1EFlagMetricTag struct { +type PatternFlowGreVersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65391,27 +65473,27 @@ type PatternFlowGtpv1EFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1EFlagMetricTag) Reset() { - *x = PatternFlowGtpv1EFlagMetricTag{} +func (x *PatternFlowGreVersionMetricTag) Reset() { + *x = PatternFlowGreVersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[566] + mi := &file_otg_proto_msgTypes[565] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlagMetricTag) String() string { +func (x *PatternFlowGreVersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGreVersionMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[566] +func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[565] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65422,41 +65504,41 @@ func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{566} +// Deprecated: Use PatternFlowGreVersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{565} } -func (x *PatternFlowGtpv1EFlagMetricTag) GetName() string { +func (x *PatternFlowGreVersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1EFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreVersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1EFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGreVersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Extension header field present -type PatternFlowGtpv1EFlag struct { +// GRE version number +type PatternFlowGreVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1EFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1EFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreVersion_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -65464,32 +65546,32 @@ type PatternFlowGtpv1EFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1EFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreVersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1EFlag) Reset() { - *x = PatternFlowGtpv1EFlag{} +func (x *PatternFlowGreVersion) Reset() { + *x = PatternFlowGreVersion{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[567] + mi := &file_otg_proto_msgTypes[566] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlag) String() string { +func (x *PatternFlowGreVersion) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlag) ProtoMessage() {} +func (*PatternFlowGreVersion) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[567] +func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[566] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65500,47 +65582,47 @@ func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{567} +// Deprecated: Use PatternFlowGreVersion.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersion) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{566} } -func (x *PatternFlowGtpv1EFlag) GetChoice() PatternFlowGtpv1EFlag_Choice_Enum { +func (x *PatternFlowGreVersion) GetChoice() PatternFlowGreVersion_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1EFlag_Choice_unspecified + return PatternFlowGreVersion_Choice_unspecified } -func (x *PatternFlowGtpv1EFlag) GetValue() uint32 { +func (x *PatternFlowGreVersion) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1EFlag) GetValues() []uint32 { +func (x *PatternFlowGreVersion) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1EFlag) GetIncrement() *PatternFlowGtpv1EFlagCounter { +func (x *PatternFlowGreVersion) GetIncrement() *PatternFlowGreVersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1EFlag) GetDecrement() *PatternFlowGtpv1EFlagCounter { +func (x *PatternFlowGreVersion) GetDecrement() *PatternFlowGreVersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTag { +func (x *PatternFlowGreVersion) GetMetricTags() []*PatternFlowGreVersionMetricTag { if x != nil { return x.MetricTags } @@ -65548,13 +65630,13 @@ func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTa } // integer counter pattern -type PatternFlowGtpv1SFlagCounter struct { +type PatternFlowGreProtocolCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 2048 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -65564,23 +65646,23 @@ type PatternFlowGtpv1SFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1SFlagCounter) Reset() { - *x = PatternFlowGtpv1SFlagCounter{} +func (x *PatternFlowGreProtocolCounter) Reset() { + *x = PatternFlowGreProtocolCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[568] + mi := &file_otg_proto_msgTypes[567] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlagCounter) String() string { +func (x *PatternFlowGreProtocolCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlagCounter) ProtoMessage() {} +func (*PatternFlowGreProtocolCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[568] +func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[567] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65591,26 +65673,26 @@ func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{568} +// Deprecated: Use PatternFlowGreProtocolCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocolCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{567} } -func (x *PatternFlowGtpv1SFlagCounter) GetStart() uint32 { +func (x *PatternFlowGreProtocolCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1SFlagCounter) GetStep() uint32 { +func (x *PatternFlowGreProtocolCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { +func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -65620,7 +65702,7 @@ func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1SFlagMetricTag struct { +type PatternFlowGreProtocolMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65634,27 +65716,27 @@ type PatternFlowGtpv1SFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1SFlagMetricTag) Reset() { - *x = PatternFlowGtpv1SFlagMetricTag{} +func (x *PatternFlowGreProtocolMetricTag) Reset() { + *x = PatternFlowGreProtocolMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[569] + mi := &file_otg_proto_msgTypes[568] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlagMetricTag) String() string { +func (x *PatternFlowGreProtocolMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGreProtocolMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[569] +func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[568] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65665,74 +65747,74 @@ func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{569} +// Deprecated: Use PatternFlowGreProtocolMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocolMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{568} } -func (x *PatternFlowGtpv1SFlagMetricTag) GetName() string { +func (x *PatternFlowGreProtocolMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1SFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreProtocolMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1SFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGreProtocolMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number field present -type PatternFlowGtpv1SFlag struct { +// Protocol type of encapsulated payload +type PatternFlowGreProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1SFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreProtocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 2048 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [2048] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1SFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreProtocolMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1SFlag) Reset() { - *x = PatternFlowGtpv1SFlag{} +func (x *PatternFlowGreProtocol) Reset() { + *x = PatternFlowGreProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[570] + mi := &file_otg_proto_msgTypes[569] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlag) String() string { +func (x *PatternFlowGreProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlag) ProtoMessage() {} +func (*PatternFlowGreProtocol) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[570] +func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[569] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65743,55 +65825,125 @@ func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{570} +// Deprecated: Use PatternFlowGreProtocol.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{569} } -func (x *PatternFlowGtpv1SFlag) GetChoice() PatternFlowGtpv1SFlag_Choice_Enum { +func (x *PatternFlowGreProtocol) GetChoice() PatternFlowGreProtocol_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1SFlag_Choice_unspecified + return PatternFlowGreProtocol_Choice_unspecified } -func (x *PatternFlowGtpv1SFlag) GetValue() uint32 { +func (x *PatternFlowGreProtocol) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1SFlag) GetValues() []uint32 { +func (x *PatternFlowGreProtocol) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1SFlag) GetIncrement() *PatternFlowGtpv1SFlagCounter { +func (x *PatternFlowGreProtocol) GetIncrement() *PatternFlowGreProtocolCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1SFlag) GetDecrement() *PatternFlowGtpv1SFlagCounter { +func (x *PatternFlowGreProtocol) GetDecrement() *PatternFlowGreProtocolCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1SFlag) GetMetricTags() []*PatternFlowGtpv1SFlagMetricTag { +func (x *PatternFlowGreProtocol) GetMetricTags() []*PatternFlowGreProtocolMetricTag { if x != nil { return x.MetricTags } return nil } +// Optional checksum of GRE header and payload. Only present if the checksum_present +// bit is set. +type PatternFlowGreChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowGreChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowGreChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowGreChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowGreChecksum) Reset() { + *x = PatternFlowGreChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[570] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowGreChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowGreChecksum) ProtoMessage() {} + +func (x *PatternFlowGreChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[570] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowGreChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{570} +} + +func (x *PatternFlowGreChecksum) GetChoice() PatternFlowGreChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowGreChecksum_Choice_unspecified +} + +func (x *PatternFlowGreChecksum) GetGenerated() PatternFlowGreChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowGreChecksum_Generated_unspecified +} + +func (x *PatternFlowGreChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowGtpv1PnFlagCounter struct { +type PatternFlowGreReserved1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65807,8 +65959,8 @@ type PatternFlowGtpv1PnFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1PnFlagCounter) Reset() { - *x = PatternFlowGtpv1PnFlagCounter{} +func (x *PatternFlowGreReserved1Counter) Reset() { + *x = PatternFlowGreReserved1Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[571] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65816,13 +65968,13 @@ func (x *PatternFlowGtpv1PnFlagCounter) Reset() { } } -func (x *PatternFlowGtpv1PnFlagCounter) String() string { +func (x *PatternFlowGreReserved1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlagCounter) ProtoMessage() {} +func (*PatternFlowGreReserved1Counter) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[571] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65834,26 +65986,26 @@ func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlagCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGreReserved1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{571} } -func (x *PatternFlowGtpv1PnFlagCounter) GetStart() uint32 { +func (x *PatternFlowGreReserved1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1PnFlagCounter) GetStep() uint32 { +func (x *PatternFlowGreReserved1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { +func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -65863,7 +66015,7 @@ func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1PnFlagMetricTag struct { +type PatternFlowGreReserved1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -65877,12 +66029,12 @@ type PatternFlowGtpv1PnFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { - *x = PatternFlowGtpv1PnFlagMetricTag{} +func (x *PatternFlowGreReserved1MetricTag) Reset() { + *x = PatternFlowGreReserved1MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[572] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65890,13 +66042,13 @@ func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { } } -func (x *PatternFlowGtpv1PnFlagMetricTag) String() string { +func (x *PatternFlowGreReserved1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGreReserved1MetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[572] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65908,41 +66060,41 @@ func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlagMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGreReserved1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{572} } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetName() string { +func (x *PatternFlowGreReserved1MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreReserved1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGreReserved1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// N-PDU field present -type PatternFlowGtpv1PnFlag struct { +// Optional reserved field. Only present if the checksum_present bit is set. +type PatternFlowGreReserved1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1PnFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1PnFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved1_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -65950,17 +66102,17 @@ type PatternFlowGtpv1PnFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1PnFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1PnFlag) Reset() { - *x = PatternFlowGtpv1PnFlag{} +func (x *PatternFlowGreReserved1) Reset() { + *x = PatternFlowGreReserved1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[573] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65968,13 +66120,13 @@ func (x *PatternFlowGtpv1PnFlag) Reset() { } } -func (x *PatternFlowGtpv1PnFlag) String() string { +func (x *PatternFlowGreReserved1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlag) ProtoMessage() {} +func (*PatternFlowGreReserved1) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[573] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -65986,47 +66138,47 @@ func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGreReserved1.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{573} } -func (x *PatternFlowGtpv1PnFlag) GetChoice() PatternFlowGtpv1PnFlag_Choice_Enum { +func (x *PatternFlowGreReserved1) GetChoice() PatternFlowGreReserved1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1PnFlag_Choice_unspecified + return PatternFlowGreReserved1_Choice_unspecified } -func (x *PatternFlowGtpv1PnFlag) GetValue() uint32 { +func (x *PatternFlowGreReserved1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1PnFlag) GetValues() []uint32 { +func (x *PatternFlowGreReserved1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1PnFlag) GetIncrement() *PatternFlowGtpv1PnFlagCounter { +func (x *PatternFlowGreReserved1) GetIncrement() *PatternFlowGreReserved1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1PnFlag) GetDecrement() *PatternFlowGtpv1PnFlagCounter { +func (x *PatternFlowGreReserved1) GetDecrement() *PatternFlowGreReserved1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetricTag { +func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1MetricTag { if x != nil { return x.MetricTags } @@ -66034,13 +66186,13 @@ func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetric } // integer counter pattern -type PatternFlowGtpv1MessageTypeCounter struct { +type PatternFlowGtpv1VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -66050,8 +66202,8 @@ type PatternFlowGtpv1MessageTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { - *x = PatternFlowGtpv1MessageTypeCounter{} +func (x *PatternFlowGtpv1VersionCounter) Reset() { + *x = PatternFlowGtpv1VersionCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[574] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66059,13 +66211,13 @@ func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { } } -func (x *PatternFlowGtpv1MessageTypeCounter) String() string { +func (x *PatternFlowGtpv1VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv1VersionCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[574] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66077,26 +66229,26 @@ func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1VersionCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{574} } -func (x *PatternFlowGtpv1MessageTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1MessageTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -66106,7 +66258,7 @@ func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1MessageTypeMetricTag struct { +type PatternFlowGtpv1VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66120,12 +66272,12 @@ type PatternFlowGtpv1MessageTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { - *x = PatternFlowGtpv1MessageTypeMetricTag{} +func (x *PatternFlowGtpv1VersionMetricTag) Reset() { + *x = PatternFlowGtpv1VersionMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[575] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66133,13 +66285,13 @@ func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { } } -func (x *PatternFlowGtpv1MessageTypeMetricTag) String() string { +func (x *PatternFlowGtpv1VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[575] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66151,60 +66303,59 @@ func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1VersionMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{575} } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv1VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The type of GTP message Different types of messages are defined in 3GPP TS 29.060 -// section 7.1 -type PatternFlowGtpv1MessageType struct { +// GTPv1 version +type PatternFlowGtpv1Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1MessageType) Reset() { - *x = PatternFlowGtpv1MessageType{} +func (x *PatternFlowGtpv1Version) Reset() { + *x = PatternFlowGtpv1Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[576] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66212,13 +66363,13 @@ func (x *PatternFlowGtpv1MessageType) Reset() { } } -func (x *PatternFlowGtpv1MessageType) String() string { +func (x *PatternFlowGtpv1Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageType) ProtoMessage() {} +func (*PatternFlowGtpv1Version) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[576] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66230,47 +66381,47 @@ func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1Version.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Version) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{576} } -func (x *PatternFlowGtpv1MessageType) GetChoice() PatternFlowGtpv1MessageType_Choice_Enum { +func (x *PatternFlowGtpv1Version) GetChoice() PatternFlowGtpv1Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1MessageType_Choice_unspecified + return PatternFlowGtpv1Version_Choice_unspecified } -func (x *PatternFlowGtpv1MessageType) GetValue() uint32 { +func (x *PatternFlowGtpv1Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1MessageType) GetValues() []uint32 { +func (x *PatternFlowGtpv1Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1MessageType) GetIncrement() *PatternFlowGtpv1MessageTypeCounter { +func (x *PatternFlowGtpv1Version) GetIncrement() *PatternFlowGtpv1VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1MessageType) GetDecrement() *PatternFlowGtpv1MessageTypeCounter { +func (x *PatternFlowGtpv1Version) GetDecrement() *PatternFlowGtpv1VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1MessageTypeMetricTag { +func (x *PatternFlowGtpv1Version) GetMetricTags() []*PatternFlowGtpv1VersionMetricTag { if x != nil { return x.MetricTags } @@ -66278,13 +66429,13 @@ func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1Message } // integer counter pattern -type PatternFlowGtpv1MessageLengthCounter struct { +type PatternFlowGtpv1ProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -66294,8 +66445,8 @@ type PatternFlowGtpv1MessageLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { - *x = PatternFlowGtpv1MessageLengthCounter{} +func (x *PatternFlowGtpv1ProtocolTypeCounter) Reset() { + *x = PatternFlowGtpv1ProtocolTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[577] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66303,13 +66454,13 @@ func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { } } -func (x *PatternFlowGtpv1MessageLengthCounter) String() string { +func (x *PatternFlowGtpv1ProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[577] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66321,26 +66472,26 @@ func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{577} } -func (x *PatternFlowGtpv1MessageLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1MessageLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -66350,7 +66501,7 @@ func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1MessageLengthMetricTag struct { +type PatternFlowGtpv1ProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66364,12 +66515,12 @@ type PatternFlowGtpv1MessageLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { - *x = PatternFlowGtpv1MessageLengthMetricTag{} +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) Reset() { + *x = PatternFlowGtpv1ProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[578] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66377,13 +66528,13 @@ func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { } } -func (x *PatternFlowGtpv1MessageLengthMetricTag) String() string { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[578] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66395,60 +66546,59 @@ func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{578} } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The length of the payload (the bytes following the mandatory 8-byte GTP header) in -// bytes that includes any optional fields -type PatternFlowGtpv1MessageLength struct { +// Protocol type, GTP is 1, GTP' is 0 +type PatternFlowGtpv1ProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1ProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1ProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1ProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1MessageLength) Reset() { - *x = PatternFlowGtpv1MessageLength{} +func (x *PatternFlowGtpv1ProtocolType) Reset() { + *x = PatternFlowGtpv1ProtocolType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[579] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66456,13 +66606,13 @@ func (x *PatternFlowGtpv1MessageLength) Reset() { } } -func (x *PatternFlowGtpv1MessageLength) String() string { +func (x *PatternFlowGtpv1ProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLength) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolType) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[579] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66474,47 +66624,47 @@ func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{579} } -func (x *PatternFlowGtpv1MessageLength) GetChoice() PatternFlowGtpv1MessageLength_Choice_Enum { +func (x *PatternFlowGtpv1ProtocolType) GetChoice() PatternFlowGtpv1ProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1MessageLength_Choice_unspecified + return PatternFlowGtpv1ProtocolType_Choice_unspecified } -func (x *PatternFlowGtpv1MessageLength) GetValue() uint32 { +func (x *PatternFlowGtpv1ProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1MessageLength) GetValues() []uint32 { +func (x *PatternFlowGtpv1ProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1MessageLength) GetIncrement() *PatternFlowGtpv1MessageLengthCounter { +func (x *PatternFlowGtpv1ProtocolType) GetIncrement() *PatternFlowGtpv1ProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1MessageLength) GetDecrement() *PatternFlowGtpv1MessageLengthCounter { +func (x *PatternFlowGtpv1ProtocolType) GetDecrement() *PatternFlowGtpv1ProtocolTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1MessageLengthMetricTag { +func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1ProtocolTypeMetricTag { if x != nil { return x.MetricTags } @@ -66522,7 +66672,7 @@ func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1Messa } // integer counter pattern -type PatternFlowGtpv1TeidCounter struct { +type PatternFlowGtpv1ReservedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66538,8 +66688,8 @@ type PatternFlowGtpv1TeidCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1TeidCounter) Reset() { - *x = PatternFlowGtpv1TeidCounter{} +func (x *PatternFlowGtpv1ReservedCounter) Reset() { + *x = PatternFlowGtpv1ReservedCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[580] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66547,13 +66697,13 @@ func (x *PatternFlowGtpv1TeidCounter) Reset() { } } -func (x *PatternFlowGtpv1TeidCounter) String() string { +func (x *PatternFlowGtpv1ReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1TeidCounter) ProtoMessage() {} +func (*PatternFlowGtpv1ReservedCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[580] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66565,26 +66715,26 @@ func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1TeidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1TeidCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ReservedCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{580} } -func (x *PatternFlowGtpv1TeidCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1TeidCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -66594,7 +66744,7 @@ func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1TeidMetricTag struct { +type PatternFlowGtpv1ReservedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66608,12 +66758,12 @@ type PatternFlowGtpv1TeidMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1TeidMetricTag) Reset() { - *x = PatternFlowGtpv1TeidMetricTag{} +func (x *PatternFlowGtpv1ReservedMetricTag) Reset() { + *x = PatternFlowGtpv1ReservedMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[581] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66621,13 +66771,13 @@ func (x *PatternFlowGtpv1TeidMetricTag) Reset() { } } -func (x *PatternFlowGtpv1TeidMetricTag) String() string { +func (x *PatternFlowGtpv1ReservedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1TeidMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1ReservedMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[581] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66639,41 +66789,41 @@ func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1TeidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1TeidMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1ReservedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ReservedMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{581} } -func (x *PatternFlowGtpv1TeidMetricTag) GetName() string { +func (x *PatternFlowGtpv1ReservedMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1TeidMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1ReservedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1TeidMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1ReservedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tunnel endpoint identifier (TEID) used to multiplex connections in the same GTP tunnel -type PatternFlowGtpv1Teid struct { +// Reserved field +type PatternFlowGtpv1Reserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Teid_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Reserved_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -66681,17 +66831,17 @@ type PatternFlowGtpv1Teid struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Teid) Reset() { - *x = PatternFlowGtpv1Teid{} +func (x *PatternFlowGtpv1Reserved) Reset() { + *x = PatternFlowGtpv1Reserved{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[582] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66699,13 +66849,13 @@ func (x *PatternFlowGtpv1Teid) Reset() { } } -func (x *PatternFlowGtpv1Teid) String() string { +func (x *PatternFlowGtpv1Reserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Teid) ProtoMessage() {} +func (*PatternFlowGtpv1Reserved) ProtoMessage() {} -func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[582] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66717,47 +66867,47 @@ func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Teid.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Teid) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1Reserved.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Reserved) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{582} } -func (x *PatternFlowGtpv1Teid) GetChoice() PatternFlowGtpv1Teid_Choice_Enum { +func (x *PatternFlowGtpv1Reserved) GetChoice() PatternFlowGtpv1Reserved_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Teid_Choice_unspecified + return PatternFlowGtpv1Reserved_Choice_unspecified } -func (x *PatternFlowGtpv1Teid) GetValue() uint32 { +func (x *PatternFlowGtpv1Reserved) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Teid) GetValues() []uint32 { +func (x *PatternFlowGtpv1Reserved) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Teid) GetIncrement() *PatternFlowGtpv1TeidCounter { +func (x *PatternFlowGtpv1Reserved) GetIncrement() *PatternFlowGtpv1ReservedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Teid) GetDecrement() *PatternFlowGtpv1TeidCounter { +func (x *PatternFlowGtpv1Reserved) GetDecrement() *PatternFlowGtpv1ReservedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag { +func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMetricTag { if x != nil { return x.MetricTags } @@ -66765,7 +66915,7 @@ func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag } // integer counter pattern -type PatternFlowGtpv1SquenceNumberCounter struct { +type PatternFlowGtpv1EFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66781,8 +66931,8 @@ type PatternFlowGtpv1SquenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { - *x = PatternFlowGtpv1SquenceNumberCounter{} +func (x *PatternFlowGtpv1EFlagCounter) Reset() { + *x = PatternFlowGtpv1EFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[583] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66790,13 +66940,13 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { } } -func (x *PatternFlowGtpv1SquenceNumberCounter) String() string { +func (x *PatternFlowGtpv1EFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv1EFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[583] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66808,26 +66958,26 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumberCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1EFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{583} } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -66837,7 +66987,7 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1SquenceNumberMetricTag struct { +type PatternFlowGtpv1EFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -66851,12 +67001,12 @@ type PatternFlowGtpv1SquenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { - *x = PatternFlowGtpv1SquenceNumberMetricTag{} +func (x *PatternFlowGtpv1EFlagMetricTag) Reset() { + *x = PatternFlowGtpv1EFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[584] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66864,13 +67014,13 @@ func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { } } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) String() string { +func (x *PatternFlowGtpv1EFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1EFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[584] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66882,42 +67032,41 @@ func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumberMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1EFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{584} } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv1EFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1EFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1EFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must -// be interpreted only if the s_flag bit is on. -type PatternFlowGtpv1SquenceNumber struct { +// Extension header field present +type PatternFlowGtpv1EFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1SquenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SquenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1EFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1EFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -66925,17 +67074,17 @@ type PatternFlowGtpv1SquenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1SquenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1EFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumber) Reset() { - *x = PatternFlowGtpv1SquenceNumber{} +func (x *PatternFlowGtpv1EFlag) Reset() { + *x = PatternFlowGtpv1EFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[585] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66943,13 +67092,13 @@ func (x *PatternFlowGtpv1SquenceNumber) Reset() { } } -func (x *PatternFlowGtpv1SquenceNumber) String() string { +func (x *PatternFlowGtpv1EFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumber) ProtoMessage() {} +func (*PatternFlowGtpv1EFlag) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[585] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -66961,47 +67110,47 @@ func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumber) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1EFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{585} } -func (x *PatternFlowGtpv1SquenceNumber) GetChoice() PatternFlowGtpv1SquenceNumber_Choice_Enum { +func (x *PatternFlowGtpv1EFlag) GetChoice() PatternFlowGtpv1EFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1SquenceNumber_Choice_unspecified + return PatternFlowGtpv1EFlag_Choice_unspecified } -func (x *PatternFlowGtpv1SquenceNumber) GetValue() uint32 { +func (x *PatternFlowGtpv1EFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1SquenceNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv1EFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetIncrement() *PatternFlowGtpv1SquenceNumberCounter { +func (x *PatternFlowGtpv1EFlag) GetIncrement() *PatternFlowGtpv1EFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetDecrement() *PatternFlowGtpv1SquenceNumberCounter { +func (x *PatternFlowGtpv1EFlag) GetDecrement() *PatternFlowGtpv1EFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1SquenceNumberMetricTag { +func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTag { if x != nil { return x.MetricTags } @@ -67009,7 +67158,7 @@ func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1Squen } // integer counter pattern -type PatternFlowGtpv1NPduNumberCounter struct { +type PatternFlowGtpv1SFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67025,8 +67174,8 @@ type PatternFlowGtpv1NPduNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { - *x = PatternFlowGtpv1NPduNumberCounter{} +func (x *PatternFlowGtpv1SFlagCounter) Reset() { + *x = PatternFlowGtpv1SFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[586] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67034,13 +67183,13 @@ func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { } } -func (x *PatternFlowGtpv1NPduNumberCounter) String() string { +func (x *PatternFlowGtpv1SFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv1SFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[586] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67052,26 +67201,26 @@ func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumberCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{586} } -func (x *PatternFlowGtpv1NPduNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1NPduNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -67081,7 +67230,7 @@ func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1NPduNumberMetricTag struct { +type PatternFlowGtpv1SFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67095,12 +67244,12 @@ type PatternFlowGtpv1NPduNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { - *x = PatternFlowGtpv1NPduNumberMetricTag{} +func (x *PatternFlowGtpv1SFlagMetricTag) Reset() { + *x = PatternFlowGtpv1SFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[587] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67108,13 +67257,13 @@ func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { } } -func (x *PatternFlowGtpv1NPduNumberMetricTag) String() string { +func (x *PatternFlowGtpv1SFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1SFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[587] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67126,42 +67275,41 @@ func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumberMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{587} } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv1SFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1SFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1SFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// N-PDU number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must -// be interpreted only if the pn_flag bit is on. -type PatternFlowGtpv1NPduNumber struct { +// Sequence number field present +type PatternFlowGtpv1SFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1NPduNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NPduNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1SFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -67169,17 +67317,17 @@ type PatternFlowGtpv1NPduNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1NPduNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1SFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1NPduNumber) Reset() { - *x = PatternFlowGtpv1NPduNumber{} +func (x *PatternFlowGtpv1SFlag) Reset() { + *x = PatternFlowGtpv1SFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[588] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67187,13 +67335,13 @@ func (x *PatternFlowGtpv1NPduNumber) Reset() { } } -func (x *PatternFlowGtpv1NPduNumber) String() string { +func (x *PatternFlowGtpv1SFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumber) ProtoMessage() {} +func (*PatternFlowGtpv1SFlag) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[588] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67205,47 +67353,47 @@ func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumber) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{588} } -func (x *PatternFlowGtpv1NPduNumber) GetChoice() PatternFlowGtpv1NPduNumber_Choice_Enum { +func (x *PatternFlowGtpv1SFlag) GetChoice() PatternFlowGtpv1SFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1NPduNumber_Choice_unspecified + return PatternFlowGtpv1SFlag_Choice_unspecified } -func (x *PatternFlowGtpv1NPduNumber) GetValue() uint32 { +func (x *PatternFlowGtpv1SFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1NPduNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv1SFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetIncrement() *PatternFlowGtpv1NPduNumberCounter { +func (x *PatternFlowGtpv1SFlag) GetIncrement() *PatternFlowGtpv1SFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetDecrement() *PatternFlowGtpv1NPduNumberCounter { +func (x *PatternFlowGtpv1SFlag) GetDecrement() *PatternFlowGtpv1SFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetMetricTags() []*PatternFlowGtpv1NPduNumberMetricTag { +func (x *PatternFlowGtpv1SFlag) GetMetricTags() []*PatternFlowGtpv1SFlagMetricTag { if x != nil { return x.MetricTags } @@ -67253,7 +67401,7 @@ func (x *PatternFlowGtpv1NPduNumber) GetMetricTags() []*PatternFlowGtpv1NPduNumb } // integer counter pattern -type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { +type PatternFlowGtpv1PnFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67269,8 +67417,8 @@ type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderTypeCounter{} +func (x *PatternFlowGtpv1PnFlagCounter) Reset() { + *x = PatternFlowGtpv1PnFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[589] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67278,13 +67426,13 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { } } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) String() string { +func (x *PatternFlowGtpv1PnFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[589] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67296,26 +67444,26 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1PnFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{589} } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -67325,7 +67473,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { +type PatternFlowGtpv1PnFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67339,12 +67487,12 @@ type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag{} +func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { + *x = PatternFlowGtpv1PnFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[590] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67352,13 +67500,13 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { } } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) String() string { +func (x *PatternFlowGtpv1PnFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[590] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67370,42 +67518,41 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1PnFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{590} } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Next extension header. Exists if any of the e_flag, s_flag, or pn_flag bits are on. -// Must be interpreted only if the e_flag bit is on. -type PatternFlowGtpv1NextExtensionHeaderType struct { +// N-PDU field present +type PatternFlowGtpv1PnFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1PnFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1PnFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -67413,17 +67560,17 @@ type PatternFlowGtpv1NextExtensionHeaderType struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1PnFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderType{} +func (x *PatternFlowGtpv1PnFlag) Reset() { + *x = PatternFlowGtpv1PnFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[591] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67431,13 +67578,13 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { } } -func (x *PatternFlowGtpv1NextExtensionHeaderType) String() string { +func (x *PatternFlowGtpv1PnFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderType) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlag) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[591] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67449,47 +67596,47 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1PnFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{591} } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetChoice() PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum { +func (x *PatternFlowGtpv1PnFlag) GetChoice() PatternFlowGtpv1PnFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1NextExtensionHeaderType_Choice_unspecified + return PatternFlowGtpv1PnFlag_Choice_unspecified } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValue() uint32 { +func (x *PatternFlowGtpv1PnFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValues() []uint32 { +func (x *PatternFlowGtpv1PnFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetIncrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { +func (x *PatternFlowGtpv1PnFlag) GetIncrement() *PatternFlowGtpv1PnFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetDecrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { +func (x *PatternFlowGtpv1PnFlag) GetDecrement() *PatternFlowGtpv1PnFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetMetricTags() []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { +func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetricTag { if x != nil { return x.MetricTags } @@ -67497,7 +67644,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) GetMetricTags() []*PatternFlow } // integer counter pattern -type PatternFlowGtpExtensionExtensionLengthCounter struct { +type PatternFlowGtpv1MessageTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67513,8 +67660,8 @@ type PatternFlowGtpExtensionExtensionLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { - *x = PatternFlowGtpExtensionExtensionLengthCounter{} +func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { + *x = PatternFlowGtpv1MessageTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[592] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67522,13 +67669,13 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { } } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) String() string { +func (x *PatternFlowGtpv1MessageTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv1MessageTypeCounter) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[592] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67540,26 +67687,26 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{592} } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -67569,7 +67716,7 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpExtensionExtensionLengthMetricTag struct { +type PatternFlowGtpv1MessageTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67587,8 +67734,8 @@ type PatternFlowGtpExtensionExtensionLengthMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { - *x = PatternFlowGtpExtensionExtensionLengthMetricTag{} +func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { + *x = PatternFlowGtpv1MessageTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[593] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67596,13 +67743,13 @@ func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { } } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) String() string { +func (x *PatternFlowGtpv1MessageTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1MessageTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[593] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67614,43 +67761,42 @@ func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{593} } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// This field states the length of this extension header, including the length, the -// contents, and the next extension header field, in 4-octet units, so the length of -// the extension must always be a multiple of 4. -type PatternFlowGtpExtensionExtensionLength struct { +// The type of GTP message Different types of messages are defined in 3GPP TS 29.060 +// section 7.1 +type PatternFlowGtpv1MessageType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionExtensionLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionExtensionLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -67658,17 +67804,17 @@ type PatternFlowGtpExtensionExtensionLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpExtensionExtensionLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLength) Reset() { - *x = PatternFlowGtpExtensionExtensionLength{} +func (x *PatternFlowGtpv1MessageType) Reset() { + *x = PatternFlowGtpv1MessageType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[594] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67676,13 +67822,13 @@ func (x *PatternFlowGtpExtensionExtensionLength) Reset() { } } -func (x *PatternFlowGtpExtensionExtensionLength) String() string { +func (x *PatternFlowGtpv1MessageType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLength) ProtoMessage() {} +func (*PatternFlowGtpv1MessageType) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[594] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67694,47 +67840,47 @@ func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{594} } -func (x *PatternFlowGtpExtensionExtensionLength) GetChoice() PatternFlowGtpExtensionExtensionLength_Choice_Enum { +func (x *PatternFlowGtpv1MessageType) GetChoice() PatternFlowGtpv1MessageType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionExtensionLength_Choice_unspecified + return PatternFlowGtpv1MessageType_Choice_unspecified } -func (x *PatternFlowGtpExtensionExtensionLength) GetValue() uint32 { +func (x *PatternFlowGtpv1MessageType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionExtensionLength) GetValues() []uint32 { +func (x *PatternFlowGtpv1MessageType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetIncrement() *PatternFlowGtpExtensionExtensionLengthCounter { +func (x *PatternFlowGtpv1MessageType) GetIncrement() *PatternFlowGtpv1MessageTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetDecrement() *PatternFlowGtpExtensionExtensionLengthCounter { +func (x *PatternFlowGtpv1MessageType) GetDecrement() *PatternFlowGtpv1MessageTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetMetricTags() []*PatternFlowGtpExtensionExtensionLengthMetricTag { +func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1MessageTypeMetricTag { if x != nil { return x.MetricTags } @@ -67742,24 +67888,24 @@ func (x *PatternFlowGtpExtensionExtensionLength) GetMetricTags() []*PatternFlowG } // integer counter pattern -type PatternFlowGtpExtensionContentsCounter struct { +type PatternFlowGtpv1MessageLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = 0 - Start *uint64 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 - Step *uint64 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 - Count *uint64 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpExtensionContentsCounter) Reset() { - *x = PatternFlowGtpExtensionContentsCounter{} +func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { + *x = PatternFlowGtpv1MessageLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[595] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67767,13 +67913,13 @@ func (x *PatternFlowGtpExtensionContentsCounter) Reset() { } } -func (x *PatternFlowGtpExtensionContentsCounter) String() string { +func (x *PatternFlowGtpv1MessageLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContentsCounter) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLengthCounter) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[595] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67785,26 +67931,26 @@ func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContentsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContentsCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{595} } -func (x *PatternFlowGtpExtensionContentsCounter) GetStart() uint64 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpExtensionContentsCounter) GetStep() uint64 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -67814,7 +67960,7 @@ func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpExtensionContentsMetricTag struct { +type PatternFlowGtpv1MessageLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -67825,15 +67971,15 @@ type PatternFlowGtpExtensionContentsMetricTag struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 - Offset *uint64 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 - Length *uint64 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { - *x = PatternFlowGtpExtensionContentsMetricTag{} +func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { + *x = PatternFlowGtpv1MessageLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[596] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67841,13 +67987,13 @@ func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { } } -func (x *PatternFlowGtpExtensionContentsMetricTag) String() string { +func (x *PatternFlowGtpv1MessageLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContentsMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[596] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67859,59 +68005,60 @@ func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContentsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContentsMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{596} } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetName() string { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetOffset() uint64 { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetLength() uint64 { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The extension header contents -type PatternFlowGtpExtensionContents struct { +// The length of the payload (the bytes following the mandatory 8-byte GTP header) in +// bytes that includes any optional fields +type PatternFlowGtpv1MessageLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionContents_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionContents_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 - Value *uint64 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] - Values []uint64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpExtensionContentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpExtensionContents) Reset() { - *x = PatternFlowGtpExtensionContents{} +func (x *PatternFlowGtpv1MessageLength) Reset() { + *x = PatternFlowGtpv1MessageLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[597] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67919,13 +68066,13 @@ func (x *PatternFlowGtpExtensionContents) Reset() { } } -func (x *PatternFlowGtpExtensionContents) String() string { +func (x *PatternFlowGtpv1MessageLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContents) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLength) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[597] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -67937,47 +68084,47 @@ func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContents.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContents) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1MessageLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{597} } -func (x *PatternFlowGtpExtensionContents) GetChoice() PatternFlowGtpExtensionContents_Choice_Enum { +func (x *PatternFlowGtpv1MessageLength) GetChoice() PatternFlowGtpv1MessageLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionContents_Choice_unspecified + return PatternFlowGtpv1MessageLength_Choice_unspecified } -func (x *PatternFlowGtpExtensionContents) GetValue() uint64 { +func (x *PatternFlowGtpv1MessageLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionContents) GetValues() []uint64 { +func (x *PatternFlowGtpv1MessageLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionContents) GetIncrement() *PatternFlowGtpExtensionContentsCounter { +func (x *PatternFlowGtpv1MessageLength) GetIncrement() *PatternFlowGtpv1MessageLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionContents) GetDecrement() *PatternFlowGtpExtensionContentsCounter { +func (x *PatternFlowGtpv1MessageLength) GetDecrement() *PatternFlowGtpv1MessageLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionContents) GetMetricTags() []*PatternFlowGtpExtensionContentsMetricTag { +func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1MessageLengthMetricTag { if x != nil { return x.MetricTags } @@ -67985,7 +68132,7 @@ func (x *PatternFlowGtpExtensionContents) GetMetricTags() []*PatternFlowGtpExten } // integer counter pattern -type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { +type PatternFlowGtpv1TeidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68001,8 +68148,8 @@ type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeaderCounter{} +func (x *PatternFlowGtpv1TeidCounter) Reset() { + *x = PatternFlowGtpv1TeidCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[598] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68010,13 +68157,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { } } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) String() string { +func (x *PatternFlowGtpv1TeidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoMessage() {} +func (*PatternFlowGtpv1TeidCounter) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[598] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68028,26 +68175,26 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1TeidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1TeidCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{598} } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68057,7 +68204,7 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { +type PatternFlowGtpv1TeidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68071,12 +68218,12 @@ type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeaderMetricTag{} +func (x *PatternFlowGtpv1TeidMetricTag) Reset() { + *x = PatternFlowGtpv1TeidMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[599] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68084,13 +68231,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { } } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) String() string { +func (x *PatternFlowGtpv1TeidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1TeidMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[599] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68102,42 +68249,41 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1TeidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1TeidMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{599} } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetName() string { +func (x *PatternFlowGtpv1TeidMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1TeidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1TeidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// It states the type of the next extension, or 0 if no next extension exists. This -// permits chaining several next extension headers. -type PatternFlowGtpExtensionNextExtensionHeader struct { +// Tunnel endpoint identifier (TEID) used to multiplex connections in the same GTP tunnel +type PatternFlowGtpv1Teid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Teid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -68145,17 +68291,17 @@ type PatternFlowGtpExtensionNextExtensionHeader struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeader{} +func (x *PatternFlowGtpv1Teid) Reset() { + *x = PatternFlowGtpv1Teid{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[600] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68163,13 +68309,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { } } -func (x *PatternFlowGtpExtensionNextExtensionHeader) String() string { +func (x *PatternFlowGtpv1Teid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeader) ProtoMessage() {} +func (*PatternFlowGtpv1Teid) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[600] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68181,47 +68327,47 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeader) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1Teid.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Teid) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{600} } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetChoice() PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum { +func (x *PatternFlowGtpv1Teid) GetChoice() PatternFlowGtpv1Teid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionNextExtensionHeader_Choice_unspecified + return PatternFlowGtpv1Teid_Choice_unspecified } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValue() uint32 { +func (x *PatternFlowGtpv1Teid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValues() []uint32 { +func (x *PatternFlowGtpv1Teid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetIncrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { +func (x *PatternFlowGtpv1Teid) GetIncrement() *PatternFlowGtpv1TeidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetDecrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { +func (x *PatternFlowGtpv1Teid) GetDecrement() *PatternFlowGtpv1TeidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag { +func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag { if x != nil { return x.MetricTags } @@ -68229,13 +68375,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternF } // integer counter pattern -type PatternFlowGtpv2VersionCounter struct { +type PatternFlowGtpv1SquenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -68245,8 +68391,8 @@ type PatternFlowGtpv2VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2VersionCounter) Reset() { - *x = PatternFlowGtpv2VersionCounter{} +func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { + *x = PatternFlowGtpv1SquenceNumberCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[601] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68254,13 +68400,13 @@ func (x *PatternFlowGtpv2VersionCounter) Reset() { } } -func (x *PatternFlowGtpv2VersionCounter) String() string { +func (x *PatternFlowGtpv1SquenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2VersionCounter) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[601] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68272,26 +68418,26 @@ func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2VersionCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SquenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumberCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{601} } -func (x *PatternFlowGtpv2VersionCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2VersionCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68301,7 +68447,7 @@ func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2VersionMetricTag struct { +type PatternFlowGtpv1SquenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68315,12 +68461,12 @@ type PatternFlowGtpv2VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2VersionMetricTag) Reset() { - *x = PatternFlowGtpv2VersionMetricTag{} +func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { + *x = PatternFlowGtpv1SquenceNumberMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[602] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68328,13 +68474,13 @@ func (x *PatternFlowGtpv2VersionMetricTag) Reset() { } } -func (x *PatternFlowGtpv2VersionMetricTag) String() string { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2VersionMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[602] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68346,59 +68492,60 @@ func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2VersionMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SquenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumberMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{602} } -func (x *PatternFlowGtpv2VersionMetricTag) GetName() string { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowGtpv2Version struct { +// Sequence number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must +// be interpreted only if the s_flag bit is on. +type PatternFlowGtpv1SquenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1SquenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SquenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1SquenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Version) Reset() { - *x = PatternFlowGtpv2Version{} +func (x *PatternFlowGtpv1SquenceNumber) Reset() { + *x = PatternFlowGtpv1SquenceNumber{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[603] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68406,13 +68553,13 @@ func (x *PatternFlowGtpv2Version) Reset() { } } -func (x *PatternFlowGtpv2Version) String() string { +func (x *PatternFlowGtpv1SquenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Version) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumber) ProtoMessage() {} -func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[603] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68424,47 +68571,47 @@ func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Version.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Version) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1SquenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumber) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{603} } -func (x *PatternFlowGtpv2Version) GetChoice() PatternFlowGtpv2Version_Choice_Enum { +func (x *PatternFlowGtpv1SquenceNumber) GetChoice() PatternFlowGtpv1SquenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Version_Choice_unspecified + return PatternFlowGtpv1SquenceNumber_Choice_unspecified } -func (x *PatternFlowGtpv2Version) GetValue() uint32 { +func (x *PatternFlowGtpv1SquenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Version) GetValues() []uint32 { +func (x *PatternFlowGtpv1SquenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Version) GetIncrement() *PatternFlowGtpv2VersionCounter { +func (x *PatternFlowGtpv1SquenceNumber) GetIncrement() *PatternFlowGtpv1SquenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Version) GetDecrement() *PatternFlowGtpv2VersionCounter { +func (x *PatternFlowGtpv1SquenceNumber) GetDecrement() *PatternFlowGtpv1SquenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetricTag { +func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1SquenceNumberMetricTag { if x != nil { return x.MetricTags } @@ -68472,7 +68619,7 @@ func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetr } // integer counter pattern -type PatternFlowGtpv2PiggybackingFlagCounter struct { +type PatternFlowGtpv1NPduNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68488,8 +68635,8 @@ type PatternFlowGtpv2PiggybackingFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { - *x = PatternFlowGtpv2PiggybackingFlagCounter{} +func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { + *x = PatternFlowGtpv1NPduNumberCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[604] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68497,13 +68644,13 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { } } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) String() string { +func (x *PatternFlowGtpv1NPduNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlagCounter) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumberCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[604] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68515,26 +68662,26 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlagCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NPduNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumberCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{604} } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1NPduNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1NPduNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68544,7 +68691,7 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2PiggybackingFlagMetricTag struct { +type PatternFlowGtpv1NPduNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68558,12 +68705,12 @@ type PatternFlowGtpv2PiggybackingFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { - *x = PatternFlowGtpv2PiggybackingFlagMetricTag{} +func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { + *x = PatternFlowGtpv1NPduNumberMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[605] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68571,13 +68718,13 @@ func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { } } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) String() string { +func (x *PatternFlowGtpv1NPduNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[605] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68589,42 +68736,42 @@ func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlagMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NPduNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumberMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{605} } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetName() string { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// If piggybacking_flag is set to 1 then another GTP-C message with its own header shall -// be present at the end of the current message -type PatternFlowGtpv2PiggybackingFlag struct { +// N-PDU number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must +// be interpreted only if the pn_flag bit is on. +type PatternFlowGtpv1NPduNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2PiggybackingFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2PiggybackingFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1NPduNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NPduNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -68632,17 +68779,17 @@ type PatternFlowGtpv2PiggybackingFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2PiggybackingFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1NPduNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { - *x = PatternFlowGtpv2PiggybackingFlag{} +func (x *PatternFlowGtpv1NPduNumber) Reset() { + *x = PatternFlowGtpv1NPduNumber{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[606] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68650,13 +68797,13 @@ func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { } } -func (x *PatternFlowGtpv2PiggybackingFlag) String() string { +func (x *PatternFlowGtpv1NPduNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlag) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumber) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[606] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68668,47 +68815,47 @@ func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NPduNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumber) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{606} } -func (x *PatternFlowGtpv2PiggybackingFlag) GetChoice() PatternFlowGtpv2PiggybackingFlag_Choice_Enum { +func (x *PatternFlowGtpv1NPduNumber) GetChoice() PatternFlowGtpv1NPduNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2PiggybackingFlag_Choice_unspecified + return PatternFlowGtpv1NPduNumber_Choice_unspecified } -func (x *PatternFlowGtpv2PiggybackingFlag) GetValue() uint32 { +func (x *PatternFlowGtpv1NPduNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlag) GetValues() []uint32 { +func (x *PatternFlowGtpv1NPduNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetIncrement() *PatternFlowGtpv2PiggybackingFlagCounter { +func (x *PatternFlowGtpv1NPduNumber) GetIncrement() *PatternFlowGtpv1NPduNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetDecrement() *PatternFlowGtpv2PiggybackingFlagCounter { +func (x *PatternFlowGtpv1NPduNumber) GetDecrement() *PatternFlowGtpv1NPduNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2PiggybackingFlagMetricTag { +func (x *PatternFlowGtpv1NPduNumber) GetMetricTags() []*PatternFlowGtpv1NPduNumberMetricTag { if x != nil { return x.MetricTags } @@ -68716,7 +68863,7 @@ func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2Pi } // integer counter pattern -type PatternFlowGtpv2TeidFlagCounter struct { +type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68732,8 +68879,8 @@ type PatternFlowGtpv2TeidFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { - *x = PatternFlowGtpv2TeidFlagCounter{} +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[607] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68741,13 +68888,13 @@ func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { } } -func (x *PatternFlowGtpv2TeidFlagCounter) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlagCounter) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[607] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68759,26 +68906,26 @@ func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlagCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{607} } -func (x *PatternFlowGtpv2TeidFlagCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2TeidFlagCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68788,7 +68935,7 @@ func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2TeidFlagMetricTag struct { +type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68802,12 +68949,12 @@ type PatternFlowGtpv2TeidFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { - *x = PatternFlowGtpv2TeidFlagMetricTag{} +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[608] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68815,13 +68962,13 @@ func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { } } -func (x *PatternFlowGtpv2TeidFlagMetricTag) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[608] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68833,43 +68980,42 @@ func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlagMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{608} } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetName() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// If teid_flag is set to 1 then the TEID field will be present between the message -// length and the sequence number. All messages except Echo and Echo reply require TEID -// to be present -type PatternFlowGtpv2TeidFlag struct { +// Next extension header. Exists if any of the e_flag, s_flag, or pn_flag bits are on. +// Must be interpreted only if the e_flag bit is on. +type PatternFlowGtpv1NextExtensionHeaderType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2TeidFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2TeidFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -68877,17 +69023,17 @@ type PatternFlowGtpv2TeidFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2TeidFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2TeidFlag) Reset() { - *x = PatternFlowGtpv2TeidFlag{} +func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[609] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68895,13 +69041,13 @@ func (x *PatternFlowGtpv2TeidFlag) Reset() { } } -func (x *PatternFlowGtpv2TeidFlag) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlag) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderType) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[609] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68913,47 +69059,47 @@ func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{609} } -func (x *PatternFlowGtpv2TeidFlag) GetChoice() PatternFlowGtpv2TeidFlag_Choice_Enum { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetChoice() PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2TeidFlag_Choice_unspecified + return PatternFlowGtpv1NextExtensionHeaderType_Choice_unspecified } -func (x *PatternFlowGtpv2TeidFlag) GetValue() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2TeidFlag) GetValues() []uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetIncrement() *PatternFlowGtpv2TeidFlagCounter { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetIncrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetDecrement() *PatternFlowGtpv2TeidFlagCounter { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetDecrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetMetricTags() []*PatternFlowGtpv2TeidFlagMetricTag { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetMetricTags() []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { if x != nil { return x.MetricTags } @@ -68961,7 +69107,7 @@ func (x *PatternFlowGtpv2TeidFlag) GetMetricTags() []*PatternFlowGtpv2TeidFlagMe } // integer counter pattern -type PatternFlowGtpv2Spare1Counter struct { +type PatternFlowGtpExtensionExtensionLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68977,8 +69123,8 @@ type PatternFlowGtpv2Spare1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2Spare1Counter) Reset() { - *x = PatternFlowGtpv2Spare1Counter{} +func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { + *x = PatternFlowGtpExtensionExtensionLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[610] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -68986,13 +69132,13 @@ func (x *PatternFlowGtpv2Spare1Counter) Reset() { } } -func (x *PatternFlowGtpv2Spare1Counter) String() string { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1Counter) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLengthCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[610] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69004,26 +69150,26 @@ func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionExtensionLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{610} } -func (x *PatternFlowGtpv2Spare1Counter) GetStart() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2Spare1Counter) GetStep() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69033,7 +69179,7 @@ func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2Spare1MetricTag struct { +type PatternFlowGtpExtensionExtensionLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69047,12 +69193,12 @@ type PatternFlowGtpv2Spare1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { - *x = PatternFlowGtpv2Spare1MetricTag{} +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { + *x = PatternFlowGtpExtensionExtensionLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[611] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69060,13 +69206,13 @@ func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { } } -func (x *PatternFlowGtpv2Spare1MetricTag) String() string { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1MetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[611] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69078,41 +69224,43 @@ func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionExtensionLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{611} } -func (x *PatternFlowGtpv2Spare1MetricTag) GetName() string { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2Spare1MetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2Spare1MetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A 3-bit reserved field (must be 0). -type PatternFlowGtpv2Spare1 struct { +// This field states the length of this extension header, including the length, the +// contents, and the next extension header field, in 4-octet units, so the length of +// the extension must always be a multiple of 4. +type PatternFlowGtpExtensionExtensionLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Spare1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionExtensionLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionExtensionLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -69120,17 +69268,17 @@ type PatternFlowGtpv2Spare1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2Spare1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionExtensionLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Spare1) Reset() { - *x = PatternFlowGtpv2Spare1{} +func (x *PatternFlowGtpExtensionExtensionLength) Reset() { + *x = PatternFlowGtpExtensionExtensionLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[612] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69138,13 +69286,13 @@ func (x *PatternFlowGtpv2Spare1) Reset() { } } -func (x *PatternFlowGtpv2Spare1) String() string { +func (x *PatternFlowGtpExtensionExtensionLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLength) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[612] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69156,47 +69304,47 @@ func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionExtensionLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{612} } -func (x *PatternFlowGtpv2Spare1) GetChoice() PatternFlowGtpv2Spare1_Choice_Enum { +func (x *PatternFlowGtpExtensionExtensionLength) GetChoice() PatternFlowGtpExtensionExtensionLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Spare1_Choice_unspecified + return PatternFlowGtpExtensionExtensionLength_Choice_unspecified } -func (x *PatternFlowGtpv2Spare1) GetValue() uint32 { +func (x *PatternFlowGtpExtensionExtensionLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Spare1) GetValues() []uint32 { +func (x *PatternFlowGtpExtensionExtensionLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Spare1) GetIncrement() *PatternFlowGtpv2Spare1Counter { +func (x *PatternFlowGtpExtensionExtensionLength) GetIncrement() *PatternFlowGtpExtensionExtensionLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Spare1) GetDecrement() *PatternFlowGtpv2Spare1Counter { +func (x *PatternFlowGtpExtensionExtensionLength) GetDecrement() *PatternFlowGtpExtensionExtensionLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1MetricTag { +func (x *PatternFlowGtpExtensionExtensionLength) GetMetricTags() []*PatternFlowGtpExtensionExtensionLengthMetricTag { if x != nil { return x.MetricTags } @@ -69204,24 +69352,24 @@ func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1Metric } // integer counter pattern -type PatternFlowGtpv2MessageTypeCounter struct { +type PatternFlowGtpExtensionContentsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + Start *uint64 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + Step *uint64 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Count *uint64 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { - *x = PatternFlowGtpv2MessageTypeCounter{} +func (x *PatternFlowGtpExtensionContentsCounter) Reset() { + *x = PatternFlowGtpExtensionContentsCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[613] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69229,13 +69377,13 @@ func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { } } -func (x *PatternFlowGtpv2MessageTypeCounter) String() string { +func (x *PatternFlowGtpExtensionContentsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpExtensionContentsCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[613] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69247,26 +69395,26 @@ func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionContentsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContentsCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{613} } -func (x *PatternFlowGtpv2MessageTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpExtensionContentsCounter) GetStart() uint64 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2MessageTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpExtensionContentsCounter) GetStep() uint64 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { if x != nil && x.Count != nil { return *x.Count } @@ -69276,7 +69424,7 @@ func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2MessageTypeMetricTag struct { +type PatternFlowGtpExtensionContentsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69287,15 +69435,15 @@ type PatternFlowGtpv2MessageTypeMetricTag struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Offset *uint64 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // default = 48 + Length *uint64 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { - *x = PatternFlowGtpv2MessageTypeMetricTag{} +func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { + *x = PatternFlowGtpExtensionContentsMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[614] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69303,13 +69451,13 @@ func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { } } -func (x *PatternFlowGtpv2MessageTypeMetricTag) String() string { +func (x *PatternFlowGtpExtensionContentsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionContentsMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[614] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69321,60 +69469,59 @@ func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionContentsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContentsMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{614} } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetName() string { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetOffset() uint64 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetLength() uint64 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// An 8-bit field that indicates the type of GTP message. Different types of messages -// are defined in 3GPP TS 29.060 section 7.1 -type PatternFlowGtpv2MessageType struct { +// The extension header contents +type PatternFlowGtpExtensionContents struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionContents_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionContents_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Value *uint64 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + Values []uint64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionContentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2MessageType) Reset() { - *x = PatternFlowGtpv2MessageType{} +func (x *PatternFlowGtpExtensionContents) Reset() { + *x = PatternFlowGtpExtensionContents{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[615] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69382,13 +69529,13 @@ func (x *PatternFlowGtpv2MessageType) Reset() { } } -func (x *PatternFlowGtpv2MessageType) String() string { +func (x *PatternFlowGtpExtensionContents) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageType) ProtoMessage() {} +func (*PatternFlowGtpExtensionContents) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[615] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69400,47 +69547,47 @@ func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionContents.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContents) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{615} } -func (x *PatternFlowGtpv2MessageType) GetChoice() PatternFlowGtpv2MessageType_Choice_Enum { +func (x *PatternFlowGtpExtensionContents) GetChoice() PatternFlowGtpExtensionContents_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2MessageType_Choice_unspecified + return PatternFlowGtpExtensionContents_Choice_unspecified } -func (x *PatternFlowGtpv2MessageType) GetValue() uint32 { +func (x *PatternFlowGtpExtensionContents) GetValue() uint64 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2MessageType) GetValues() []uint32 { +func (x *PatternFlowGtpExtensionContents) GetValues() []uint64 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2MessageType) GetIncrement() *PatternFlowGtpv2MessageTypeCounter { +func (x *PatternFlowGtpExtensionContents) GetIncrement() *PatternFlowGtpExtensionContentsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2MessageType) GetDecrement() *PatternFlowGtpv2MessageTypeCounter { +func (x *PatternFlowGtpExtensionContents) GetDecrement() *PatternFlowGtpExtensionContentsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2MessageTypeMetricTag { +func (x *PatternFlowGtpExtensionContents) GetMetricTags() []*PatternFlowGtpExtensionContentsMetricTag { if x != nil { return x.MetricTags } @@ -69448,7 +69595,7 @@ func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2Message } // integer counter pattern -type PatternFlowGtpv2MessageLengthCounter struct { +type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69464,8 +69611,8 @@ type PatternFlowGtpv2MessageLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { - *x = PatternFlowGtpv2MessageLengthCounter{} +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeaderCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[616] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69473,13 +69620,13 @@ func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { } } -func (x *PatternFlowGtpv2MessageLengthCounter) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[616] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69491,26 +69638,26 @@ func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{616} } -func (x *PatternFlowGtpv2MessageLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2MessageLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69520,7 +69667,7 @@ func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2MessageLengthMetricTag struct { +type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69534,12 +69681,12 @@ type PatternFlowGtpv2MessageLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { - *x = PatternFlowGtpv2MessageLengthMetricTag{} +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeaderMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[617] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69547,13 +69694,13 @@ func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { } } -func (x *PatternFlowGtpv2MessageLengthMetricTag) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[617] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69565,42 +69712,42 @@ func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{617} } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetName() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A 16-bit field that indicates the length of the payload in bytes, excluding the mandatory -// GTP-c header (first 4 bytes). Includes the TEID and sequence_number if they are present. -type PatternFlowGtpv2MessageLength struct { +// It states the type of the next extension, or 0 if no next extension exists. This +// permits chaining several next extension headers. +type PatternFlowGtpExtensionNextExtensionHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -69608,17 +69755,17 @@ type PatternFlowGtpv2MessageLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2MessageLength) Reset() { - *x = PatternFlowGtpv2MessageLength{} +func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeader{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[618] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69626,13 +69773,13 @@ func (x *PatternFlowGtpv2MessageLength) Reset() { } } -func (x *PatternFlowGtpv2MessageLength) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLength) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeader) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[618] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69644,47 +69791,47 @@ func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeader) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{618} } -func (x *PatternFlowGtpv2MessageLength) GetChoice() PatternFlowGtpv2MessageLength_Choice_Enum { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetChoice() PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2MessageLength_Choice_unspecified + return PatternFlowGtpExtensionNextExtensionHeader_Choice_unspecified } -func (x *PatternFlowGtpv2MessageLength) GetValue() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2MessageLength) GetValues() []uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2MessageLength) GetIncrement() *PatternFlowGtpv2MessageLengthCounter { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetIncrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2MessageLength) GetDecrement() *PatternFlowGtpv2MessageLengthCounter { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetDecrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2MessageLengthMetricTag { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag { if x != nil { return x.MetricTags } @@ -69692,13 +69839,13 @@ func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2Messa } // integer counter pattern -type PatternFlowGtpv2TeidCounter struct { +type PatternFlowGtpv2VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 2 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -69708,8 +69855,8 @@ type PatternFlowGtpv2TeidCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2TeidCounter) Reset() { - *x = PatternFlowGtpv2TeidCounter{} +func (x *PatternFlowGtpv2VersionCounter) Reset() { + *x = PatternFlowGtpv2VersionCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[619] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69717,13 +69864,13 @@ func (x *PatternFlowGtpv2TeidCounter) Reset() { } } -func (x *PatternFlowGtpv2TeidCounter) String() string { +func (x *PatternFlowGtpv2VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidCounter) ProtoMessage() {} +func (*PatternFlowGtpv2VersionCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[619] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69735,26 +69882,26 @@ func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2VersionCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{619} } -func (x *PatternFlowGtpv2TeidCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2TeidCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69764,7 +69911,7 @@ func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2TeidMetricTag struct { +type PatternFlowGtpv2VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69778,12 +69925,12 @@ type PatternFlowGtpv2TeidMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2TeidMetricTag) Reset() { - *x = PatternFlowGtpv2TeidMetricTag{} +func (x *PatternFlowGtpv2VersionMetricTag) Reset() { + *x = PatternFlowGtpv2VersionMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[620] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69791,13 +69938,13 @@ func (x *PatternFlowGtpv2TeidMetricTag) Reset() { } } -func (x *PatternFlowGtpv2TeidMetricTag) String() string { +func (x *PatternFlowGtpv2VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[620] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69809,60 +69956,59 @@ func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2VersionMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{620} } -func (x *PatternFlowGtpv2TeidMetricTag) GetName() string { +func (x *PatternFlowGtpv2VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2TeidMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2TeidMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tunnel endpoint identifier. A 32-bit (4-octet) field used to multiplex different -// connections in the same GTP tunnel. Is present only if the teid_flag is set. -type PatternFlowGtpv2Teid struct { +// Version number +type PatternFlowGtpv2Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Teid_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 2 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [2] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Teid) Reset() { - *x = PatternFlowGtpv2Teid{} +func (x *PatternFlowGtpv2Version) Reset() { + *x = PatternFlowGtpv2Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[621] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69870,13 +70016,13 @@ func (x *PatternFlowGtpv2Teid) Reset() { } } -func (x *PatternFlowGtpv2Teid) String() string { +func (x *PatternFlowGtpv2Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Teid) ProtoMessage() {} +func (*PatternFlowGtpv2Version) ProtoMessage() {} -func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[621] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69888,47 +70034,47 @@ func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Teid.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Teid) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Version.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Version) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{621} } -func (x *PatternFlowGtpv2Teid) GetChoice() PatternFlowGtpv2Teid_Choice_Enum { +func (x *PatternFlowGtpv2Version) GetChoice() PatternFlowGtpv2Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Teid_Choice_unspecified + return PatternFlowGtpv2Version_Choice_unspecified } -func (x *PatternFlowGtpv2Teid) GetValue() uint32 { +func (x *PatternFlowGtpv2Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Teid) GetValues() []uint32 { +func (x *PatternFlowGtpv2Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Teid) GetIncrement() *PatternFlowGtpv2TeidCounter { +func (x *PatternFlowGtpv2Version) GetIncrement() *PatternFlowGtpv2VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Teid) GetDecrement() *PatternFlowGtpv2TeidCounter { +func (x *PatternFlowGtpv2Version) GetDecrement() *PatternFlowGtpv2VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag { +func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetricTag { if x != nil { return x.MetricTags } @@ -69936,7 +70082,7 @@ func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag } // integer counter pattern -type PatternFlowGtpv2SequenceNumberCounter struct { +type PatternFlowGtpv2PiggybackingFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69952,8 +70098,8 @@ type PatternFlowGtpv2SequenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { - *x = PatternFlowGtpv2SequenceNumberCounter{} +func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { + *x = PatternFlowGtpv2PiggybackingFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[622] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69961,13 +70107,13 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { } } -func (x *PatternFlowGtpv2SequenceNumberCounter) String() string { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[622] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -69979,26 +70125,26 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumberCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2PiggybackingFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{622} } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70008,7 +70154,7 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2SequenceNumberMetricTag struct { +type PatternFlowGtpv2PiggybackingFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70022,12 +70168,12 @@ type PatternFlowGtpv2SequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 24 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { - *x = PatternFlowGtpv2SequenceNumberMetricTag{} +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { + *x = PatternFlowGtpv2PiggybackingFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[623] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70035,13 +70181,13 @@ func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { } } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) String() string { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[623] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70053,41 +70199,42 @@ func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumberMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2PiggybackingFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{623} } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The sequence number -type PatternFlowGtpv2SequenceNumber struct { +// If piggybacking_flag is set to 1 then another GTP-C message with its own header shall +// be present at the end of the current message +type PatternFlowGtpv2PiggybackingFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2SequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2SequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2PiggybackingFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2PiggybackingFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -70095,17 +70242,17 @@ type PatternFlowGtpv2SequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2SequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2PiggybackingFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumber) Reset() { - *x = PatternFlowGtpv2SequenceNumber{} +func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { + *x = PatternFlowGtpv2PiggybackingFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[624] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70113,13 +70260,13 @@ func (x *PatternFlowGtpv2SequenceNumber) Reset() { } } -func (x *PatternFlowGtpv2SequenceNumber) String() string { +func (x *PatternFlowGtpv2PiggybackingFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumber) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlag) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[624] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70131,47 +70278,47 @@ func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumber) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2PiggybackingFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{624} } -func (x *PatternFlowGtpv2SequenceNumber) GetChoice() PatternFlowGtpv2SequenceNumber_Choice_Enum { +func (x *PatternFlowGtpv2PiggybackingFlag) GetChoice() PatternFlowGtpv2PiggybackingFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2SequenceNumber_Choice_unspecified + return PatternFlowGtpv2PiggybackingFlag_Choice_unspecified } -func (x *PatternFlowGtpv2SequenceNumber) GetValue() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2SequenceNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv2PiggybackingFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetIncrement() *PatternFlowGtpv2SequenceNumberCounter { +func (x *PatternFlowGtpv2PiggybackingFlag) GetIncrement() *PatternFlowGtpv2PiggybackingFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetDecrement() *PatternFlowGtpv2SequenceNumberCounter { +func (x *PatternFlowGtpv2PiggybackingFlag) GetDecrement() *PatternFlowGtpv2PiggybackingFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2SequenceNumberMetricTag { +func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2PiggybackingFlagMetricTag { if x != nil { return x.MetricTags } @@ -70179,7 +70326,7 @@ func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2Sequ } // integer counter pattern -type PatternFlowGtpv2Spare2Counter struct { +type PatternFlowGtpv2TeidFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70195,8 +70342,8 @@ type PatternFlowGtpv2Spare2Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2Spare2Counter) Reset() { - *x = PatternFlowGtpv2Spare2Counter{} +func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { + *x = PatternFlowGtpv2TeidFlagCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[625] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70204,13 +70351,13 @@ func (x *PatternFlowGtpv2Spare2Counter) Reset() { } } -func (x *PatternFlowGtpv2Spare2Counter) String() string { +func (x *PatternFlowGtpv2TeidFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2Counter) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[625] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70222,26 +70369,26 @@ func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2Counter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlagCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{625} } -func (x *PatternFlowGtpv2Spare2Counter) GetStart() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2Spare2Counter) GetStep() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70251,7 +70398,7 @@ func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowGtpv2Spare2MetricTag struct { +type PatternFlowGtpv2TeidFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70265,12 +70412,12 @@ type PatternFlowGtpv2Spare2MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { - *x = PatternFlowGtpv2Spare2MetricTag{} +func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { + *x = PatternFlowGtpv2TeidFlagMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[626] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70278,13 +70425,13 @@ func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { } } -func (x *PatternFlowGtpv2Spare2MetricTag) String() string { +func (x *PatternFlowGtpv2TeidFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2MetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[626] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70296,41 +70443,43 @@ func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2MetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlagMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{626} } -func (x *PatternFlowGtpv2Spare2MetricTag) GetName() string { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowGtpv2Spare2MetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2Spare2MetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowGtpv2Spare2 struct { +// If teid_flag is set to 1 then the TEID field will be present between the message +// length and the sequence number. All messages except Echo and Echo reply require TEID +// to be present +type PatternFlowGtpv2TeidFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Spare2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare2_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2TeidFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2TeidFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -70338,17 +70487,17 @@ type PatternFlowGtpv2Spare2 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowGtpv2Spare2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2TeidFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Spare2) Reset() { - *x = PatternFlowGtpv2Spare2{} +func (x *PatternFlowGtpv2TeidFlag) Reset() { + *x = PatternFlowGtpv2TeidFlag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[627] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70356,13 +70505,13 @@ func (x *PatternFlowGtpv2Spare2) Reset() { } } -func (x *PatternFlowGtpv2Spare2) String() string { +func (x *PatternFlowGtpv2TeidFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[627] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70374,47 +70523,47 @@ func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{627} } -func (x *PatternFlowGtpv2Spare2) GetChoice() PatternFlowGtpv2Spare2_Choice_Enum { +func (x *PatternFlowGtpv2TeidFlag) GetChoice() PatternFlowGtpv2TeidFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Spare2_Choice_unspecified + return PatternFlowGtpv2TeidFlag_Choice_unspecified } -func (x *PatternFlowGtpv2Spare2) GetValue() uint32 { +func (x *PatternFlowGtpv2TeidFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Spare2) GetValues() []uint32 { +func (x *PatternFlowGtpv2TeidFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Spare2) GetIncrement() *PatternFlowGtpv2Spare2Counter { +func (x *PatternFlowGtpv2TeidFlag) GetIncrement() *PatternFlowGtpv2TeidFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Spare2) GetDecrement() *PatternFlowGtpv2Spare2Counter { +func (x *PatternFlowGtpv2TeidFlag) GetDecrement() *PatternFlowGtpv2TeidFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2MetricTag { +func (x *PatternFlowGtpv2TeidFlag) GetMetricTags() []*PatternFlowGtpv2TeidFlagMetricTag { if x != nil { return x.MetricTags } @@ -70422,13 +70571,13 @@ func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2Metric } // integer counter pattern -type PatternFlowArpHardwareTypeCounter struct { +type PatternFlowGtpv2Spare1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -70438,8 +70587,8 @@ type PatternFlowArpHardwareTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpHardwareTypeCounter) Reset() { - *x = PatternFlowArpHardwareTypeCounter{} +func (x *PatternFlowGtpv2Spare1Counter) Reset() { + *x = PatternFlowGtpv2Spare1Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[628] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70447,13 +70596,13 @@ func (x *PatternFlowArpHardwareTypeCounter) Reset() { } } -func (x *PatternFlowArpHardwareTypeCounter) String() string { +func (x *PatternFlowGtpv2Spare1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1Counter) ProtoMessage() {} -func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[628] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70465,26 +70614,26 @@ func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{628} } -func (x *PatternFlowArpHardwareTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpHardwareTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70494,7 +70643,7 @@ func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpHardwareTypeMetricTag struct { +type PatternFlowGtpv2Spare1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70508,12 +70657,12 @@ type PatternFlowArpHardwareTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { - *x = PatternFlowArpHardwareTypeMetricTag{} +func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { + *x = PatternFlowGtpv2Spare1MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[629] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70521,13 +70670,13 @@ func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { } } -func (x *PatternFlowArpHardwareTypeMetricTag) String() string { +func (x *PatternFlowGtpv2Spare1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1MetricTag) ProtoMessage() {} -func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[629] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70539,59 +70688,59 @@ func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{629} } -func (x *PatternFlowArpHardwareTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv2Spare1MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpHardwareTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2Spare1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpHardwareTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2Spare1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Network link protocol type -type PatternFlowArpHardwareType struct { +// A 3-bit reserved field (must be 0). +type PatternFlowGtpv2Spare1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpHardwareType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Spare1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare1_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpHardwareTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2Spare1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpHardwareType) Reset() { - *x = PatternFlowArpHardwareType{} +func (x *PatternFlowGtpv2Spare1) Reset() { + *x = PatternFlowGtpv2Spare1{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[630] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70599,13 +70748,13 @@ func (x *PatternFlowArpHardwareType) Reset() { } } -func (x *PatternFlowArpHardwareType) String() string { +func (x *PatternFlowGtpv2Spare1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareType) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1) ProtoMessage() {} -func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[630] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70617,47 +70766,47 @@ func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareType.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare1.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{630} } -func (x *PatternFlowArpHardwareType) GetChoice() PatternFlowArpHardwareType_Choice_Enum { +func (x *PatternFlowGtpv2Spare1) GetChoice() PatternFlowGtpv2Spare1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpHardwareType_Choice_unspecified + return PatternFlowGtpv2Spare1_Choice_unspecified } -func (x *PatternFlowArpHardwareType) GetValue() uint32 { +func (x *PatternFlowGtpv2Spare1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpHardwareType) GetValues() []uint32 { +func (x *PatternFlowGtpv2Spare1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpHardwareType) GetIncrement() *PatternFlowArpHardwareTypeCounter { +func (x *PatternFlowGtpv2Spare1) GetIncrement() *PatternFlowGtpv2Spare1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpHardwareType) GetDecrement() *PatternFlowArpHardwareTypeCounter { +func (x *PatternFlowGtpv2Spare1) GetDecrement() *PatternFlowGtpv2Spare1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTypeMetricTag { +func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1MetricTag { if x != nil { return x.MetricTags } @@ -70665,13 +70814,13 @@ func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTy } // integer counter pattern -type PatternFlowArpProtocolTypeCounter struct { +type PatternFlowGtpv2MessageTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2048 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -70681,8 +70830,8 @@ type PatternFlowArpProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpProtocolTypeCounter) Reset() { - *x = PatternFlowArpProtocolTypeCounter{} +func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { + *x = PatternFlowGtpv2MessageTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[631] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70690,13 +70839,13 @@ func (x *PatternFlowArpProtocolTypeCounter) Reset() { } } -func (x *PatternFlowArpProtocolTypeCounter) String() string { +func (x *PatternFlowGtpv2MessageTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv2MessageTypeCounter) ProtoMessage() {} -func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[631] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70708,26 +70857,26 @@ func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{631} } -func (x *PatternFlowArpProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70737,7 +70886,7 @@ func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpProtocolTypeMetricTag struct { +type PatternFlowGtpv2MessageTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70751,12 +70900,12 @@ type PatternFlowArpProtocolTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { - *x = PatternFlowArpProtocolTypeMetricTag{} +func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { + *x = PatternFlowGtpv2MessageTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[632] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70764,13 +70913,13 @@ func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { } } -func (x *PatternFlowArpProtocolTypeMetricTag) String() string { +func (x *PatternFlowGtpv2MessageTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2MessageTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[632] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70782,59 +70931,60 @@ func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{632} } -func (x *PatternFlowArpProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The internetwork protocol for which the ARP request is intended -type PatternFlowArpProtocolType struct { +// An 8-bit field that indicates the type of GTP message. Different types of messages +// are defined in 3GPP TS 29.060 section 7.1 +type PatternFlowGtpv2MessageType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2048 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2048] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpProtocolType) Reset() { - *x = PatternFlowArpProtocolType{} +func (x *PatternFlowGtpv2MessageType) Reset() { + *x = PatternFlowGtpv2MessageType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[633] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70842,13 +70992,13 @@ func (x *PatternFlowArpProtocolType) Reset() { } } -func (x *PatternFlowArpProtocolType) String() string { +func (x *PatternFlowGtpv2MessageType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolType) ProtoMessage() {} +func (*PatternFlowGtpv2MessageType) ProtoMessage() {} -func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[633] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70860,47 +71010,47 @@ func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{633} } -func (x *PatternFlowArpProtocolType) GetChoice() PatternFlowArpProtocolType_Choice_Enum { +func (x *PatternFlowGtpv2MessageType) GetChoice() PatternFlowGtpv2MessageType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpProtocolType_Choice_unspecified + return PatternFlowGtpv2MessageType_Choice_unspecified } -func (x *PatternFlowArpProtocolType) GetValue() uint32 { +func (x *PatternFlowGtpv2MessageType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpProtocolType) GetValues() []uint32 { +func (x *PatternFlowGtpv2MessageType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpProtocolType) GetIncrement() *PatternFlowArpProtocolTypeCounter { +func (x *PatternFlowGtpv2MessageType) GetIncrement() *PatternFlowGtpv2MessageTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpProtocolType) GetDecrement() *PatternFlowArpProtocolTypeCounter { +func (x *PatternFlowGtpv2MessageType) GetDecrement() *PatternFlowGtpv2MessageTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTypeMetricTag { +func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2MessageTypeMetricTag { if x != nil { return x.MetricTags } @@ -70908,13 +71058,13 @@ func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTy } // integer counter pattern -type PatternFlowArpHardwareLengthCounter struct { +type PatternFlowGtpv2MessageLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 6 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -70924,8 +71074,8 @@ type PatternFlowArpHardwareLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpHardwareLengthCounter) Reset() { - *x = PatternFlowArpHardwareLengthCounter{} +func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { + *x = PatternFlowGtpv2MessageLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[634] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70933,13 +71083,13 @@ func (x *PatternFlowArpHardwareLengthCounter) Reset() { } } -func (x *PatternFlowArpHardwareLengthCounter) String() string { +func (x *PatternFlowGtpv2MessageLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLengthCounter) ProtoMessage() {} -func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[634] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70951,26 +71101,26 @@ func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{634} } -func (x *PatternFlowArpHardwareLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpHardwareLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70980,7 +71130,7 @@ func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpHardwareLengthMetricTag struct { +type PatternFlowGtpv2MessageLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70994,12 +71144,12 @@ type PatternFlowArpHardwareLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { - *x = PatternFlowArpHardwareLengthMetricTag{} +func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { + *x = PatternFlowGtpv2MessageLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[635] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71007,13 +71157,13 @@ func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { } } -func (x *PatternFlowArpHardwareLengthMetricTag) String() string { +func (x *PatternFlowGtpv2MessageLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[635] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71025,59 +71175,60 @@ func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{635} } -func (x *PatternFlowArpHardwareLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpHardwareLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpHardwareLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length (in octets) of a hardware address -type PatternFlowArpHardwareLength struct { +// A 16-bit field that indicates the length of the payload in bytes, excluding the mandatory +// GTP-c header (first 4 bytes). Includes the TEID and sequence_number if they are present. +type PatternFlowGtpv2MessageLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpHardwareLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 6 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [6] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpHardwareLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpHardwareLength) Reset() { - *x = PatternFlowArpHardwareLength{} +func (x *PatternFlowGtpv2MessageLength) Reset() { + *x = PatternFlowGtpv2MessageLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[636] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71085,13 +71236,13 @@ func (x *PatternFlowArpHardwareLength) Reset() { } } -func (x *PatternFlowArpHardwareLength) String() string { +func (x *PatternFlowGtpv2MessageLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLength) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLength) ProtoMessage() {} -func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[636] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71103,47 +71254,47 @@ func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLength.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2MessageLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{636} } -func (x *PatternFlowArpHardwareLength) GetChoice() PatternFlowArpHardwareLength_Choice_Enum { +func (x *PatternFlowGtpv2MessageLength) GetChoice() PatternFlowGtpv2MessageLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpHardwareLength_Choice_unspecified + return PatternFlowGtpv2MessageLength_Choice_unspecified } -func (x *PatternFlowArpHardwareLength) GetValue() uint32 { +func (x *PatternFlowGtpv2MessageLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpHardwareLength) GetValues() []uint32 { +func (x *PatternFlowGtpv2MessageLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpHardwareLength) GetIncrement() *PatternFlowArpHardwareLengthCounter { +func (x *PatternFlowGtpv2MessageLength) GetIncrement() *PatternFlowGtpv2MessageLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpHardwareLength) GetDecrement() *PatternFlowArpHardwareLengthCounter { +func (x *PatternFlowGtpv2MessageLength) GetDecrement() *PatternFlowGtpv2MessageLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardwareLengthMetricTag { +func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2MessageLengthMetricTag { if x != nil { return x.MetricTags } @@ -71151,13 +71302,13 @@ func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardware } // integer counter pattern -type PatternFlowArpProtocolLengthCounter struct { +type PatternFlowGtpv2TeidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 4 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -71167,8 +71318,8 @@ type PatternFlowArpProtocolLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpProtocolLengthCounter) Reset() { - *x = PatternFlowArpProtocolLengthCounter{} +func (x *PatternFlowGtpv2TeidCounter) Reset() { + *x = PatternFlowGtpv2TeidCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[637] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71176,13 +71327,13 @@ func (x *PatternFlowArpProtocolLengthCounter) Reset() { } } -func (x *PatternFlowArpProtocolLengthCounter) String() string { +func (x *PatternFlowGtpv2TeidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv2TeidCounter) ProtoMessage() {} -func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[637] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71194,26 +71345,26 @@ func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLengthCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{637} } -func (x *PatternFlowArpProtocolLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpProtocolLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71223,7 +71374,7 @@ func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpProtocolLengthMetricTag struct { +type PatternFlowGtpv2TeidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71237,12 +71388,12 @@ type PatternFlowArpProtocolLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { - *x = PatternFlowArpProtocolLengthMetricTag{} +func (x *PatternFlowGtpv2TeidMetricTag) Reset() { + *x = PatternFlowGtpv2TeidMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[638] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71250,13 +71401,13 @@ func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { } } -func (x *PatternFlowArpProtocolLengthMetricTag) String() string { +func (x *PatternFlowGtpv2TeidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2TeidMetricTag) ProtoMessage() {} -func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[638] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71268,59 +71419,60 @@ func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLengthMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2TeidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{638} } -func (x *PatternFlowArpProtocolLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv2TeidMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpProtocolLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2TeidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpProtocolLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2TeidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length (in octets) of internetwork addresses -type PatternFlowArpProtocolLength struct { +// Tunnel endpoint identifier. A 32-bit (4-octet) field used to multiplex different +// connections in the same GTP tunnel. Is present only if the teid_flag is set. +type PatternFlowGtpv2Teid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpProtocolLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Teid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 4 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [4] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpProtocolLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpProtocolLength) Reset() { - *x = PatternFlowArpProtocolLength{} +func (x *PatternFlowGtpv2Teid) Reset() { + *x = PatternFlowGtpv2Teid{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[639] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71328,13 +71480,13 @@ func (x *PatternFlowArpProtocolLength) Reset() { } } -func (x *PatternFlowArpProtocolLength) String() string { +func (x *PatternFlowGtpv2Teid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLength) ProtoMessage() {} +func (*PatternFlowGtpv2Teid) ProtoMessage() {} -func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[639] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71346,47 +71498,47 @@ func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLength.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLength) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Teid.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Teid) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{639} } -func (x *PatternFlowArpProtocolLength) GetChoice() PatternFlowArpProtocolLength_Choice_Enum { +func (x *PatternFlowGtpv2Teid) GetChoice() PatternFlowGtpv2Teid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpProtocolLength_Choice_unspecified + return PatternFlowGtpv2Teid_Choice_unspecified } -func (x *PatternFlowArpProtocolLength) GetValue() uint32 { +func (x *PatternFlowGtpv2Teid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpProtocolLength) GetValues() []uint32 { +func (x *PatternFlowGtpv2Teid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpProtocolLength) GetIncrement() *PatternFlowArpProtocolLengthCounter { +func (x *PatternFlowGtpv2Teid) GetIncrement() *PatternFlowGtpv2TeidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpProtocolLength) GetDecrement() *PatternFlowArpProtocolLengthCounter { +func (x *PatternFlowGtpv2Teid) GetDecrement() *PatternFlowGtpv2TeidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocolLengthMetricTag { +func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag { if x != nil { return x.MetricTags } @@ -71394,13 +71546,13 @@ func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocol } // integer counter pattern -type PatternFlowArpOperationCounter struct { +type PatternFlowGtpv2SequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -71410,8 +71562,8 @@ type PatternFlowArpOperationCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpOperationCounter) Reset() { - *x = PatternFlowArpOperationCounter{} +func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { + *x = PatternFlowGtpv2SequenceNumberCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[640] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71419,13 +71571,13 @@ func (x *PatternFlowArpOperationCounter) Reset() { } } -func (x *PatternFlowArpOperationCounter) String() string { +func (x *PatternFlowGtpv2SequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperationCounter) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[640] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71437,26 +71589,26 @@ func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperationCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperationCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2SequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumberCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{640} } -func (x *PatternFlowArpOperationCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpOperationCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpOperationCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71466,7 +71618,7 @@ func (x *PatternFlowArpOperationCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpOperationMetricTag struct { +type PatternFlowGtpv2SequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71480,12 +71632,12 @@ type PatternFlowArpOperationMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpOperationMetricTag) Reset() { - *x = PatternFlowArpOperationMetricTag{} +func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { + *x = PatternFlowGtpv2SequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[641] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71493,13 +71645,13 @@ func (x *PatternFlowArpOperationMetricTag) Reset() { } } -func (x *PatternFlowArpOperationMetricTag) String() string { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperationMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[641] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71511,59 +71663,59 @@ func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperationMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperationMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2SequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumberMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{641} } -func (x *PatternFlowArpOperationMetricTag) GetName() string { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpOperationMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpOperationMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The operation that the sender is performing -type PatternFlowArpOperation struct { +// The sequence number +type PatternFlowGtpv2SequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpOperation_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpOperation_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2SequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2SequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpOperationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpOperationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2SequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpOperation) Reset() { - *x = PatternFlowArpOperation{} +func (x *PatternFlowGtpv2SequenceNumber) Reset() { + *x = PatternFlowGtpv2SequenceNumber{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[642] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71571,13 +71723,13 @@ func (x *PatternFlowArpOperation) Reset() { } } -func (x *PatternFlowArpOperation) String() string { +func (x *PatternFlowGtpv2SequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperation) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumber) ProtoMessage() {} -func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[642] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71589,72 +71741,72 @@ func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperation.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperation) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2SequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumber) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{642} } -func (x *PatternFlowArpOperation) GetChoice() PatternFlowArpOperation_Choice_Enum { +func (x *PatternFlowGtpv2SequenceNumber) GetChoice() PatternFlowGtpv2SequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpOperation_Choice_unspecified + return PatternFlowGtpv2SequenceNumber_Choice_unspecified } -func (x *PatternFlowArpOperation) GetValue() uint32 { +func (x *PatternFlowGtpv2SequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpOperation) GetValues() []uint32 { +func (x *PatternFlowGtpv2SequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpOperation) GetIncrement() *PatternFlowArpOperationCounter { +func (x *PatternFlowGtpv2SequenceNumber) GetIncrement() *PatternFlowGtpv2SequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpOperation) GetDecrement() *PatternFlowArpOperationCounter { +func (x *PatternFlowGtpv2SequenceNumber) GetDecrement() *PatternFlowGtpv2SequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpOperation) GetMetricTags() []*PatternFlowArpOperationMetricTag { +func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2SequenceNumberMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowArpSenderHardwareAddrCounter struct { +// integer counter pattern +type PatternFlowGtpv2Spare2Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpSenderHardwareAddrCounter) Reset() { - *x = PatternFlowArpSenderHardwareAddrCounter{} +func (x *PatternFlowGtpv2Spare2Counter) Reset() { + *x = PatternFlowGtpv2Spare2Counter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[643] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71662,13 +71814,13 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) Reset() { } } -func (x *PatternFlowArpSenderHardwareAddrCounter) String() string { +func (x *PatternFlowGtpv2Spare2Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddrCounter) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2Counter) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[643] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71680,26 +71832,26 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare2Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2Counter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{643} } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetStart() string { +func (x *PatternFlowGtpv2Spare2Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetStep() string { +func (x *PatternFlowGtpv2Spare2Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71709,7 +71861,7 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpSenderHardwareAddrMetricTag struct { +type PatternFlowGtpv2Spare2MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71723,12 +71875,12 @@ type PatternFlowArpSenderHardwareAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { - *x = PatternFlowArpSenderHardwareAddrMetricTag{} +func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { + *x = PatternFlowGtpv2Spare2MetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[644] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71736,13 +71888,13 @@ func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { } } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) String() string { +func (x *PatternFlowGtpv2Spare2MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddrMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2MetricTag) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[644] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71754,59 +71906,59 @@ func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare2MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2MetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{644} } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetName() string { +func (x *PatternFlowGtpv2Spare2MetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2Spare2MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2Spare2MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Media address of the sender -type PatternFlowArpSenderHardwareAddr struct { +// Reserved field +type PatternFlowGtpv2Spare2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpSenderHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Spare2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare2_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpSenderHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2Spare2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpSenderHardwareAddr) Reset() { - *x = PatternFlowArpSenderHardwareAddr{} +func (x *PatternFlowGtpv2Spare2) Reset() { + *x = PatternFlowGtpv2Spare2{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[645] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71814,13 +71966,13 @@ func (x *PatternFlowArpSenderHardwareAddr) Reset() { } } -func (x *PatternFlowArpSenderHardwareAddr) String() string { +func (x *PatternFlowGtpv2Spare2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddr) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[645] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71832,72 +71984,72 @@ func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowGtpv2Spare2.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{645} } -func (x *PatternFlowArpSenderHardwareAddr) GetChoice() PatternFlowArpSenderHardwareAddr_Choice_Enum { +func (x *PatternFlowGtpv2Spare2) GetChoice() PatternFlowGtpv2Spare2_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpSenderHardwareAddr_Choice_unspecified + return PatternFlowGtpv2Spare2_Choice_unspecified } -func (x *PatternFlowArpSenderHardwareAddr) GetValue() string { +func (x *PatternFlowGtpv2Spare2) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddr) GetValues() []string { +func (x *PatternFlowGtpv2Spare2) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetIncrement() *PatternFlowArpSenderHardwareAddrCounter { +func (x *PatternFlowGtpv2Spare2) GetIncrement() *PatternFlowGtpv2Spare2Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetDecrement() *PatternFlowArpSenderHardwareAddrCounter { +func (x *PatternFlowGtpv2Spare2) GetDecrement() *PatternFlowGtpv2Spare2Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetMetricTags() []*PatternFlowArpSenderHardwareAddrMetricTag { +func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2MetricTag { if x != nil { return x.MetricTags } return nil } -// ipv4 counter pattern -type PatternFlowArpSenderProtocolAddrCounter struct { +// integer counter pattern +type PatternFlowArpHardwareTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 1 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpSenderProtocolAddrCounter) Reset() { - *x = PatternFlowArpSenderProtocolAddrCounter{} +func (x *PatternFlowArpHardwareTypeCounter) Reset() { + *x = PatternFlowArpHardwareTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[646] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71905,13 +72057,13 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) Reset() { } } -func (x *PatternFlowArpSenderProtocolAddrCounter) String() string { +func (x *PatternFlowArpHardwareTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddrCounter) ProtoMessage() {} +func (*PatternFlowArpHardwareTypeCounter) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[646] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71923,26 +72075,26 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{646} } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetStart() string { +func (x *PatternFlowArpHardwareTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetStep() string { +func (x *PatternFlowArpHardwareTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { +func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71952,7 +72104,7 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpSenderProtocolAddrMetricTag struct { +type PatternFlowArpHardwareTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71966,12 +72118,12 @@ type PatternFlowArpSenderProtocolAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { - *x = PatternFlowArpSenderProtocolAddrMetricTag{} +func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { + *x = PatternFlowArpHardwareTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[647] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71979,13 +72131,13 @@ func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { } } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) String() string { +func (x *PatternFlowArpHardwareTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddrMetricTag) ProtoMessage() {} +func (*PatternFlowArpHardwareTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[647] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -71997,59 +72149,59 @@ func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{647} } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetName() string { +func (x *PatternFlowArpHardwareTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpHardwareTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowArpHardwareTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Internetwork address of the sender -type PatternFlowArpSenderProtocolAddr struct { +// Network link protocol type +type PatternFlowArpHardwareType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpSenderProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpHardwareType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 1 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [1] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpSenderProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpHardwareTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpSenderProtocolAddr) Reset() { - *x = PatternFlowArpSenderProtocolAddr{} +func (x *PatternFlowArpHardwareType) Reset() { + *x = PatternFlowArpHardwareType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[648] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72057,13 +72209,13 @@ func (x *PatternFlowArpSenderProtocolAddr) Reset() { } } -func (x *PatternFlowArpSenderProtocolAddr) String() string { +func (x *PatternFlowArpHardwareType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddr) ProtoMessage() {} +func (*PatternFlowArpHardwareType) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[648] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72075,72 +72227,72 @@ func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareType.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{648} } -func (x *PatternFlowArpSenderProtocolAddr) GetChoice() PatternFlowArpSenderProtocolAddr_Choice_Enum { +func (x *PatternFlowArpHardwareType) GetChoice() PatternFlowArpHardwareType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpSenderProtocolAddr_Choice_unspecified + return PatternFlowArpHardwareType_Choice_unspecified } -func (x *PatternFlowArpSenderProtocolAddr) GetValue() string { +func (x *PatternFlowArpHardwareType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddr) GetValues() []string { +func (x *PatternFlowArpHardwareType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetIncrement() *PatternFlowArpSenderProtocolAddrCounter { +func (x *PatternFlowArpHardwareType) GetIncrement() *PatternFlowArpHardwareTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetDecrement() *PatternFlowArpSenderProtocolAddrCounter { +func (x *PatternFlowArpHardwareType) GetDecrement() *PatternFlowArpHardwareTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetMetricTags() []*PatternFlowArpSenderProtocolAddrMetricTag { +func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTypeMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowArpTargetHardwareAddrCounter struct { +// integer counter pattern +type PatternFlowArpProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 2048 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpTargetHardwareAddrCounter) Reset() { - *x = PatternFlowArpTargetHardwareAddrCounter{} +func (x *PatternFlowArpProtocolTypeCounter) Reset() { + *x = PatternFlowArpProtocolTypeCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[649] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72148,13 +72300,13 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) Reset() { } } -func (x *PatternFlowArpTargetHardwareAddrCounter) String() string { +func (x *PatternFlowArpProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddrCounter) ProtoMessage() {} +func (*PatternFlowArpProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[649] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72166,26 +72318,26 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolTypeCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{649} } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetStart() string { +func (x *PatternFlowArpProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetStep() string { +func (x *PatternFlowArpProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { +func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72195,7 +72347,7 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpTargetHardwareAddrMetricTag struct { +type PatternFlowArpProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72209,12 +72361,12 @@ type PatternFlowArpTargetHardwareAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { - *x = PatternFlowArpTargetHardwareAddrMetricTag{} +func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { + *x = PatternFlowArpProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[650] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72222,13 +72374,13 @@ func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { } } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) String() string { +func (x *PatternFlowArpProtocolTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddrMetricTag) ProtoMessage() {} +func (*PatternFlowArpProtocolTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[650] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72240,59 +72392,59 @@ func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolTypeMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{650} } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetName() string { +func (x *PatternFlowArpProtocolTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpProtocolTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowArpProtocolTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Media address of the target -type PatternFlowArpTargetHardwareAddr struct { +// The internetwork protocol for which the ARP request is intended +type PatternFlowArpProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpTargetHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 2048 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [2048] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpTargetHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpTargetHardwareAddr) Reset() { - *x = PatternFlowArpTargetHardwareAddr{} +func (x *PatternFlowArpProtocolType) Reset() { + *x = PatternFlowArpProtocolType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[651] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72300,13 +72452,13 @@ func (x *PatternFlowArpTargetHardwareAddr) Reset() { } } -func (x *PatternFlowArpTargetHardwareAddr) String() string { +func (x *PatternFlowArpProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddr) ProtoMessage() {} +func (*PatternFlowArpProtocolType) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[651] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72318,72 +72470,72 @@ func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{651} } -func (x *PatternFlowArpTargetHardwareAddr) GetChoice() PatternFlowArpTargetHardwareAddr_Choice_Enum { +func (x *PatternFlowArpProtocolType) GetChoice() PatternFlowArpProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpTargetHardwareAddr_Choice_unspecified + return PatternFlowArpProtocolType_Choice_unspecified } -func (x *PatternFlowArpTargetHardwareAddr) GetValue() string { +func (x *PatternFlowArpProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddr) GetValues() []string { +func (x *PatternFlowArpProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetIncrement() *PatternFlowArpTargetHardwareAddrCounter { +func (x *PatternFlowArpProtocolType) GetIncrement() *PatternFlowArpProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetDecrement() *PatternFlowArpTargetHardwareAddrCounter { +func (x *PatternFlowArpProtocolType) GetDecrement() *PatternFlowArpProtocolTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetMetricTags() []*PatternFlowArpTargetHardwareAddrMetricTag { +func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTypeMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv4 counter pattern -type PatternFlowArpTargetProtocolAddrCounter struct { +// integer counter pattern +type PatternFlowArpHardwareLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 6 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { - *x = PatternFlowArpTargetProtocolAddrCounter{} +func (x *PatternFlowArpHardwareLengthCounter) Reset() { + *x = PatternFlowArpHardwareLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[652] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72391,13 +72543,13 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { } } -func (x *PatternFlowArpTargetProtocolAddrCounter) String() string { +func (x *PatternFlowArpHardwareLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddrCounter) ProtoMessage() {} +func (*PatternFlowArpHardwareLengthCounter) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[652] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72409,26 +72561,26 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddrCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{652} } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetStart() string { +func (x *PatternFlowArpHardwareLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetStep() string { +func (x *PatternFlowArpHardwareLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { +func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72438,7 +72590,7 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowArpTargetProtocolAddrMetricTag struct { +type PatternFlowArpHardwareLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72452,12 +72604,12 @@ type PatternFlowArpTargetProtocolAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { - *x = PatternFlowArpTargetProtocolAddrMetricTag{} +func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { + *x = PatternFlowArpHardwareLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[653] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72465,13 +72617,13 @@ func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { } } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) String() string { +func (x *PatternFlowArpHardwareLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddrMetricTag) ProtoMessage() {} +func (*PatternFlowArpHardwareLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[653] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72483,59 +72635,59 @@ func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddrMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{653} } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetName() string { +func (x *PatternFlowArpHardwareLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpHardwareLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowArpHardwareLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Internetwork address of the target -type PatternFlowArpTargetProtocolAddr struct { +// Length (in octets) of a hardware address +type PatternFlowArpHardwareLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpTargetProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpHardwareLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 6 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [6] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowArpTargetProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpHardwareLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddr) Reset() { - *x = PatternFlowArpTargetProtocolAddr{} +func (x *PatternFlowArpHardwareLength) Reset() { + *x = PatternFlowArpHardwareLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[654] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72543,13 +72695,13 @@ func (x *PatternFlowArpTargetProtocolAddr) Reset() { } } -func (x *PatternFlowArpTargetProtocolAddr) String() string { +func (x *PatternFlowArpHardwareLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddr) ProtoMessage() {} +func (*PatternFlowArpHardwareLength) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[654] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72561,47 +72713,47 @@ func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddr) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpHardwareLength.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{654} } -func (x *PatternFlowArpTargetProtocolAddr) GetChoice() PatternFlowArpTargetProtocolAddr_Choice_Enum { +func (x *PatternFlowArpHardwareLength) GetChoice() PatternFlowArpHardwareLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpTargetProtocolAddr_Choice_unspecified + return PatternFlowArpHardwareLength_Choice_unspecified } -func (x *PatternFlowArpTargetProtocolAddr) GetValue() string { +func (x *PatternFlowArpHardwareLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddr) GetValues() []string { +func (x *PatternFlowArpHardwareLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetIncrement() *PatternFlowArpTargetProtocolAddrCounter { +func (x *PatternFlowArpHardwareLength) GetIncrement() *PatternFlowArpHardwareLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetDecrement() *PatternFlowArpTargetProtocolAddrCounter { +func (x *PatternFlowArpHardwareLength) GetDecrement() *PatternFlowArpHardwareLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTargetProtocolAddrMetricTag { +func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardwareLengthMetricTag { if x != nil { return x.MetricTags } @@ -72609,13 +72761,13 @@ func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTarg } // integer counter pattern -type PatternFlowIcmpEchoTypeCounter struct { +type PatternFlowArpProtocolLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 8 + // default = 4 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -72625,8 +72777,8 @@ type PatternFlowIcmpEchoTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoTypeCounter) Reset() { - *x = PatternFlowIcmpEchoTypeCounter{} +func (x *PatternFlowArpProtocolLengthCounter) Reset() { + *x = PatternFlowArpProtocolLengthCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[655] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72634,13 +72786,13 @@ func (x *PatternFlowIcmpEchoTypeCounter) Reset() { } } -func (x *PatternFlowIcmpEchoTypeCounter) String() string { +func (x *PatternFlowArpProtocolLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoTypeCounter) ProtoMessage() {} +func (*PatternFlowArpProtocolLengthCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[655] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72652,26 +72804,26 @@ func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoTypeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLengthCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{655} } -func (x *PatternFlowIcmpEchoTypeCounter) GetStart() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpEchoTypeCounter) GetStep() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72681,7 +72833,7 @@ func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpEchoTypeMetricTag struct { +type PatternFlowArpProtocolLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72699,8 +72851,8 @@ type PatternFlowIcmpEchoTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { - *x = PatternFlowIcmpEchoTypeMetricTag{} +func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { + *x = PatternFlowArpProtocolLengthMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[656] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72708,13 +72860,13 @@ func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { } } -func (x *PatternFlowIcmpEchoTypeMetricTag) String() string { +func (x *PatternFlowArpProtocolLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoTypeMetricTag) ProtoMessage() {} +func (*PatternFlowArpProtocolLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[656] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72726,59 +72878,59 @@ func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoTypeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLengthMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{656} } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetName() string { +func (x *PatternFlowArpProtocolLengthMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpProtocolLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowArpProtocolLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The type of ICMP echo packet -type PatternFlowIcmpEchoType struct { +// Length (in octets) of internetwork addresses +type PatternFlowArpProtocolLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpProtocolLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 8 + // default = 4 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [8] + // default = [4] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpEchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpProtocolLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoType) Reset() { - *x = PatternFlowIcmpEchoType{} +func (x *PatternFlowArpProtocolLength) Reset() { + *x = PatternFlowArpProtocolLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[657] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72786,13 +72938,13 @@ func (x *PatternFlowIcmpEchoType) Reset() { } } -func (x *PatternFlowIcmpEchoType) String() string { +func (x *PatternFlowArpProtocolLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoType) ProtoMessage() {} +func (*PatternFlowArpProtocolLength) ProtoMessage() {} -func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[657] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72804,47 +72956,47 @@ func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoType.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoType) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpProtocolLength.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{657} } -func (x *PatternFlowIcmpEchoType) GetChoice() PatternFlowIcmpEchoType_Choice_Enum { +func (x *PatternFlowArpProtocolLength) GetChoice() PatternFlowArpProtocolLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoType_Choice_unspecified + return PatternFlowArpProtocolLength_Choice_unspecified } -func (x *PatternFlowIcmpEchoType) GetValue() uint32 { +func (x *PatternFlowArpProtocolLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpEchoType) GetValues() []uint32 { +func (x *PatternFlowArpProtocolLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoType) GetIncrement() *PatternFlowIcmpEchoTypeCounter { +func (x *PatternFlowArpProtocolLength) GetIncrement() *PatternFlowArpProtocolLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoType) GetDecrement() *PatternFlowIcmpEchoTypeCounter { +func (x *PatternFlowArpProtocolLength) GetDecrement() *PatternFlowArpProtocolLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetricTag { +func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocolLengthMetricTag { if x != nil { return x.MetricTags } @@ -72852,13 +73004,13 @@ func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetr } // integer counter pattern -type PatternFlowIcmpEchoCodeCounter struct { +type PatternFlowArpOperationCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -72868,8 +73020,8 @@ type PatternFlowIcmpEchoCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoCodeCounter) Reset() { - *x = PatternFlowIcmpEchoCodeCounter{} +func (x *PatternFlowArpOperationCounter) Reset() { + *x = PatternFlowArpOperationCounter{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[658] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72877,13 +73029,13 @@ func (x *PatternFlowIcmpEchoCodeCounter) Reset() { } } -func (x *PatternFlowIcmpEchoCodeCounter) String() string { +func (x *PatternFlowArpOperationCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCodeCounter) ProtoMessage() {} +func (*PatternFlowArpOperationCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[658] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72895,26 +73047,26 @@ func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCodeCounter) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpOperationCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperationCounter) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{658} } -func (x *PatternFlowIcmpEchoCodeCounter) GetStart() uint32 { +func (x *PatternFlowArpOperationCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpEchoCodeCounter) GetStep() uint32 { +func (x *PatternFlowArpOperationCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { +func (x *PatternFlowArpOperationCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72924,7 +73076,7 @@ func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpEchoCodeMetricTag struct { +type PatternFlowArpOperationMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72938,12 +73090,12 @@ type PatternFlowIcmpEchoCodeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { - *x = PatternFlowIcmpEchoCodeMetricTag{} +func (x *PatternFlowArpOperationMetricTag) Reset() { + *x = PatternFlowArpOperationMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[659] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72951,13 +73103,13 @@ func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { } } -func (x *PatternFlowIcmpEchoCodeMetricTag) String() string { +func (x *PatternFlowArpOperationMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCodeMetricTag) ProtoMessage() {} +func (*PatternFlowArpOperationMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[659] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -72969,59 +73121,59 @@ func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCodeMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpOperationMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperationMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{659} } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetName() string { +func (x *PatternFlowArpOperationMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpOperationMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowArpOperationMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The ICMP subtype. The default code for ICMP echo request and reply is 0. -type PatternFlowIcmpEchoCode struct { +// The operation that the sender is performing +type PatternFlowArpOperation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpOperation_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpOperation_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpOperationCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpEchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpOperationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoCode) Reset() { - *x = PatternFlowIcmpEchoCode{} +func (x *PatternFlowArpOperation) Reset() { + *x = PatternFlowArpOperation{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[660] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -73029,13 +73181,13 @@ func (x *PatternFlowIcmpEchoCode) Reset() { } } -func (x *PatternFlowIcmpEchoCode) String() string { +func (x *PatternFlowArpOperation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCode) ProtoMessage() {} +func (*PatternFlowArpOperation) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[660] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -73047,156 +73199,87 @@ func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCode.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCode) Descriptor() ([]byte, []int) { +// Deprecated: Use PatternFlowArpOperation.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperation) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{660} } -func (x *PatternFlowIcmpEchoCode) GetChoice() PatternFlowIcmpEchoCode_Choice_Enum { +func (x *PatternFlowArpOperation) GetChoice() PatternFlowArpOperation_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoCode_Choice_unspecified + return PatternFlowArpOperation_Choice_unspecified } -func (x *PatternFlowIcmpEchoCode) GetValue() uint32 { +func (x *PatternFlowArpOperation) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpEchoCode) GetValues() []uint32 { +func (x *PatternFlowArpOperation) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoCode) GetIncrement() *PatternFlowIcmpEchoCodeCounter { +func (x *PatternFlowArpOperation) GetIncrement() *PatternFlowArpOperationCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoCode) GetDecrement() *PatternFlowIcmpEchoCodeCounter { +func (x *PatternFlowArpOperation) GetDecrement() *PatternFlowArpOperationCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoCode) GetMetricTags() []*PatternFlowIcmpEchoCodeMetricTag { +func (x *PatternFlowArpOperation) GetMetricTags() []*PatternFlowArpOperationMetricTag { if x != nil { return x.MetricTags } return nil } -// ICMP checksum -type PatternFlowIcmpEchoChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpEchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpEchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpEchoChecksum) Reset() { - *x = PatternFlowIcmpEchoChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[661] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpEchoChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpEchoChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpEchoChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[661] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowIcmpEchoChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661} -} - -func (x *PatternFlowIcmpEchoChecksum) GetChoice() PatternFlowIcmpEchoChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpEchoChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpEchoChecksum) GetGenerated() PatternFlowIcmpEchoChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpEchoChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpEchoChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// integer counter pattern -type PatternFlowIcmpEchoIdentifierCounter struct { +// mac counter pattern +type PatternFlowArpSenderHardwareAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifierCounter) Reset() { - *x = PatternFlowIcmpEchoIdentifierCounter{} +func (x *PatternFlowArpSenderHardwareAddrCounter) Reset() { + *x = PatternFlowArpSenderHardwareAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[662] + mi := &file_otg_proto_msgTypes[661] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifierCounter) String() string { +func (x *PatternFlowArpSenderHardwareAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifierCounter) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddrCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[662] +func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[661] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73207,26 +73290,26 @@ func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{662} +// Deprecated: Use PatternFlowArpSenderHardwareAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{661} } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73236,7 +73319,7 @@ func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpEchoIdentifierMetricTag struct { +type PatternFlowArpSenderHardwareAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73250,27 +73333,27 @@ type PatternFlowIcmpEchoIdentifierMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpEchoIdentifierMetricTag{} +func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { + *x = PatternFlowArpSenderHardwareAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[663] + mi := &file_otg_proto_msgTypes[662] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) String() string { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[663] +func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[662] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73281,74 +73364,74 @@ func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{663} +// Deprecated: Use PatternFlowArpSenderHardwareAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{662} } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetName() string { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP identifier -type PatternFlowIcmpEchoIdentifier struct { +// Media address of the sender +type PatternFlowArpSenderHardwareAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpSenderHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpEchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpSenderHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifier) Reset() { - *x = PatternFlowIcmpEchoIdentifier{} +func (x *PatternFlowArpSenderHardwareAddr) Reset() { + *x = PatternFlowArpSenderHardwareAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[664] + mi := &file_otg_proto_msgTypes[663] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifier) String() string { +func (x *PatternFlowArpSenderHardwareAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifier) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddr) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[664] +func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[663] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73359,87 +73442,87 @@ func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{664} +// Deprecated: Use PatternFlowArpSenderHardwareAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{663} } -func (x *PatternFlowIcmpEchoIdentifier) GetChoice() PatternFlowIcmpEchoIdentifier_Choice_Enum { +func (x *PatternFlowArpSenderHardwareAddr) GetChoice() PatternFlowArpSenderHardwareAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoIdentifier_Choice_unspecified + return PatternFlowArpSenderHardwareAddr_Choice_unspecified } -func (x *PatternFlowIcmpEchoIdentifier) GetValue() uint32 { +func (x *PatternFlowArpSenderHardwareAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIcmpEchoIdentifier) GetValues() []uint32 { +func (x *PatternFlowArpSenderHardwareAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetIncrement() *PatternFlowIcmpEchoIdentifierCounter { +func (x *PatternFlowArpSenderHardwareAddr) GetIncrement() *PatternFlowArpSenderHardwareAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetDecrement() *PatternFlowIcmpEchoIdentifierCounter { +func (x *PatternFlowArpSenderHardwareAddr) GetDecrement() *PatternFlowArpSenderHardwareAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetMetricTags() []*PatternFlowIcmpEchoIdentifierMetricTag { +func (x *PatternFlowArpSenderHardwareAddr) GetMetricTags() []*PatternFlowArpSenderHardwareAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIcmpEchoSequenceNumberCounter struct { +// ipv4 counter pattern +type PatternFlowArpSenderProtocolAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpEchoSequenceNumberCounter{} +func (x *PatternFlowArpSenderProtocolAddrCounter) Reset() { + *x = PatternFlowArpSenderProtocolAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[665] + mi := &file_otg_proto_msgTypes[664] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) String() string { +func (x *PatternFlowArpSenderProtocolAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddrCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[665] +func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[664] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73450,26 +73533,26 @@ func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{665} +// Deprecated: Use PatternFlowArpSenderProtocolAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{664} } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73479,7 +73562,7 @@ func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpEchoSequenceNumberMetricTag struct { +type PatternFlowArpSenderProtocolAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73493,27 +73576,27 @@ type PatternFlowIcmpEchoSequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpEchoSequenceNumberMetricTag{} +func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { + *x = PatternFlowArpSenderProtocolAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[666] + mi := &file_otg_proto_msgTypes[665] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) String() string { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[666] +func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[665] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73524,74 +73607,74 @@ func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{666} +// Deprecated: Use PatternFlowArpSenderProtocolAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{665} } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP sequence number -type PatternFlowIcmpEchoSequenceNumber struct { +// Internetwork address of the sender +type PatternFlowArpSenderProtocolAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpSenderProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpEchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpSenderProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumber) Reset() { - *x = PatternFlowIcmpEchoSequenceNumber{} +func (x *PatternFlowArpSenderProtocolAddr) Reset() { + *x = PatternFlowArpSenderProtocolAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[667] + mi := &file_otg_proto_msgTypes[666] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumber) String() string { +func (x *PatternFlowArpSenderProtocolAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumber) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddr) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[667] +func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[666] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73602,156 +73685,87 @@ func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{667} +// Deprecated: Use PatternFlowArpSenderProtocolAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{666} } -func (x *PatternFlowIcmpEchoSequenceNumber) GetChoice() PatternFlowIcmpEchoSequenceNumber_Choice_Enum { +func (x *PatternFlowArpSenderProtocolAddr) GetChoice() PatternFlowArpSenderProtocolAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoSequenceNumber_Choice_unspecified + return PatternFlowArpSenderProtocolAddr_Choice_unspecified } -func (x *PatternFlowIcmpEchoSequenceNumber) GetValue() uint32 { +func (x *PatternFlowArpSenderProtocolAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIcmpEchoSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowArpSenderProtocolAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetIncrement() *PatternFlowIcmpEchoSequenceNumberCounter { +func (x *PatternFlowArpSenderProtocolAddr) GetIncrement() *PatternFlowArpSenderProtocolAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetDecrement() *PatternFlowIcmpEchoSequenceNumberCounter { +func (x *PatternFlowArpSenderProtocolAddr) GetDecrement() *PatternFlowArpSenderProtocolAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpEchoSequenceNumberMetricTag { +func (x *PatternFlowArpSenderProtocolAddr) GetMetricTags() []*PatternFlowArpSenderProtocolAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// ICMP checksum -type PatternFlowIcmpCommonChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpCommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpCommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpCommonChecksum) Reset() { - *x = PatternFlowIcmpCommonChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[668] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpCommonChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpCommonChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpCommonChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[668] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowIcmpCommonChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668} -} - -func (x *PatternFlowIcmpCommonChecksum) GetChoice() PatternFlowIcmpCommonChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpCommonChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpCommonChecksum) GetGenerated() PatternFlowIcmpCommonChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpCommonChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpCommonChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// integer counter pattern -type PatternFlowIcmpNextFieldsIdentifierCounter struct { +// mac counter pattern +type PatternFlowArpTargetHardwareAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 00:00:00:00:00:01 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifierCounter{} +func (x *PatternFlowArpTargetHardwareAddrCounter) Reset() { + *x = PatternFlowArpTargetHardwareAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[669] + mi := &file_otg_proto_msgTypes[667] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) String() string { +func (x *PatternFlowArpTargetHardwareAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifierCounter) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddrCounter) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[669] +func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[667] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73762,26 +73776,26 @@ func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{669} +// Deprecated: Use PatternFlowArpTargetHardwareAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{667} } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73791,7 +73805,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { +type PatternFlowArpTargetHardwareAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73805,27 +73819,27 @@ type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifierMetricTag{} +func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { + *x = PatternFlowArpTargetHardwareAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[670] + mi := &file_otg_proto_msgTypes[668] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) String() string { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[670] +func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[668] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73836,74 +73850,74 @@ func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{670} +// Deprecated: Use PatternFlowArpTargetHardwareAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{668} } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetName() string { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP identifier -type PatternFlowIcmpNextFieldsIdentifier struct { +// Media address of the target +type PatternFlowArpTargetHardwareAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpNextFieldsIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpTargetHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpNextFieldsIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpTargetHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifier) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifier{} +func (x *PatternFlowArpTargetHardwareAddr) Reset() { + *x = PatternFlowArpTargetHardwareAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[671] + mi := &file_otg_proto_msgTypes[669] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifier) String() string { +func (x *PatternFlowArpTargetHardwareAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifier) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddr) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[671] +func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[669] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73914,87 +73928,87 @@ func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{671} +// Deprecated: Use PatternFlowArpTargetHardwareAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{669} } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetChoice() PatternFlowIcmpNextFieldsIdentifier_Choice_Enum { +func (x *PatternFlowArpTargetHardwareAddr) GetChoice() PatternFlowArpTargetHardwareAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpNextFieldsIdentifier_Choice_unspecified + return PatternFlowArpTargetHardwareAddr_Choice_unspecified } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetValue() uint32 { +func (x *PatternFlowArpTargetHardwareAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetValues() []uint32 { +func (x *PatternFlowArpTargetHardwareAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetIncrement() *PatternFlowIcmpNextFieldsIdentifierCounter { +func (x *PatternFlowArpTargetHardwareAddr) GetIncrement() *PatternFlowArpTargetHardwareAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetDecrement() *PatternFlowIcmpNextFieldsIdentifierCounter { +func (x *PatternFlowArpTargetHardwareAddr) GetDecrement() *PatternFlowArpTargetHardwareAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetMetricTags() []*PatternFlowIcmpNextFieldsIdentifierMetricTag { +func (x *PatternFlowArpTargetHardwareAddr) GetMetricTags() []*PatternFlowArpTargetHardwareAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIcmpNextFieldsSequenceNumberCounter struct { +// ipv4 counter pattern +type PatternFlowArpTargetProtocolAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumberCounter{} +func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { + *x = PatternFlowArpTargetProtocolAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[672] + mi := &file_otg_proto_msgTypes[670] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) String() string { +func (x *PatternFlowArpTargetProtocolAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddrCounter) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[672] +func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[670] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74005,26 +74019,26 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{672} +// Deprecated: Use PatternFlowArpTargetProtocolAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{670} } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74034,7 +74048,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { +type PatternFlowArpTargetProtocolAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74048,27 +74062,27 @@ type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumberMetricTag{} +func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { + *x = PatternFlowArpTargetProtocolAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[673] + mi := &file_otg_proto_msgTypes[671] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) String() string { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[673] +func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[671] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74079,74 +74093,74 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{673} +// Deprecated: Use PatternFlowArpTargetProtocolAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{671} } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP sequence number -type PatternFlowIcmpNextFieldsSequenceNumber struct { +// Internetwork address of the target +type PatternFlowArpTargetProtocolAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpTargetProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpTargetProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumber{} +func (x *PatternFlowArpTargetProtocolAddr) Reset() { + *x = PatternFlowArpTargetProtocolAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[674] + mi := &file_otg_proto_msgTypes[672] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) String() string { +func (x *PatternFlowArpTargetProtocolAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumber) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddr) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[674] +func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[672] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74157,47 +74171,47 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{674} +// Deprecated: Use PatternFlowArpTargetProtocolAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{672} } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetChoice() PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum { +func (x *PatternFlowArpTargetProtocolAddr) GetChoice() PatternFlowArpTargetProtocolAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpNextFieldsSequenceNumber_Choice_unspecified + return PatternFlowArpTargetProtocolAddr_Choice_unspecified } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValue() uint32 { +func (x *PatternFlowArpTargetProtocolAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowArpTargetProtocolAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetIncrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { +func (x *PatternFlowArpTargetProtocolAddr) GetIncrement() *PatternFlowArpTargetProtocolAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetDecrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { +func (x *PatternFlowArpTargetProtocolAddr) GetDecrement() *PatternFlowArpTargetProtocolAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag { +func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTargetProtocolAddrMetricTag { if x != nil { return x.MetricTags } @@ -74205,13 +74219,13 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlow } // integer counter pattern -type PatternFlowIcmpv6EchoTypeCounter struct { +type PatternFlowIcmpEchoTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 128 + // default = 8 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -74221,23 +74235,23 @@ type PatternFlowIcmpv6EchoTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoTypeCounter) Reset() { - *x = PatternFlowIcmpv6EchoTypeCounter{} +func (x *PatternFlowIcmpEchoTypeCounter) Reset() { + *x = PatternFlowIcmpEchoTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[675] + mi := &file_otg_proto_msgTypes[673] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoTypeCounter) String() string { +func (x *PatternFlowIcmpEchoTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoTypeCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoTypeCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[675] +func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[673] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74248,26 +74262,26 @@ func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{675} +// Deprecated: Use PatternFlowIcmpEchoTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{673} } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74277,7 +74291,7 @@ func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpv6EchoTypeMetricTag struct { +type PatternFlowIcmpEchoTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74295,23 +74309,23 @@ type PatternFlowIcmpv6EchoTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoTypeMetricTag{} +func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { + *x = PatternFlowIcmpEchoTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[676] + mi := &file_otg_proto_msgTypes[674] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) String() string { +func (x *PatternFlowIcmpEchoTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoTypeMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[676] +func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[674] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74322,74 +74336,74 @@ func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{676} +// Deprecated: Use PatternFlowIcmpEchoTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{674} } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo type -type PatternFlowIcmpv6EchoType struct { +// The type of ICMP echo packet +type PatternFlowIcmpEchoType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 128 + // default = 8 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [128] + // default = [8] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpv6EchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoType) Reset() { - *x = PatternFlowIcmpv6EchoType{} +func (x *PatternFlowIcmpEchoType) Reset() { + *x = PatternFlowIcmpEchoType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[677] + mi := &file_otg_proto_msgTypes[675] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoType) String() string { +func (x *PatternFlowIcmpEchoType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoType) ProtoMessage() {} +func (*PatternFlowIcmpEchoType) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[677] +func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[675] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74400,47 +74414,47 @@ func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoType.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{677} +// Deprecated: Use PatternFlowIcmpEchoType.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{675} } -func (x *PatternFlowIcmpv6EchoType) GetChoice() PatternFlowIcmpv6EchoType_Choice_Enum { +func (x *PatternFlowIcmpEchoType) GetChoice() PatternFlowIcmpEchoType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoType_Choice_unspecified + return PatternFlowIcmpEchoType_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoType) GetValue() uint32 { +func (x *PatternFlowIcmpEchoType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoType) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoType) GetIncrement() *PatternFlowIcmpv6EchoTypeCounter { +func (x *PatternFlowIcmpEchoType) GetIncrement() *PatternFlowIcmpEchoTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoType) GetDecrement() *PatternFlowIcmpv6EchoTypeCounter { +func (x *PatternFlowIcmpEchoType) GetDecrement() *PatternFlowIcmpEchoTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoTypeMetricTag { +func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetricTag { if x != nil { return x.MetricTags } @@ -74448,7 +74462,7 @@ func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoType } // integer counter pattern -type PatternFlowIcmpv6EchoCodeCounter struct { +type PatternFlowIcmpEchoCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74464,23 +74478,23 @@ type PatternFlowIcmpv6EchoCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoCodeCounter) Reset() { - *x = PatternFlowIcmpv6EchoCodeCounter{} +func (x *PatternFlowIcmpEchoCodeCounter) Reset() { + *x = PatternFlowIcmpEchoCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[678] + mi := &file_otg_proto_msgTypes[676] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCodeCounter) String() string { +func (x *PatternFlowIcmpEchoCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCodeCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoCodeCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[678] +func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[676] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74491,26 +74505,26 @@ func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{678} +// Deprecated: Use PatternFlowIcmpEchoCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCodeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{676} } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74520,7 +74534,7 @@ func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpv6EchoCodeMetricTag struct { +type PatternFlowIcmpEchoCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74538,23 +74552,23 @@ type PatternFlowIcmpv6EchoCodeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoCodeMetricTag{} +func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { + *x = PatternFlowIcmpEchoCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[679] + mi := &file_otg_proto_msgTypes[677] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) String() string { +func (x *PatternFlowIcmpEchoCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCodeMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[679] +func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[677] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74565,41 +74579,41 @@ func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{679} +// Deprecated: Use PatternFlowIcmpEchoCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCodeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{677} } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo sub type -type PatternFlowIcmpv6EchoCode struct { +// The ICMP subtype. The default code for ICMP echo request and reply is 0. +type PatternFlowIcmpEchoCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -74607,32 +74621,32 @@ type PatternFlowIcmpv6EchoCode struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpv6EchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoCode) Reset() { - *x = PatternFlowIcmpv6EchoCode{} +func (x *PatternFlowIcmpEchoCode) Reset() { + *x = PatternFlowIcmpEchoCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[680] + mi := &file_otg_proto_msgTypes[678] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCode) String() string { +func (x *PatternFlowIcmpEchoCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCode) ProtoMessage() {} +func (*PatternFlowIcmpEchoCode) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[680] +func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[678] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74643,55 +74657,124 @@ func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCode.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{680} +// Deprecated: Use PatternFlowIcmpEchoCode.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{678} } -func (x *PatternFlowIcmpv6EchoCode) GetChoice() PatternFlowIcmpv6EchoCode_Choice_Enum { +func (x *PatternFlowIcmpEchoCode) GetChoice() PatternFlowIcmpEchoCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoCode_Choice_unspecified + return PatternFlowIcmpEchoCode_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoCode) GetValue() uint32 { +func (x *PatternFlowIcmpEchoCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoCode) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetIncrement() *PatternFlowIcmpv6EchoCodeCounter { +func (x *PatternFlowIcmpEchoCode) GetIncrement() *PatternFlowIcmpEchoCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetDecrement() *PatternFlowIcmpv6EchoCodeCounter { +func (x *PatternFlowIcmpEchoCode) GetDecrement() *PatternFlowIcmpEchoCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetMetricTags() []*PatternFlowIcmpv6EchoCodeMetricTag { +func (x *PatternFlowIcmpEchoCode) GetMetricTags() []*PatternFlowIcmpEchoCodeMetricTag { if x != nil { return x.MetricTags } return nil } +// ICMP checksum +type PatternFlowIcmpEchoChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIcmpEchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIcmpEchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowIcmpEchoChecksum) Reset() { + *x = PatternFlowIcmpEchoChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[679] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoChecksum) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[679] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpEchoChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{679} +} + +func (x *PatternFlowIcmpEchoChecksum) GetChoice() PatternFlowIcmpEchoChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowIcmpEchoChecksum_Choice_unspecified +} + +func (x *PatternFlowIcmpEchoChecksum) GetGenerated() PatternFlowIcmpEchoChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIcmpEchoChecksum_Generated_unspecified +} + +func (x *PatternFlowIcmpEchoChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowIcmpv6EchoIdentifierCounter struct { +type PatternFlowIcmpEchoIdentifierCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74707,23 +74790,23 @@ type PatternFlowIcmpv6EchoIdentifierCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) Reset() { - *x = PatternFlowIcmpv6EchoIdentifierCounter{} +func (x *PatternFlowIcmpEchoIdentifierCounter) Reset() { + *x = PatternFlowIcmpEchoIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[681] + mi := &file_otg_proto_msgTypes[680] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) String() string { +func (x *PatternFlowIcmpEchoIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifierCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[681] +func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[680] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74734,26 +74817,26 @@ func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{681} +// Deprecated: Use PatternFlowIcmpEchoIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{680} } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74763,7 +74846,7 @@ func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpv6EchoIdentifierMetricTag struct { +type PatternFlowIcmpEchoIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74781,23 +74864,23 @@ type PatternFlowIcmpv6EchoIdentifierMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoIdentifierMetricTag{} +func (x *PatternFlowIcmpEchoIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpEchoIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[682] + mi := &file_otg_proto_msgTypes[681] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) String() string { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[682] +func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[681] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74808,41 +74891,41 @@ func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{682} +// Deprecated: Use PatternFlowIcmpEchoIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{681} } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo identifier -type PatternFlowIcmpv6EchoIdentifier struct { +// ICMP identifier +type PatternFlowIcmpEchoIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -74850,32 +74933,32 @@ type PatternFlowIcmpv6EchoIdentifier struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpv6EchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifier) Reset() { - *x = PatternFlowIcmpv6EchoIdentifier{} +func (x *PatternFlowIcmpEchoIdentifier) Reset() { + *x = PatternFlowIcmpEchoIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[683] + mi := &file_otg_proto_msgTypes[682] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifier) String() string { +func (x *PatternFlowIcmpEchoIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifier) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifier) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[683] +func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[682] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74886,47 +74969,47 @@ func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{683} +// Deprecated: Use PatternFlowIcmpEchoIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{682} } -func (x *PatternFlowIcmpv6EchoIdentifier) GetChoice() PatternFlowIcmpv6EchoIdentifier_Choice_Enum { +func (x *PatternFlowIcmpEchoIdentifier) GetChoice() PatternFlowIcmpEchoIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoIdentifier_Choice_unspecified + return PatternFlowIcmpEchoIdentifier_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoIdentifier) GetValue() uint32 { +func (x *PatternFlowIcmpEchoIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifier) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetIncrement() *PatternFlowIcmpv6EchoIdentifierCounter { +func (x *PatternFlowIcmpEchoIdentifier) GetIncrement() *PatternFlowIcmpEchoIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetDecrement() *PatternFlowIcmpv6EchoIdentifierCounter { +func (x *PatternFlowIcmpEchoIdentifier) GetDecrement() *PatternFlowIcmpEchoIdentifierCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6EchoIdentifierMetricTag { +func (x *PatternFlowIcmpEchoIdentifier) GetMetricTags() []*PatternFlowIcmpEchoIdentifierMetricTag { if x != nil { return x.MetricTags } @@ -74934,7 +75017,7 @@ func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6Ec } // integer counter pattern -type PatternFlowIcmpv6EchoSequenceNumberCounter struct { +type PatternFlowIcmpEchoSequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74950,23 +75033,23 @@ type PatternFlowIcmpv6EchoSequenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumberCounter{} +func (x *PatternFlowIcmpEchoSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpEchoSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[684] + mi := &file_otg_proto_msgTypes[683] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) String() string { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[684] +func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[683] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74977,26 +75060,26 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{684} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{683} } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75006,7 +75089,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { +type PatternFlowIcmpEchoSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75024,23 +75107,23 @@ type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumberMetricTag{} +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpEchoSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[685] + mi := &file_otg_proto_msgTypes[684] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) String() string { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[685] +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[684] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75051,41 +75134,41 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{685} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{684} } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo sequence number -type PatternFlowIcmpv6EchoSequenceNumber struct { +// ICMP sequence number +type PatternFlowIcmpEchoSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -75093,32 +75176,32 @@ type PatternFlowIcmpv6EchoSequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIcmpv6EchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumber) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumber{} +func (x *PatternFlowIcmpEchoSequenceNumber) Reset() { + *x = PatternFlowIcmpEchoSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[686] + mi := &file_otg_proto_msgTypes[685] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumber) String() string { +func (x *PatternFlowIcmpEchoSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumber) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumber) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[686] +func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[685] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75129,86 +75212,86 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{686} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{685} } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetChoice() PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum { +func (x *PatternFlowIcmpEchoSequenceNumber) GetChoice() PatternFlowIcmpEchoSequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoSequenceNumber_Choice_unspecified + return PatternFlowIcmpEchoSequenceNumber_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValue() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoSequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetIncrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { +func (x *PatternFlowIcmpEchoSequenceNumber) GetIncrement() *PatternFlowIcmpEchoSequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetDecrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { +func (x *PatternFlowIcmpEchoSequenceNumber) GetDecrement() *PatternFlowIcmpEchoSequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpv6EchoSequenceNumberMetricTag { +func (x *PatternFlowIcmpEchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpEchoSequenceNumberMetricTag { if x != nil { return x.MetricTags } return nil } -// ICMPv6 checksum -type PatternFlowIcmpv6EchoChecksum struct { +// ICMP checksum +type PatternFlowIcmpCommonChecksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of checksum // default = Choice.Enum.generated - Choice *PatternFlowIcmpv6EchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpCommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` // A system generated checksum value // default = Generated.Enum.good - Generated *PatternFlowIcmpv6EchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + Generated *PatternFlowIcmpCommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` // A custom checksum value Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowIcmpv6EchoChecksum) Reset() { - *x = PatternFlowIcmpv6EchoChecksum{} +func (x *PatternFlowIcmpCommonChecksum) Reset() { + *x = PatternFlowIcmpCommonChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[687] + mi := &file_otg_proto_msgTypes[686] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoChecksum) String() string { +func (x *PatternFlowIcmpCommonChecksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum) ProtoMessage() {} +func (*PatternFlowIcmpCommonChecksum) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[687] +func (x *PatternFlowIcmpCommonChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[686] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75219,95 +75302,26 @@ func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687} +// Deprecated: Use PatternFlowIcmpCommonChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{686} } -func (x *PatternFlowIcmpv6EchoChecksum) GetChoice() PatternFlowIcmpv6EchoChecksum_Choice_Enum { +func (x *PatternFlowIcmpCommonChecksum) GetChoice() PatternFlowIcmpCommonChecksum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpv6EchoChecksum) GetGenerated() PatternFlowIcmpv6EchoChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpv6EchoChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpv6EchoChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// ICMPv6 checksum -type PatternFlowIcmpv6CommonChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpv6CommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpv6CommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpv6CommonChecksum) Reset() { - *x = PatternFlowIcmpv6CommonChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[688] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpv6CommonChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpv6CommonChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpv6CommonChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[688] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PatternFlowIcmpv6CommonChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688} -} - -func (x *PatternFlowIcmpv6CommonChecksum) GetChoice() PatternFlowIcmpv6CommonChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpv6CommonChecksum_Choice_unspecified + return PatternFlowIcmpCommonChecksum_Choice_unspecified } -func (x *PatternFlowIcmpv6CommonChecksum) GetGenerated() PatternFlowIcmpv6CommonChecksum_Generated_Enum { +func (x *PatternFlowIcmpCommonChecksum) GetGenerated() PatternFlowIcmpCommonChecksum_Generated_Enum { if x != nil && x.Generated != nil { return *x.Generated } - return PatternFlowIcmpv6CommonChecksum_Generated_unspecified + return PatternFlowIcmpCommonChecksum_Generated_unspecified } -func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() uint32 { +func (x *PatternFlowIcmpCommonChecksum) GetCustom() uint32 { if x != nil && x.Custom != nil { return *x.Custom } @@ -75315,13 +75329,13 @@ func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() uint32 { } // integer counter pattern -type PatternFlowPppAddressCounter struct { +type PatternFlowIcmpNextFieldsIdentifierCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 255 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -75331,23 +75345,23 @@ type PatternFlowPppAddressCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppAddressCounter) Reset() { - *x = PatternFlowPppAddressCounter{} +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[689] + mi := &file_otg_proto_msgTypes[687] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddressCounter) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddressCounter) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[689] +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[687] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75358,26 +75372,26 @@ func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{689} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{687} } -func (x *PatternFlowPppAddressCounter) GetStart() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppAddressCounter) GetStep() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppAddressCounter) GetCount() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75387,7 +75401,7 @@ func (x *PatternFlowPppAddressCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPppAddressMetricTag struct { +type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75401,27 +75415,27 @@ type PatternFlowPppAddressMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppAddressMetricTag) Reset() { - *x = PatternFlowPppAddressMetricTag{} +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[690] + mi := &file_otg_proto_msgTypes[688] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddressMetricTag) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddressMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[690] +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[688] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75432,74 +75446,74 @@ func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddressMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddressMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{690} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{688} } -func (x *PatternFlowPppAddressMetricTag) GetName() string { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPppAddressMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppAddressMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP address -type PatternFlowPppAddress struct { +// ICMP identifier +type PatternFlowIcmpNextFieldsIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPppAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppAddress_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpNextFieldsIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 255 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [255] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPppAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPppAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpNextFieldsIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppAddress) Reset() { - *x = PatternFlowPppAddress{} +func (x *PatternFlowIcmpNextFieldsIdentifier) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[691] + mi := &file_otg_proto_msgTypes[689] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddress) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddress) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifier) ProtoMessage() {} -func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[691] +func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[689] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75510,47 +75524,47 @@ func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddress.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{691} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{689} } -func (x *PatternFlowPppAddress) GetChoice() PatternFlowPppAddress_Choice_Enum { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetChoice() PatternFlowIcmpNextFieldsIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppAddress_Choice_unspecified + return PatternFlowIcmpNextFieldsIdentifier_Choice_unspecified } -func (x *PatternFlowPppAddress) GetValue() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppAddress) GetValues() []uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppAddress) GetIncrement() *PatternFlowPppAddressCounter { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetIncrement() *PatternFlowIcmpNextFieldsIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppAddress) GetDecrement() *PatternFlowPppAddressCounter { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetDecrement() *PatternFlowIcmpNextFieldsIdentifierCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTag { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetMetricTags() []*PatternFlowIcmpNextFieldsIdentifierMetricTag { if x != nil { return x.MetricTags } @@ -75558,13 +75572,13 @@ func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTa } // integer counter pattern -type PatternFlowPppControlCounter struct { +type PatternFlowIcmpNextFieldsSequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 3 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -75574,23 +75588,23 @@ type PatternFlowPppControlCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppControlCounter) Reset() { - *x = PatternFlowPppControlCounter{} +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[692] + mi := &file_otg_proto_msgTypes[690] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControlCounter) String() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControlCounter) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[692] +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[690] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75601,26 +75615,26 @@ func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControlCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControlCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{692} +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{690} } -func (x *PatternFlowPppControlCounter) GetStart() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppControlCounter) GetStep() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppControlCounter) GetCount() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75630,7 +75644,7 @@ func (x *PatternFlowPppControlCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPppControlMetricTag struct { +type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75644,27 +75658,27 @@ type PatternFlowPppControlMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppControlMetricTag) Reset() { - *x = PatternFlowPppControlMetricTag{} +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[693] + mi := &file_otg_proto_msgTypes[691] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControlMetricTag) String() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControlMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[693] +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[691] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75675,74 +75689,74 @@ func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControlMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControlMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{693} +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{691} } -func (x *PatternFlowPppControlMetricTag) GetName() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPppControlMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppControlMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP control -type PatternFlowPppControl struct { +// ICMP sequence number +type PatternFlowIcmpNextFieldsSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPppControl_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppControl_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 3 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [3] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPppControlCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPppControlMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppControl) Reset() { - *x = PatternFlowPppControl{} +func (x *PatternFlowIcmpNextFieldsSequenceNumber) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[694] + mi := &file_otg_proto_msgTypes[692] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControl) String() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControl) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsSequenceNumber) ProtoMessage() {} -func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[694] +func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[692] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75753,47 +75767,47 @@ func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControl.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControl) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694} +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{692} } -func (x *PatternFlowPppControl) GetChoice() PatternFlowPppControl_Choice_Enum { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetChoice() PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppControl_Choice_unspecified + return PatternFlowIcmpNextFieldsSequenceNumber_Choice_unspecified } -func (x *PatternFlowPppControl) GetValue() uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppControl) GetValues() []uint32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppControl) GetIncrement() *PatternFlowPppControlCounter { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetIncrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppControl) GetDecrement() *PatternFlowPppControlCounter { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetDecrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTag { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag { if x != nil { return x.MetricTags } @@ -75801,13 +75815,13 @@ func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTa } // integer counter pattern -type PatternFlowPppProtocolTypeCounter struct { +type PatternFlowIcmpv6EchoTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 33 + // default = 128 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -75817,23 +75831,23 @@ type PatternFlowPppProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppProtocolTypeCounter) Reset() { - *x = PatternFlowPppProtocolTypeCounter{} +func (x *PatternFlowIcmpv6EchoTypeCounter) Reset() { + *x = PatternFlowIcmpv6EchoTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[695] + mi := &file_otg_proto_msgTypes[693] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolTypeCounter) String() string { +func (x *PatternFlowIcmpv6EchoTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoTypeCounter) ProtoMessage() {} -func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[695] +func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[693] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75844,26 +75858,26 @@ func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{695} +// Deprecated: Use PatternFlowIcmpv6EchoTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{693} } -func (x *PatternFlowPppProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75873,7 +75887,7 @@ func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowPppProtocolTypeMetricTag struct { +type PatternFlowIcmpv6EchoTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75887,27 +75901,27 @@ type PatternFlowPppProtocolTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppProtocolTypeMetricTag) Reset() { - *x = PatternFlowPppProtocolTypeMetricTag{} +func (x *PatternFlowIcmpv6EchoTypeMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[696] + mi := &file_otg_proto_msgTypes[694] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolTypeMetricTag) String() string { +func (x *PatternFlowIcmpv6EchoTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[696] +func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[694] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75918,79 +75932,74 @@ func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{696} +// Deprecated: Use PatternFlowIcmpv6EchoTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{694} } -func (x *PatternFlowPppProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowPppProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP protocol type -type PatternFlowPppProtocolType struct { +// ICMPv6 echo type +type PatternFlowIcmpv6EchoType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowPppProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIcmpv6EchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 33 + // default = 128 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [33] + // default = [128] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 33 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowPppProtocolTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpv6EchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppProtocolType) Reset() { - *x = PatternFlowPppProtocolType{} +func (x *PatternFlowIcmpv6EchoType) Reset() { + *x = PatternFlowIcmpv6EchoType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[697] + mi := &file_otg_proto_msgTypes[695] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolType) String() string { +func (x *PatternFlowIcmpv6EchoType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolType) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoType) ProtoMessage() {} -func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[697] +func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[695] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76001,54 +76010,47 @@ func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697} +// Deprecated: Use PatternFlowIcmpv6EchoType.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{695} } -func (x *PatternFlowPppProtocolType) GetChoice() PatternFlowPppProtocolType_Choice_Enum { +func (x *PatternFlowIcmpv6EchoType) GetChoice() PatternFlowIcmpv6EchoType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppProtocolType_Choice_unspecified + return PatternFlowIcmpv6EchoType_Choice_unspecified } -func (x *PatternFlowPppProtocolType) GetValue() uint32 { +func (x *PatternFlowIcmpv6EchoType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppProtocolType) GetValues() []uint32 { +func (x *PatternFlowIcmpv6EchoType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppProtocolType) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowPppProtocolType) GetIncrement() *PatternFlowPppProtocolTypeCounter { +func (x *PatternFlowIcmpv6EchoType) GetIncrement() *PatternFlowIcmpv6EchoTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppProtocolType) GetDecrement() *PatternFlowPppProtocolTypeCounter { +func (x *PatternFlowIcmpv6EchoType) GetDecrement() *PatternFlowIcmpv6EchoTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTypeMetricTag { +func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoTypeMetricTag { if x != nil { return x.MetricTags } @@ -76056,13 +76058,13 @@ func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTy } // integer counter pattern -type PatternFlowIgmpv1VersionCounter struct { +type PatternFlowIcmpv6EchoCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -76072,23 +76074,23 @@ type PatternFlowIgmpv1VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1VersionCounter) Reset() { - *x = PatternFlowIgmpv1VersionCounter{} +func (x *PatternFlowIcmpv6EchoCodeCounter) Reset() { + *x = PatternFlowIcmpv6EchoCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[698] + mi := &file_otg_proto_msgTypes[696] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1VersionCounter) String() string { +func (x *PatternFlowIcmpv6EchoCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1VersionCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCodeCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[698] +func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[696] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76099,26 +76101,26 @@ func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{698} +// Deprecated: Use PatternFlowIcmpv6EchoCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCodeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{696} } -func (x *PatternFlowIgmpv1VersionCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIgmpv1VersionCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76128,7 +76130,7 @@ func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIgmpv1VersionMetricTag struct { +type PatternFlowIcmpv6EchoCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76142,27 +76144,27 @@ type PatternFlowIgmpv1VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1VersionMetricTag) Reset() { - *x = PatternFlowIgmpv1VersionMetricTag{} +func (x *PatternFlowIcmpv6EchoCodeMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[699] + mi := &file_otg_proto_msgTypes[697] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1VersionMetricTag) String() string { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1VersionMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[699] +func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[697] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76173,74 +76175,74 @@ func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{699} +// Deprecated: Use PatternFlowIcmpv6EchoCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCodeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{697} } -func (x *PatternFlowIgmpv1VersionMetricTag) GetName() string { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIgmpv1VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowIgmpv1Version struct { +// ICMPv6 echo sub type +type PatternFlowIcmpv6EchoCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6EchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIgmpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpv6EchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Version) Reset() { - *x = PatternFlowIgmpv1Version{} +func (x *PatternFlowIcmpv6EchoCode) Reset() { + *x = PatternFlowIcmpv6EchoCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[700] + mi := &file_otg_proto_msgTypes[698] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Version) String() string { +func (x *PatternFlowIcmpv6EchoCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Version) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCode) ProtoMessage() {} -func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[700] +func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[698] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76251,47 +76253,47 @@ func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700} +// Deprecated: Use PatternFlowIcmpv6EchoCode.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{698} } -func (x *PatternFlowIgmpv1Version) GetChoice() PatternFlowIgmpv1Version_Choice_Enum { +func (x *PatternFlowIcmpv6EchoCode) GetChoice() PatternFlowIcmpv6EchoCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Version_Choice_unspecified + return PatternFlowIcmpv6EchoCode_Choice_unspecified } -func (x *PatternFlowIgmpv1Version) GetValue() uint32 { +func (x *PatternFlowIcmpv6EchoCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIgmpv1Version) GetValues() []uint32 { +func (x *PatternFlowIcmpv6EchoCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Version) GetIncrement() *PatternFlowIgmpv1VersionCounter { +func (x *PatternFlowIcmpv6EchoCode) GetIncrement() *PatternFlowIcmpv6EchoCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Version) GetDecrement() *PatternFlowIgmpv1VersionCounter { +func (x *PatternFlowIcmpv6EchoCode) GetDecrement() *PatternFlowIcmpv6EchoCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMetricTag { +func (x *PatternFlowIcmpv6EchoCode) GetMetricTags() []*PatternFlowIcmpv6EchoCodeMetricTag { if x != nil { return x.MetricTags } @@ -76299,13 +76301,13 @@ func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMe } // integer counter pattern -type PatternFlowIgmpv1TypeCounter struct { +type PatternFlowIcmpv6EchoIdentifierCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -76315,23 +76317,23 @@ type PatternFlowIgmpv1TypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1TypeCounter) Reset() { - *x = PatternFlowIgmpv1TypeCounter{} +func (x *PatternFlowIcmpv6EchoIdentifierCounter) Reset() { + *x = PatternFlowIcmpv6EchoIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[701] + mi := &file_otg_proto_msgTypes[699] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1TypeCounter) String() string { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1TypeCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[701] +func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[699] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76342,26 +76344,26 @@ func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1TypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1TypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{701} +// Deprecated: Use PatternFlowIcmpv6EchoIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{699} } -func (x *PatternFlowIgmpv1TypeCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIgmpv1TypeCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76371,7 +76373,7 @@ func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIgmpv1TypeMetricTag struct { +type PatternFlowIcmpv6EchoIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76385,27 +76387,27 @@ type PatternFlowIgmpv1TypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1TypeMetricTag) Reset() { - *x = PatternFlowIgmpv1TypeMetricTag{} +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[702] + mi := &file_otg_proto_msgTypes[700] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1TypeMetricTag) String() string { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1TypeMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[702] +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[700] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76416,74 +76418,74 @@ func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1TypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1TypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{702} +// Deprecated: Use PatternFlowIcmpv6EchoIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{700} } -func (x *PatternFlowIgmpv1TypeMetricTag) GetName() string { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIgmpv1TypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1TypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Type of message -type PatternFlowIgmpv1Type struct { +// ICMPv6 echo identifier +type PatternFlowIcmpv6EchoIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Type_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Type_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6EchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIgmpv1TypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpv6EchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Type) Reset() { - *x = PatternFlowIgmpv1Type{} +func (x *PatternFlowIcmpv6EchoIdentifier) Reset() { + *x = PatternFlowIcmpv6EchoIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[703] + mi := &file_otg_proto_msgTypes[701] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Type) String() string { +func (x *PatternFlowIcmpv6EchoIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Type) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifier) ProtoMessage() {} -func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[703] +func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[701] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76494,47 +76496,47 @@ func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Type.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{703} +// Deprecated: Use PatternFlowIcmpv6EchoIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{701} } -func (x *PatternFlowIgmpv1Type) GetChoice() PatternFlowIgmpv1Type_Choice_Enum { +func (x *PatternFlowIcmpv6EchoIdentifier) GetChoice() PatternFlowIcmpv6EchoIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Type_Choice_unspecified + return PatternFlowIcmpv6EchoIdentifier_Choice_unspecified } -func (x *PatternFlowIgmpv1Type) GetValue() uint32 { +func (x *PatternFlowIcmpv6EchoIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIgmpv1Type) GetValues() []uint32 { +func (x *PatternFlowIcmpv6EchoIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Type) GetIncrement() *PatternFlowIgmpv1TypeCounter { +func (x *PatternFlowIcmpv6EchoIdentifier) GetIncrement() *PatternFlowIcmpv6EchoIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Type) GetDecrement() *PatternFlowIgmpv1TypeCounter { +func (x *PatternFlowIcmpv6EchoIdentifier) GetDecrement() *PatternFlowIcmpv6EchoIdentifierCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Type) GetMetricTags() []*PatternFlowIgmpv1TypeMetricTag { +func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6EchoIdentifierMetricTag { if x != nil { return x.MetricTags } @@ -76542,7 +76544,7 @@ func (x *PatternFlowIgmpv1Type) GetMetricTags() []*PatternFlowIgmpv1TypeMetricTa } // integer counter pattern -type PatternFlowIgmpv1UnusedCounter struct { +type PatternFlowIcmpv6EchoSequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76558,23 +76560,23 @@ type PatternFlowIgmpv1UnusedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1UnusedCounter) Reset() { - *x = PatternFlowIgmpv1UnusedCounter{} +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[704] + mi := &file_otg_proto_msgTypes[702] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1UnusedCounter) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1UnusedCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[704] +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[702] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76585,26 +76587,26 @@ func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1UnusedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1UnusedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{704} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{702} } -func (x *PatternFlowIgmpv1UnusedCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIgmpv1UnusedCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76614,7 +76616,7 @@ func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIgmpv1UnusedMetricTag struct { +type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76628,27 +76630,27 @@ type PatternFlowIgmpv1UnusedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1UnusedMetricTag) Reset() { - *x = PatternFlowIgmpv1UnusedMetricTag{} +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[705] + mi := &file_otg_proto_msgTypes[703] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1UnusedMetricTag) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1UnusedMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[705] +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[703] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76659,41 +76661,41 @@ func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1UnusedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1UnusedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{705} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{703} } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetName() string { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Unused -type PatternFlowIgmpv1Unused struct { +// ICMPv6 echo sequence number +type PatternFlowIcmpv6EchoSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Unused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Unused_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` @@ -76701,32 +76703,32 @@ type PatternFlowIgmpv1Unused struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIgmpv1UnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpv6EchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Unused) Reset() { - *x = PatternFlowIgmpv1Unused{} +func (x *PatternFlowIcmpv6EchoSequenceNumber) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[706] + mi := &file_otg_proto_msgTypes[704] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Unused) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Unused) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumber) ProtoMessage() {} -func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[706] +func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[704] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76737,86 +76739,86 @@ func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Unused.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Unused) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{706} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{704} } -func (x *PatternFlowIgmpv1Unused) GetChoice() PatternFlowIgmpv1Unused_Choice_Enum { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetChoice() PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Unused_Choice_unspecified + return PatternFlowIcmpv6EchoSequenceNumber_Choice_unspecified } -func (x *PatternFlowIgmpv1Unused) GetValue() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIgmpv1Unused) GetValues() []uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Unused) GetIncrement() *PatternFlowIgmpv1UnusedCounter { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetIncrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Unused) GetDecrement() *PatternFlowIgmpv1UnusedCounter { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetDecrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Unused) GetMetricTags() []*PatternFlowIgmpv1UnusedMetricTag { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpv6EchoSequenceNumberMetricTag { if x != nil { return x.MetricTags } return nil } -// Checksum -type PatternFlowIgmpv1Checksum struct { +// ICMPv6 checksum +type PatternFlowIcmpv6EchoChecksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of checksum // default = Choice.Enum.generated - Choice *PatternFlowIgmpv1Checksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Checksum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6EchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` // A system generated checksum value // default = Generated.Enum.good - Generated *PatternFlowIgmpv1Checksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIgmpv1Checksum_Generated_Enum,oneof" json:"generated,omitempty"` + Generated *PatternFlowIcmpv6EchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` // A custom checksum value Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowIgmpv1Checksum) Reset() { - *x = PatternFlowIgmpv1Checksum{} +func (x *PatternFlowIcmpv6EchoChecksum) Reset() { + *x = PatternFlowIcmpv6EchoChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[707] + mi := &file_otg_proto_msgTypes[705] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Checksum) String() string { +func (x *PatternFlowIcmpv6EchoChecksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoChecksum) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[707] +func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[705] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76827,66 +76829,135 @@ func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Checksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707} +// Deprecated: Use PatternFlowIcmpv6EchoChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{705} } -func (x *PatternFlowIgmpv1Checksum) GetChoice() PatternFlowIgmpv1Checksum_Choice_Enum { +func (x *PatternFlowIcmpv6EchoChecksum) GetChoice() PatternFlowIcmpv6EchoChecksum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Checksum_Choice_unspecified + return PatternFlowIcmpv6EchoChecksum_Choice_unspecified } -func (x *PatternFlowIgmpv1Checksum) GetGenerated() PatternFlowIgmpv1Checksum_Generated_Enum { +func (x *PatternFlowIcmpv6EchoChecksum) GetGenerated() PatternFlowIcmpv6EchoChecksum_Generated_Enum { if x != nil && x.Generated != nil { return *x.Generated } - return PatternFlowIgmpv1Checksum_Generated_unspecified + return PatternFlowIcmpv6EchoChecksum_Generated_unspecified } -func (x *PatternFlowIgmpv1Checksum) GetCustom() uint32 { +func (x *PatternFlowIcmpv6EchoChecksum) GetCustom() uint32 { if x != nil && x.Custom != nil { return *x.Custom } return 0 } -// ipv4 counter pattern -type PatternFlowIgmpv1GroupAddressCounter struct { +// ICMPv6 checksum +type PatternFlowIcmpv6CommonChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIcmpv6CommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIcmpv6CommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowIcmpv6CommonChecksum) Reset() { + *x = PatternFlowIcmpv6CommonChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[706] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6CommonChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6CommonChecksum) ProtoMessage() {} + +func (x *PatternFlowIcmpv6CommonChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[706] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6CommonChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{706} +} + +func (x *PatternFlowIcmpv6CommonChecksum) GetChoice() PatternFlowIcmpv6CommonChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowIcmpv6CommonChecksum_Choice_unspecified +} + +func (x *PatternFlowIcmpv6CommonChecksum) GetGenerated() PatternFlowIcmpv6CommonChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIcmpv6CommonChecksum_Generated_unspecified +} + +func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + +// integer counter pattern +type PatternFlowPppAddressCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 255 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 0.0.0.1 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models // default = 1 Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddressCounter) Reset() { - *x = PatternFlowIgmpv1GroupAddressCounter{} +func (x *PatternFlowPppAddressCounter) Reset() { + *x = PatternFlowPppAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[708] + mi := &file_otg_proto_msgTypes[707] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddressCounter) String() string { +func (x *PatternFlowPppAddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddressCounter) ProtoMessage() {} +func (*PatternFlowPppAddressCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[708] +func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[707] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76897,26 +76968,26 @@ func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{708} +// Deprecated: Use PatternFlowPppAddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{707} } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetStart() string { +func (x *PatternFlowPppAddressCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetStep() string { +func (x *PatternFlowPppAddressCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { +func (x *PatternFlowPppAddressCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76926,7 +76997,7 @@ func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowIgmpv1GroupAddressMetricTag struct { +type PatternFlowPppAddressMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76940,27 +77011,27 @@ type PatternFlowIgmpv1GroupAddressMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) Reset() { - *x = PatternFlowIgmpv1GroupAddressMetricTag{} +func (x *PatternFlowPppAddressMetricTag) Reset() { + *x = PatternFlowPppAddressMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[709] + mi := &file_otg_proto_msgTypes[708] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) String() string { +func (x *PatternFlowPppAddressMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddressMetricTag) ProtoMessage() {} +func (*PatternFlowPppAddressMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[709] +func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[708] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76971,74 +77042,74 @@ func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddressMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddressMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{709} +// Deprecated: Use PatternFlowPppAddressMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddressMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{708} } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetName() string { +func (x *PatternFlowPppAddressMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetOffset() uint32 { +func (x *PatternFlowPppAddressMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetLength() uint32 { +func (x *PatternFlowPppAddressMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Group address -type PatternFlowIgmpv1GroupAddress struct { +// PPP address +type PatternFlowPppAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1GroupAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1GroupAddress_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPppAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppAddress_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 255 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['0.0.0.0'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [255] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowIgmpv1GroupAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPppAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddress) Reset() { - *x = PatternFlowIgmpv1GroupAddress{} +func (x *PatternFlowPppAddress) Reset() { + *x = PatternFlowPppAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[710] + mi := &file_otg_proto_msgTypes[709] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddress) String() string { +func (x *PatternFlowPppAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddress) ProtoMessage() {} +func (*PatternFlowPppAddress) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[710] +func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[709] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77049,47 +77120,47 @@ func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddress.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710} +// Deprecated: Use PatternFlowPppAddress.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{709} } -func (x *PatternFlowIgmpv1GroupAddress) GetChoice() PatternFlowIgmpv1GroupAddress_Choice_Enum { +func (x *PatternFlowPppAddress) GetChoice() PatternFlowPppAddress_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1GroupAddress_Choice_unspecified + return PatternFlowPppAddress_Choice_unspecified } -func (x *PatternFlowIgmpv1GroupAddress) GetValue() string { +func (x *PatternFlowPppAddress) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIgmpv1GroupAddress) GetValues() []string { +func (x *PatternFlowPppAddress) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetIncrement() *PatternFlowIgmpv1GroupAddressCounter { +func (x *PatternFlowPppAddress) GetIncrement() *PatternFlowPppAddressCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetDecrement() *PatternFlowIgmpv1GroupAddressCounter { +func (x *PatternFlowPppAddress) GetDecrement() *PatternFlowPppAddressCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetMetricTags() []*PatternFlowIgmpv1GroupAddressMetricTag { +func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTag { if x != nil { return x.MetricTags } @@ -77097,13 +77168,13 @@ func (x *PatternFlowIgmpv1GroupAddress) GetMetricTags() []*PatternFlowIgmpv1Grou } // integer counter pattern -type PatternFlowMplsLabelCounter struct { +type PatternFlowPppControlCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 16 + // default = 3 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -77113,23 +77184,23 @@ type PatternFlowMplsLabelCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsLabelCounter) Reset() { - *x = PatternFlowMplsLabelCounter{} +func (x *PatternFlowPppControlCounter) Reset() { + *x = PatternFlowPppControlCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[711] + mi := &file_otg_proto_msgTypes[710] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabelCounter) String() string { +func (x *PatternFlowPppControlCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabelCounter) ProtoMessage() {} +func (*PatternFlowPppControlCounter) ProtoMessage() {} -func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[711] +func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[710] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77140,26 +77211,26 @@ func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabelCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabelCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{711} +// Deprecated: Use PatternFlowPppControlCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControlCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{710} } -func (x *PatternFlowMplsLabelCounter) GetStart() uint32 { +func (x *PatternFlowPppControlCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsLabelCounter) GetStep() uint32 { +func (x *PatternFlowPppControlCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { +func (x *PatternFlowPppControlCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77169,7 +77240,7 @@ func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowMplsLabelMetricTag struct { +type PatternFlowPppControlMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77183,27 +77254,27 @@ type PatternFlowMplsLabelMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 20 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsLabelMetricTag) Reset() { - *x = PatternFlowMplsLabelMetricTag{} +func (x *PatternFlowPppControlMetricTag) Reset() { + *x = PatternFlowPppControlMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[712] + mi := &file_otg_proto_msgTypes[711] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabelMetricTag) String() string { +func (x *PatternFlowPppControlMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabelMetricTag) ProtoMessage() {} +func (*PatternFlowPppControlMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[712] +func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[711] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77214,79 +77285,74 @@ func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabelMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabelMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{712} +// Deprecated: Use PatternFlowPppControlMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControlMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{711} } -func (x *PatternFlowMplsLabelMetricTag) GetName() string { +func (x *PatternFlowPppControlMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowMplsLabelMetricTag) GetOffset() uint32 { +func (x *PatternFlowPppControlMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsLabelMetricTag) GetLength() uint32 { +func (x *PatternFlowPppControlMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Label of routers -type PatternFlowMplsLabel struct { +// PPP control +type PatternFlowPppControl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowMplsLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsLabel_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowPppControl_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppControl_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 16 + // default = 3 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [16] + // default = [3] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 16 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppControlCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowMplsLabelMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPppControlMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsLabel) Reset() { - *x = PatternFlowMplsLabel{} +func (x *PatternFlowPppControl) Reset() { + *x = PatternFlowPppControl{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[713] + mi := &file_otg_proto_msgTypes[712] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabel) String() string { +func (x *PatternFlowPppControl) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabel) ProtoMessage() {} +func (*PatternFlowPppControl) ProtoMessage() {} -func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[713] +func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[712] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77297,54 +77363,47 @@ func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabel.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713} +// Deprecated: Use PatternFlowPppControl.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControl) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{712} } -func (x *PatternFlowMplsLabel) GetChoice() PatternFlowMplsLabel_Choice_Enum { +func (x *PatternFlowPppControl) GetChoice() PatternFlowPppControl_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsLabel_Choice_unspecified + return PatternFlowPppControl_Choice_unspecified } -func (x *PatternFlowMplsLabel) GetValue() uint32 { +func (x *PatternFlowPppControl) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsLabel) GetValues() []uint32 { +func (x *PatternFlowPppControl) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsLabel) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowMplsLabel) GetIncrement() *PatternFlowMplsLabelCounter { +func (x *PatternFlowPppControl) GetIncrement() *PatternFlowPppControlCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsLabel) GetDecrement() *PatternFlowMplsLabelCounter { +func (x *PatternFlowPppControl) GetDecrement() *PatternFlowPppControlCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsLabel) GetMetricTags() []*PatternFlowMplsLabelMetricTag { +func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTag { if x != nil { return x.MetricTags } @@ -77352,13 +77411,13 @@ func (x *PatternFlowMplsLabel) GetMetricTags() []*PatternFlowMplsLabelMetricTag } // integer counter pattern -type PatternFlowMplsTrafficClassCounter struct { +type PatternFlowPppProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 33 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -77368,23 +77427,23 @@ type PatternFlowMplsTrafficClassCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsTrafficClassCounter) Reset() { - *x = PatternFlowMplsTrafficClassCounter{} +func (x *PatternFlowPppProtocolTypeCounter) Reset() { + *x = PatternFlowPppProtocolTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[714] + mi := &file_otg_proto_msgTypes[713] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClassCounter) String() string { +func (x *PatternFlowPppProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClassCounter) ProtoMessage() {} +func (*PatternFlowPppProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[714] +func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[713] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77395,26 +77454,26 @@ func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClassCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClassCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{714} +// Deprecated: Use PatternFlowPppProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{713} } -func (x *PatternFlowMplsTrafficClassCounter) GetStart() uint32 { +func (x *PatternFlowPppProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsTrafficClassCounter) GetStep() uint32 { +func (x *PatternFlowPppProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { +func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77424,7 +77483,7 @@ func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowMplsTrafficClassMetricTag struct { +type PatternFlowPppProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77438,27 +77497,27 @@ type PatternFlowMplsTrafficClassMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsTrafficClassMetricTag) Reset() { - *x = PatternFlowMplsTrafficClassMetricTag{} +func (x *PatternFlowPppProtocolTypeMetricTag) Reset() { + *x = PatternFlowPppProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[715] + mi := &file_otg_proto_msgTypes[714] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClassMetricTag) String() string { +func (x *PatternFlowPppProtocolTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClassMetricTag) ProtoMessage() {} +func (*PatternFlowPppProtocolTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[715] +func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[714] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77469,74 +77528,79 @@ func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClassMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClassMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{715} +// Deprecated: Use PatternFlowPppProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{714} } -func (x *PatternFlowMplsTrafficClassMetricTag) GetName() string { +func (x *PatternFlowPppProtocolTypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowMplsTrafficClassMetricTag) GetOffset() uint32 { +func (x *PatternFlowPppProtocolTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsTrafficClassMetricTag) GetLength() uint32 { +func (x *PatternFlowPppProtocolTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Traffic class -type PatternFlowMplsTrafficClass struct { +// PPP protocol type +type PatternFlowPppProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowMplsTrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowPppProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 33 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [33] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 33 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowMplsTrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPppProtocolTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsTrafficClass) Reset() { - *x = PatternFlowMplsTrafficClass{} +func (x *PatternFlowPppProtocolType) Reset() { + *x = PatternFlowPppProtocolType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[716] + mi := &file_otg_proto_msgTypes[715] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClass) String() string { +func (x *PatternFlowPppProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClass) ProtoMessage() {} +func (*PatternFlowPppProtocolType) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[716] +func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[715] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77547,47 +77611,54 @@ func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClass.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClass) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716} +// Deprecated: Use PatternFlowPppProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{715} } -func (x *PatternFlowMplsTrafficClass) GetChoice() PatternFlowMplsTrafficClass_Choice_Enum { +func (x *PatternFlowPppProtocolType) GetChoice() PatternFlowPppProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsTrafficClass_Choice_unspecified + return PatternFlowPppProtocolType_Choice_unspecified } -func (x *PatternFlowMplsTrafficClass) GetValue() uint32 { +func (x *PatternFlowPppProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsTrafficClass) GetValues() []uint32 { +func (x *PatternFlowPppProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsTrafficClass) GetIncrement() *PatternFlowMplsTrafficClassCounter { +func (x *PatternFlowPppProtocolType) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowPppProtocolType) GetIncrement() *PatternFlowPppProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsTrafficClass) GetDecrement() *PatternFlowMplsTrafficClassCounter { +func (x *PatternFlowPppProtocolType) GetDecrement() *PatternFlowPppProtocolTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficClassMetricTag { +func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTypeMetricTag { if x != nil { return x.MetricTags } @@ -77595,7 +77666,7 @@ func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficC } // integer counter pattern -type PatternFlowMplsBottomOfStackCounter struct { +type PatternFlowIgmpv1VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77611,23 +77682,23 @@ type PatternFlowMplsBottomOfStackCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsBottomOfStackCounter) Reset() { - *x = PatternFlowMplsBottomOfStackCounter{} +func (x *PatternFlowIgmpv1VersionCounter) Reset() { + *x = PatternFlowIgmpv1VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[717] + mi := &file_otg_proto_msgTypes[716] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStackCounter) String() string { +func (x *PatternFlowIgmpv1VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStackCounter) ProtoMessage() {} +func (*PatternFlowIgmpv1VersionCounter) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[717] +func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[716] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77638,26 +77709,26 @@ func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStackCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStackCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{717} +// Deprecated: Use PatternFlowIgmpv1VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1VersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{716} } -func (x *PatternFlowMplsBottomOfStackCounter) GetStart() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsBottomOfStackCounter) GetStep() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77667,7 +77738,7 @@ func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowMplsBottomOfStackMetricTag struct { +type PatternFlowIgmpv1VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77681,27 +77752,27 @@ type PatternFlowMplsBottomOfStackMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsBottomOfStackMetricTag) Reset() { - *x = PatternFlowMplsBottomOfStackMetricTag{} +func (x *PatternFlowIgmpv1VersionMetricTag) Reset() { + *x = PatternFlowIgmpv1VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[718] + mi := &file_otg_proto_msgTypes[717] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStackMetricTag) String() string { +func (x *PatternFlowIgmpv1VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStackMetricTag) ProtoMessage() {} +func (*PatternFlowIgmpv1VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[718] +func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[717] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77712,79 +77783,74 @@ func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStackMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStackMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{718} +// Deprecated: Use PatternFlowIgmpv1VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1VersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{717} } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetName() string { +func (x *PatternFlowIgmpv1VersionMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetOffset() uint32 { +func (x *PatternFlowIgmpv1VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetLength() uint32 { +func (x *PatternFlowIgmpv1VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Bottom of stack -type PatternFlowMplsBottomOfStack struct { +// Version number +type PatternFlowIgmpv1Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowMplsBottomOfStack_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsBottomOfStack_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIgmpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 1 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowMplsBottomOfStackMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIgmpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsBottomOfStack) Reset() { - *x = PatternFlowMplsBottomOfStack{} +func (x *PatternFlowIgmpv1Version) Reset() { + *x = PatternFlowIgmpv1Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[719] + mi := &file_otg_proto_msgTypes[718] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStack) String() string { +func (x *PatternFlowIgmpv1Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStack) ProtoMessage() {} +func (*PatternFlowIgmpv1Version) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[719] +func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[718] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77795,54 +77861,47 @@ func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStack.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStack) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719} +// Deprecated: Use PatternFlowIgmpv1Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{718} } -func (x *PatternFlowMplsBottomOfStack) GetChoice() PatternFlowMplsBottomOfStack_Choice_Enum { +func (x *PatternFlowIgmpv1Version) GetChoice() PatternFlowIgmpv1Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsBottomOfStack_Choice_unspecified + return PatternFlowIgmpv1Version_Choice_unspecified } -func (x *PatternFlowMplsBottomOfStack) GetValue() uint32 { +func (x *PatternFlowIgmpv1Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsBottomOfStack) GetValues() []uint32 { +func (x *PatternFlowIgmpv1Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsBottomOfStack) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowMplsBottomOfStack) GetIncrement() *PatternFlowMplsBottomOfStackCounter { +func (x *PatternFlowIgmpv1Version) GetIncrement() *PatternFlowIgmpv1VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsBottomOfStack) GetDecrement() *PatternFlowMplsBottomOfStackCounter { +func (x *PatternFlowIgmpv1Version) GetDecrement() *PatternFlowIgmpv1VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomOfStackMetricTag { +func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMetricTag { if x != nil { return x.MetricTags } @@ -77850,13 +77909,13 @@ func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomO } // integer counter pattern -type PatternFlowMplsTimeToLiveCounter struct { +type PatternFlowIgmpv1TypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -77866,23 +77925,23 @@ type PatternFlowMplsTimeToLiveCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsTimeToLiveCounter) Reset() { - *x = PatternFlowMplsTimeToLiveCounter{} +func (x *PatternFlowIgmpv1TypeCounter) Reset() { + *x = PatternFlowIgmpv1TypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[720] + mi := &file_otg_proto_msgTypes[719] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLiveCounter) String() string { +func (x *PatternFlowIgmpv1TypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLiveCounter) ProtoMessage() {} +func (*PatternFlowIgmpv1TypeCounter) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[720] +func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[719] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77893,26 +77952,26 @@ func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLiveCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLiveCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{720} +// Deprecated: Use PatternFlowIgmpv1TypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1TypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{719} } -func (x *PatternFlowMplsTimeToLiveCounter) GetStart() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsTimeToLiveCounter) GetStep() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77922,7 +77981,7 @@ func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { // Metric tag can be used to enable tracking portion of or all bits in a corresponding // header field for metrics per each applicable value. These would appear as tagged // metrics in corresponding flow metrics. -type PatternFlowMplsTimeToLiveMetricTag struct { +type PatternFlowIgmpv1TypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77936,27 +77995,27 @@ type PatternFlowMplsTimeToLiveMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsTimeToLiveMetricTag) Reset() { - *x = PatternFlowMplsTimeToLiveMetricTag{} +func (x *PatternFlowIgmpv1TypeMetricTag) Reset() { + *x = PatternFlowIgmpv1TypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[721] + mi := &file_otg_proto_msgTypes[720] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLiveMetricTag) String() string { +func (x *PatternFlowIgmpv1TypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLiveMetricTag) ProtoMessage() {} +func (*PatternFlowIgmpv1TypeMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[721] +func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[720] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77967,74 +78026,74 @@ func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLiveMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLiveMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{721} +// Deprecated: Use PatternFlowIgmpv1TypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1TypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{720} } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetName() string { +func (x *PatternFlowIgmpv1TypeMetricTag) GetName() string { if x != nil { return x.Name } return "" } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetOffset() uint32 { +func (x *PatternFlowIgmpv1TypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetLength() uint32 { +func (x *PatternFlowIgmpv1TypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time to live -type PatternFlowMplsTimeToLive struct { +// Type of message +type PatternFlowIgmpv1Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowMplsTimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIgmpv1Type_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Type_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` // One or more metric tags can be used to enable tracking portion of or all bits in // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. - MetricTags []*PatternFlowMplsTimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIgmpv1TypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsTimeToLive) Reset() { - *x = PatternFlowMplsTimeToLive{} +func (x *PatternFlowIgmpv1Type) Reset() { + *x = PatternFlowIgmpv1Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[722] + mi := &file_otg_proto_msgTypes[721] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLive) String() string { +func (x *PatternFlowIgmpv1Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLive) ProtoMessage() {} +func (*PatternFlowIgmpv1Type) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[722] +func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[721] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78045,87 +78104,87 @@ func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLive.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLive) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{722} +// Deprecated: Use PatternFlowIgmpv1Type.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{721} } -func (x *PatternFlowMplsTimeToLive) GetChoice() PatternFlowMplsTimeToLive_Choice_Enum { +func (x *PatternFlowIgmpv1Type) GetChoice() PatternFlowIgmpv1Type_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsTimeToLive_Choice_unspecified + return PatternFlowIgmpv1Type_Choice_unspecified } -func (x *PatternFlowMplsTimeToLive) GetValue() uint32 { +func (x *PatternFlowIgmpv1Type) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsTimeToLive) GetValues() []uint32 { +func (x *PatternFlowIgmpv1Type) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsTimeToLive) GetIncrement() *PatternFlowMplsTimeToLiveCounter { +func (x *PatternFlowIgmpv1Type) GetIncrement() *PatternFlowIgmpv1TypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsTimeToLive) GetDecrement() *PatternFlowMplsTimeToLiveCounter { +func (x *PatternFlowIgmpv1Type) GetDecrement() *PatternFlowIgmpv1TypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsTimeToLive) GetMetricTags() []*PatternFlowMplsTimeToLiveMetricTag { +func (x *PatternFlowIgmpv1Type) GetMetricTags() []*PatternFlowIgmpv1TypeMetricTag { if x != nil { return x.MetricTags } return nil } -// Version details -type Version struct { +// integer counter pattern +type PatternFlowIgmpv1UnusedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Version of API specification - // default = - ApiSpecVersion *string `protobuf:"bytes,1,opt,name=api_spec_version,json=apiSpecVersion,proto3,oneof" json:"api_spec_version,omitempty"` - // Version of SDK generated from API specification - // default = - SdkVersion *string `protobuf:"bytes,2,opt,name=sdk_version,json=sdkVersion,proto3,oneof" json:"sdk_version,omitempty"` - // Version of application consuming or serving the API - // default = - AppVersion *string `protobuf:"bytes,3,opt,name=app_version,json=appVersion,proto3,oneof" json:"app_version,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *Version) Reset() { - *x = Version{} +func (x *PatternFlowIgmpv1UnusedCounter) Reset() { + *x = PatternFlowIgmpv1UnusedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[723] + mi := &file_otg_proto_msgTypes[722] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Version) String() string { +func (x *PatternFlowIgmpv1UnusedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Version) ProtoMessage() {} +func (*PatternFlowIgmpv1UnusedCounter) ProtoMessage() {} -func (x *Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[723] +func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[722] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78136,59 +78195,70 @@ func (x *Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Version.ProtoReflect.Descriptor instead. -func (*Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{723} +// Deprecated: Use PatternFlowIgmpv1UnusedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1UnusedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{722} } -func (x *Version) GetApiSpecVersion() string { - if x != nil && x.ApiSpecVersion != nil { - return *x.ApiSpecVersion +func (x *PatternFlowIgmpv1UnusedCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return "" + return 0 } -func (x *Version) GetSdkVersion() string { - if x != nil && x.SdkVersion != nil { - return *x.SdkVersion +func (x *PatternFlowIgmpv1UnusedCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return "" + return 0 } -func (x *Version) GetAppVersion() string { - if x != nil && x.AppVersion != nil { - return *x.AppVersion +func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return "" + return 0 } -// The request has succeeded with no application content but the server -// may return a list of detailed warnings. -type Success struct { +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowIgmpv1UnusedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` -} - -func (x *Success) Reset() { - *x = Success{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[724] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) Reset() { + *x = PatternFlowIgmpv1UnusedMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[723] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Success) String() string { +func (x *PatternFlowIgmpv1UnusedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Success) ProtoMessage() {} +func (*PatternFlowIgmpv1UnusedMetricTag) ProtoMessage() {} -func (x *Success) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[724] +func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[723] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78199,44 +78269,74 @@ func (x *Success) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Success.ProtoReflect.Descriptor instead. -func (*Success) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{724} +// Deprecated: Use PatternFlowIgmpv1UnusedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1UnusedMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{723} } -func (x *Success) GetWarning() *Warning { +func (x *PatternFlowIgmpv1UnusedMetricTag) GetName() string { if x != nil { - return x.Warning + return x.Name } - return nil + return "" } -// The request did not succeed and server has responded with error details. -type Failure struct { +func (x *PatternFlowIgmpv1UnusedMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Unused +type PatternFlowIgmpv1Unused struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error *Error `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowIgmpv1Unused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Unused_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowIgmpv1UnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *Failure) Reset() { - *x = Failure{} +func (x *PatternFlowIgmpv1Unused) Reset() { + *x = PatternFlowIgmpv1Unused{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[725] + mi := &file_otg_proto_msgTypes[724] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Failure) String() string { +func (x *PatternFlowIgmpv1Unused) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Failure) ProtoMessage() {} +func (*PatternFlowIgmpv1Unused) ProtoMessage() {} -func (x *Failure) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[725] +func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[724] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78247,90 +78347,86 @@ func (x *Failure) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Failure.ProtoReflect.Descriptor instead. -func (*Failure) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{725} +// Deprecated: Use PatternFlowIgmpv1Unused.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Unused) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{724} } -func (x *Failure) GetError() *Error { - if x != nil { - return x.Error +func (x *PatternFlowIgmpv1Unused) GetChoice() PatternFlowIgmpv1Unused_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil -} - -type SetConfigRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + return PatternFlowIgmpv1Unused_Choice_unspecified } -func (x *SetConfigRequest) Reset() { - *x = SetConfigRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[726] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowIgmpv1Unused) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *SetConfigRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowIgmpv1Unused) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*SetConfigRequest) ProtoMessage() {} - -func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[726] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowIgmpv1Unused) GetIncrement() *PatternFlowIgmpv1UnusedCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. -func (*SetConfigRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{726} +func (x *PatternFlowIgmpv1Unused) GetDecrement() *PatternFlowIgmpv1UnusedCounter { + if x != nil { + return x.Decrement + } + return nil } -func (x *SetConfigRequest) GetConfig() *Config { +func (x *PatternFlowIgmpv1Unused) GetMetricTags() []*PatternFlowIgmpv1UnusedMetricTag { if x != nil { - return x.Config + return x.MetricTags } return nil } -type UpdateConfigRequest struct { +// Checksum +type PatternFlowIgmpv1Checksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ConfigUpdate *ConfigUpdate `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"` + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIgmpv1Checksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Checksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIgmpv1Checksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIgmpv1Checksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *UpdateConfigRequest) Reset() { - *x = UpdateConfigRequest{} +func (x *PatternFlowIgmpv1Checksum) Reset() { + *x = PatternFlowIgmpv1Checksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[727] + mi := &file_otg_proto_msgTypes[725] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateConfigRequest) String() string { +func (x *PatternFlowIgmpv1Checksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateConfigRequest) ProtoMessage() {} +func (*PatternFlowIgmpv1Checksum) ProtoMessage() {} -func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[727] +func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[725] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78341,43 +78437,66 @@ func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateConfigRequest.ProtoReflect.Descriptor instead. -func (*UpdateConfigRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{727} +// Deprecated: Use PatternFlowIgmpv1Checksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{725} } -func (x *UpdateConfigRequest) GetConfigUpdate() *ConfigUpdate { - if x != nil { - return x.ConfigUpdate +func (x *PatternFlowIgmpv1Checksum) GetChoice() PatternFlowIgmpv1Checksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return PatternFlowIgmpv1Checksum_Choice_unspecified } -type SetConfigResponse struct { +func (x *PatternFlowIgmpv1Checksum) GetGenerated() PatternFlowIgmpv1Checksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIgmpv1Checksum_Generated_unspecified +} + +func (x *PatternFlowIgmpv1Checksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + +// ipv4 counter pattern +type PatternFlowIgmpv1GroupAddressCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *SetConfigResponse) Reset() { - *x = SetConfigResponse{} +func (x *PatternFlowIgmpv1GroupAddressCounter) Reset() { + *x = PatternFlowIgmpv1GroupAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[728] + mi := &file_otg_proto_msgTypes[726] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetConfigResponse) String() string { +func (x *PatternFlowIgmpv1GroupAddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigResponse) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddressCounter) ProtoMessage() {} -func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[728] +func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[726] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78388,43 +78507,70 @@ func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. -func (*SetConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{728} +// Deprecated: Use PatternFlowIgmpv1GroupAddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{726} } -func (x *SetConfigResponse) GetWarning() *Warning { - if x != nil { - return x.Warning +func (x *PatternFlowIgmpv1GroupAddressCounter) GetStart() string { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return "" } -type GetConfigResponse struct { +func (x *PatternFlowIgmpv1GroupAddressCounter) GetStep() string { + if x != nil && x.Step != nil { + return *x.Step + } + return "" +} + +func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowIgmpv1GroupAddressMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 32 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *GetConfigResponse) Reset() { - *x = GetConfigResponse{} +func (x *PatternFlowIgmpv1GroupAddressMetricTag) Reset() { + *x = PatternFlowIgmpv1GroupAddressMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[729] + mi := &file_otg_proto_msgTypes[727] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetConfigResponse) String() string { +func (x *PatternFlowIgmpv1GroupAddressMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetConfigResponse) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddressMetricTag) ProtoMessage() {} -func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[729] +func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[727] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78435,43 +78581,74 @@ func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. -func (*GetConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{729} +// Deprecated: Use PatternFlowIgmpv1GroupAddressMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddressMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{727} } -func (x *GetConfigResponse) GetConfig() *Config { +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetName() string { if x != nil { - return x.Config + return x.Name } - return nil + return "" } -type UpdateConfigResponse struct { +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Group address +type PatternFlowIgmpv1GroupAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowIgmpv1GroupAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1GroupAddress_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowIgmpv1GroupAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *UpdateConfigResponse) Reset() { - *x = UpdateConfigResponse{} +func (x *PatternFlowIgmpv1GroupAddress) Reset() { + *x = PatternFlowIgmpv1GroupAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[730] + mi := &file_otg_proto_msgTypes[728] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateConfigResponse) String() string { +func (x *PatternFlowIgmpv1GroupAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateConfigResponse) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddress) ProtoMessage() {} -func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[730] +func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[728] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78482,90 +78659,87 @@ func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateConfigResponse.ProtoReflect.Descriptor instead. -func (*UpdateConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{730} +// Deprecated: Use PatternFlowIgmpv1GroupAddress.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{728} } -func (x *UpdateConfigResponse) GetWarning() *Warning { - if x != nil { - return x.Warning +func (x *PatternFlowIgmpv1GroupAddress) GetChoice() PatternFlowIgmpv1GroupAddress_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil -} - -type SetControlStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ControlState *ControlState `protobuf:"bytes,1,opt,name=control_state,json=controlState,proto3" json:"control_state,omitempty"` + return PatternFlowIgmpv1GroupAddress_Choice_unspecified } -func (x *SetControlStateRequest) Reset() { - *x = SetControlStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[731] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowIgmpv1GroupAddress) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } + return "" } -func (x *SetControlStateRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowIgmpv1GroupAddress) GetValues() []string { + if x != nil { + return x.Values + } + return nil } -func (*SetControlStateRequest) ProtoMessage() {} - -func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[731] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowIgmpv1GroupAddress) GetIncrement() *PatternFlowIgmpv1GroupAddressCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use SetControlStateRequest.ProtoReflect.Descriptor instead. -func (*SetControlStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{731} +func (x *PatternFlowIgmpv1GroupAddress) GetDecrement() *PatternFlowIgmpv1GroupAddressCounter { + if x != nil { + return x.Decrement + } + return nil } -func (x *SetControlStateRequest) GetControlState() *ControlState { +func (x *PatternFlowIgmpv1GroupAddress) GetMetricTags() []*PatternFlowIgmpv1GroupAddressMetricTag { if x != nil { - return x.ControlState + return x.MetricTags } return nil } -type SetControlStateResponse struct { +// integer counter pattern +type PatternFlowMplsLabelCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = 16 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *SetControlStateResponse) Reset() { - *x = SetControlStateResponse{} +func (x *PatternFlowMplsLabelCounter) Reset() { + *x = PatternFlowMplsLabelCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[732] + mi := &file_otg_proto_msgTypes[729] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlStateResponse) String() string { +func (x *PatternFlowMplsLabelCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlStateResponse) ProtoMessage() {} +func (*PatternFlowMplsLabelCounter) ProtoMessage() {} -func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[732] +func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[729] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78576,43 +78750,70 @@ func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlStateResponse.ProtoReflect.Descriptor instead. -func (*SetControlStateResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{732} +// Deprecated: Use PatternFlowMplsLabelCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabelCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{729} } -func (x *SetControlStateResponse) GetWarning() *Warning { - if x != nil { - return x.Warning +func (x *PatternFlowMplsLabelCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type SetControlActionRequest struct { +func (x *PatternFlowMplsLabelCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowMplsLabelMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ControlAction *ControlAction `protobuf:"bytes,1,opt,name=control_action,json=controlAction,proto3" json:"control_action,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 20 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *SetControlActionRequest) Reset() { - *x = SetControlActionRequest{} +func (x *PatternFlowMplsLabelMetricTag) Reset() { + *x = PatternFlowMplsLabelMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[733] + mi := &file_otg_proto_msgTypes[730] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlActionRequest) String() string { +func (x *PatternFlowMplsLabelMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlActionRequest) ProtoMessage() {} +func (*PatternFlowMplsLabelMetricTag) ProtoMessage() {} -func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[733] +func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[730] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78623,43 +78824,79 @@ func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlActionRequest.ProtoReflect.Descriptor instead. -func (*SetControlActionRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{733} -} - -func (x *SetControlActionRequest) GetControlAction() *ControlAction { +// Deprecated: Use PatternFlowMplsLabelMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabelMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{730} +} + +func (x *PatternFlowMplsLabelMetricTag) GetName() string { if x != nil { - return x.ControlAction + return x.Name } - return nil + return "" } -type SetControlActionResponse struct { +func (x *PatternFlowMplsLabelMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowMplsLabelMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Label of routers +type PatternFlowMplsLabel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ControlActionResponse *ControlActionResponse `protobuf:"bytes,1,opt,name=control_action_response,json=controlActionResponse,proto3" json:"control_action_response,omitempty"` + // Description missing in models + // default = Choice.Enum.auto + Choice *PatternFlowMplsLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsLabel_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 16 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [16] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 16 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowMplsLabelMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *SetControlActionResponse) Reset() { - *x = SetControlActionResponse{} +func (x *PatternFlowMplsLabel) Reset() { + *x = PatternFlowMplsLabel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[734] + mi := &file_otg_proto_msgTypes[731] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlActionResponse) String() string { +func (x *PatternFlowMplsLabel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlActionResponse) ProtoMessage() {} +func (*PatternFlowMplsLabel) ProtoMessage() {} -func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[734] +func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[731] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78670,90 +78907,94 @@ func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlActionResponse.ProtoReflect.Descriptor instead. -func (*SetControlActionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{734} +// Deprecated: Use PatternFlowMplsLabel.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{731} } -func (x *SetControlActionResponse) GetControlActionResponse() *ControlActionResponse { - if x != nil { - return x.ControlActionResponse +func (x *PatternFlowMplsLabel) GetChoice() PatternFlowMplsLabel_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return PatternFlowMplsLabel_Choice_unspecified } -type GetMetricsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MetricsRequest *MetricsRequest `protobuf:"bytes,1,opt,name=metrics_request,json=metricsRequest,proto3" json:"metrics_request,omitempty"` +func (x *PatternFlowMplsLabel) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 } -func (x *GetMetricsRequest) Reset() { - *x = GetMetricsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[735] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowMplsLabel) GetValues() []uint32 { + if x != nil { + return x.Values } + return nil } -func (x *GetMetricsRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowMplsLabel) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 } -func (*GetMetricsRequest) ProtoMessage() {} - -func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[735] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowMplsLabel) GetIncrement() *PatternFlowMplsLabelCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. -func (*GetMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{735} +func (x *PatternFlowMplsLabel) GetDecrement() *PatternFlowMplsLabelCounter { + if x != nil { + return x.Decrement + } + return nil } -func (x *GetMetricsRequest) GetMetricsRequest() *MetricsRequest { +func (x *PatternFlowMplsLabel) GetMetricTags() []*PatternFlowMplsLabelMetricTag { if x != nil { - return x.MetricsRequest + return x.MetricTags } return nil } -type GetMetricsResponse struct { +// integer counter pattern +type PatternFlowMplsTrafficClassCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MetricsResponse *MetricsResponse `protobuf:"bytes,1,opt,name=metrics_response,json=metricsResponse,proto3" json:"metrics_response,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetMetricsResponse) Reset() { - *x = GetMetricsResponse{} +func (x *PatternFlowMplsTrafficClassCounter) Reset() { + *x = PatternFlowMplsTrafficClassCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[736] + mi := &file_otg_proto_msgTypes[732] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetMetricsResponse) String() string { +func (x *PatternFlowMplsTrafficClassCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetMetricsResponse) ProtoMessage() {} +func (*PatternFlowMplsTrafficClassCounter) ProtoMessage() {} -func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[736] +func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[732] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78764,43 +79005,70 @@ func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. -func (*GetMetricsResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{736} +// Deprecated: Use PatternFlowMplsTrafficClassCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClassCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{732} } -func (x *GetMetricsResponse) GetMetricsResponse() *MetricsResponse { - if x != nil { - return x.MetricsResponse +func (x *PatternFlowMplsTrafficClassCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetStatesRequest struct { +func (x *PatternFlowMplsTrafficClassCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowMplsTrafficClassMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StatesRequest *StatesRequest `protobuf:"bytes,1,opt,name=states_request,json=statesRequest,proto3" json:"states_request,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 3 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *GetStatesRequest) Reset() { - *x = GetStatesRequest{} +func (x *PatternFlowMplsTrafficClassMetricTag) Reset() { + *x = PatternFlowMplsTrafficClassMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[737] + mi := &file_otg_proto_msgTypes[733] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStatesRequest) String() string { +func (x *PatternFlowMplsTrafficClassMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStatesRequest) ProtoMessage() {} +func (*PatternFlowMplsTrafficClassMetricTag) ProtoMessage() {} -func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[737] +func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[733] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78811,43 +79079,74 @@ func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStatesRequest.ProtoReflect.Descriptor instead. -func (*GetStatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{737} +// Deprecated: Use PatternFlowMplsTrafficClassMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClassMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{733} } -func (x *GetStatesRequest) GetStatesRequest() *StatesRequest { +func (x *PatternFlowMplsTrafficClassMetricTag) GetName() string { if x != nil { - return x.StatesRequest + return x.Name } - return nil + return "" } -type GetStatesResponse struct { +func (x *PatternFlowMplsTrafficClassMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowMplsTrafficClassMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Traffic class +type PatternFlowMplsTrafficClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StatesResponse *StatesResponse `protobuf:"bytes,1,opt,name=states_response,json=statesResponse,proto3" json:"states_response,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowMplsTrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowMplsTrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *GetStatesResponse) Reset() { - *x = GetStatesResponse{} +func (x *PatternFlowMplsTrafficClass) Reset() { + *x = PatternFlowMplsTrafficClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[738] + mi := &file_otg_proto_msgTypes[734] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStatesResponse) String() string { +func (x *PatternFlowMplsTrafficClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStatesResponse) ProtoMessage() {} +func (*PatternFlowMplsTrafficClass) ProtoMessage() {} -func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[738] +func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[734] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78858,90 +79157,87 @@ func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStatesResponse.ProtoReflect.Descriptor instead. -func (*GetStatesResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{738} +// Deprecated: Use PatternFlowMplsTrafficClass.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClass) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{734} } -func (x *GetStatesResponse) GetStatesResponse() *StatesResponse { - if x != nil { - return x.StatesResponse +func (x *PatternFlowMplsTrafficClass) GetChoice() PatternFlowMplsTrafficClass_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil -} - -type GetCaptureRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CaptureRequest *CaptureRequest `protobuf:"bytes,1,opt,name=capture_request,json=captureRequest,proto3" json:"capture_request,omitempty"` + return PatternFlowMplsTrafficClass_Choice_unspecified } -func (x *GetCaptureRequest) Reset() { - *x = GetCaptureRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[739] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowMplsTrafficClass) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *GetCaptureRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowMplsTrafficClass) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*GetCaptureRequest) ProtoMessage() {} - -func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[739] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowMplsTrafficClass) GetIncrement() *PatternFlowMplsTrafficClassCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use GetCaptureRequest.ProtoReflect.Descriptor instead. -func (*GetCaptureRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{739} +func (x *PatternFlowMplsTrafficClass) GetDecrement() *PatternFlowMplsTrafficClassCounter { + if x != nil { + return x.Decrement + } + return nil } -func (x *GetCaptureRequest) GetCaptureRequest() *CaptureRequest { +func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficClassMetricTag { if x != nil { - return x.CaptureRequest + return x.MetricTags } return nil } -type GetCaptureResponse struct { +// integer counter pattern +type PatternFlowMplsBottomOfStackCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ResponseBytes []byte `protobuf:"bytes,1,opt,name=response_bytes,json=responseBytes,proto3" json:"response_bytes,omitempty"` + // Description missing in models + // default = 1 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetCaptureResponse) Reset() { - *x = GetCaptureResponse{} +func (x *PatternFlowMplsBottomOfStackCounter) Reset() { + *x = PatternFlowMplsBottomOfStackCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[740] + mi := &file_otg_proto_msgTypes[735] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCaptureResponse) String() string { +func (x *PatternFlowMplsBottomOfStackCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCaptureResponse) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStackCounter) ProtoMessage() {} -func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[740] +func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[735] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78952,43 +79248,70 @@ func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCaptureResponse.ProtoReflect.Descriptor instead. -func (*GetCaptureResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{740} +// Deprecated: Use PatternFlowMplsBottomOfStackCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStackCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{735} } -func (x *GetCaptureResponse) GetResponseBytes() []byte { - if x != nil { - return x.ResponseBytes +func (x *PatternFlowMplsBottomOfStackCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetVersionResponse struct { +func (x *PatternFlowMplsBottomOfStackCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowMplsBottomOfStackMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 1 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *GetVersionResponse) Reset() { - *x = GetVersionResponse{} +func (x *PatternFlowMplsBottomOfStackMetricTag) Reset() { + *x = PatternFlowMplsBottomOfStackMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[741] + mi := &file_otg_proto_msgTypes[736] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetVersionResponse) String() string { +func (x *PatternFlowMplsBottomOfStackMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetVersionResponse) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStackMetricTag) ProtoMessage() {} -func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[741] +func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[736] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78999,41 +79322,79 @@ func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. -func (*GetVersionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{741} +// Deprecated: Use PatternFlowMplsBottomOfStackMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStackMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{736} } -func (x *GetVersionResponse) GetVersion() *Version { +func (x *PatternFlowMplsBottomOfStackMetricTag) GetName() string { if x != nil { - return x.Version + return x.Name } - return nil + return "" } -type LagProtocol_Choice struct { +func (x *PatternFlowMplsBottomOfStackMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowMplsBottomOfStackMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Bottom of stack +type PatternFlowMplsBottomOfStack struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.auto + Choice *PatternFlowMplsBottomOfStack_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsBottomOfStack_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 1 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [1] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 1 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowMplsBottomOfStackMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *LagProtocol_Choice) Reset() { - *x = LagProtocol_Choice{} +func (x *PatternFlowMplsBottomOfStack) Reset() { + *x = PatternFlowMplsBottomOfStack{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[742] + mi := &file_otg_proto_msgTypes[737] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagProtocol_Choice) String() string { +func (x *PatternFlowMplsBottomOfStack) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagProtocol_Choice) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStack) ProtoMessage() {} -func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[742] +func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[737] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79044,72 +79405,94 @@ func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagProtocol_Choice.ProtoReflect.Descriptor instead. -func (*LagProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{6, 0} -} - -type LagPortLacp_ActorActivity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use PatternFlowMplsBottomOfStack.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStack) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{737} } -func (x *LagPortLacp_ActorActivity) Reset() { - *x = LagPortLacp_ActorActivity{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[743] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowMplsBottomOfStack) GetChoice() PatternFlowMplsBottomOfStack_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } + return PatternFlowMplsBottomOfStack_Choice_unspecified } -func (x *LagPortLacp_ActorActivity) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowMplsBottomOfStack) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 } -func (*LagPortLacp_ActorActivity) ProtoMessage() {} +func (x *PatternFlowMplsBottomOfStack) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} -func (x *LagPortLacp_ActorActivity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[743] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowMplsBottomOfStack) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use LagPortLacp_ActorActivity.ProtoReflect.Descriptor instead. -func (*LagPortLacp_ActorActivity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{9, 0} +func (x *PatternFlowMplsBottomOfStack) GetIncrement() *PatternFlowMplsBottomOfStackCounter { + if x != nil { + return x.Increment + } + return nil } -type EthernetConnection_Choice struct { +func (x *PatternFlowMplsBottomOfStack) GetDecrement() *PatternFlowMplsBottomOfStackCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomOfStackMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// integer counter pattern +type PatternFlowMplsTimeToLiveCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 64 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *EthernetConnection_Choice) Reset() { - *x = EthernetConnection_Choice{} +func (x *PatternFlowMplsTimeToLiveCounter) Reset() { + *x = PatternFlowMplsTimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[744] + mi := &file_otg_proto_msgTypes[738] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EthernetConnection_Choice) String() string { +func (x *PatternFlowMplsTimeToLiveCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EthernetConnection_Choice) ProtoMessage() {} +func (*PatternFlowMplsTimeToLiveCounter) ProtoMessage() {} -func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[744] +func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[738] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79120,34 +79503,70 @@ func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EthernetConnection_Choice.ProtoReflect.Descriptor instead. -func (*EthernetConnection_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{12, 0} +// Deprecated: Use PatternFlowMplsTimeToLiveCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLiveCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{738} } -type DeviceVlan_Tpid struct { +func (x *PatternFlowMplsTimeToLiveCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowMplsTimeToLiveCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. +type PatternFlowMplsTimeToLiveMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *DeviceVlan_Tpid) Reset() { - *x = DeviceVlan_Tpid{} +func (x *PatternFlowMplsTimeToLiveMetricTag) Reset() { + *x = PatternFlowMplsTimeToLiveMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[745] + mi := &file_otg_proto_msgTypes[739] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceVlan_Tpid) String() string { +func (x *PatternFlowMplsTimeToLiveMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceVlan_Tpid) ProtoMessage() {} +func (*PatternFlowMplsTimeToLiveMetricTag) ProtoMessage() {} -func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[745] +func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[739] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79158,34 +79577,74 @@ func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceVlan_Tpid.ProtoReflect.Descriptor instead. -func (*DeviceVlan_Tpid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{13, 0} +// Deprecated: Use PatternFlowMplsTimeToLiveMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLiveMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{739} } -type DeviceIpv4GatewayMAC_Choice struct { +func (x *PatternFlowMplsTimeToLiveMetricTag) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PatternFlowMplsTimeToLiveMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowMplsTimeToLiveMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Time to live +type PatternFlowMplsTimeToLive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowMplsTimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 64 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [64] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3,oneof" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3,oneof" json:"decrement,omitempty"` + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. + MetricTags []*PatternFlowMplsTimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *DeviceIpv4GatewayMAC_Choice) Reset() { - *x = DeviceIpv4GatewayMAC_Choice{} +func (x *PatternFlowMplsTimeToLive) Reset() { + *x = PatternFlowMplsTimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[746] + mi := &file_otg_proto_msgTypes[740] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceIpv4GatewayMAC_Choice) String() string { +func (x *PatternFlowMplsTimeToLive) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceIpv4GatewayMAC_Choice) ProtoMessage() {} +func (*PatternFlowMplsTimeToLive) ProtoMessage() {} -func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[746] +func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[740] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79196,34 +79655,87 @@ func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceIpv4GatewayMAC_Choice.ProtoReflect.Descriptor instead. -func (*DeviceIpv4GatewayMAC_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{16, 0} +// Deprecated: Use PatternFlowMplsTimeToLive.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLive) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{740} } -type DeviceIpv6GatewayMAC_Choice struct { +func (x *PatternFlowMplsTimeToLive) GetChoice() PatternFlowMplsTimeToLive_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowMplsTimeToLive_Choice_unspecified +} + +func (x *PatternFlowMplsTimeToLive) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowMplsTimeToLive) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} + +func (x *PatternFlowMplsTimeToLive) GetIncrement() *PatternFlowMplsTimeToLiveCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowMplsTimeToLive) GetDecrement() *PatternFlowMplsTimeToLiveCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowMplsTimeToLive) GetMetricTags() []*PatternFlowMplsTimeToLiveMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// Version details +type Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Version of API specification + // default = + ApiSpecVersion *string `protobuf:"bytes,1,opt,name=api_spec_version,json=apiSpecVersion,proto3,oneof" json:"api_spec_version,omitempty"` + // Version of SDK generated from API specification + // default = + SdkVersion *string `protobuf:"bytes,2,opt,name=sdk_version,json=sdkVersion,proto3,oneof" json:"sdk_version,omitempty"` + // Version of application consuming or serving the API + // default = + AppVersion *string `protobuf:"bytes,3,opt,name=app_version,json=appVersion,proto3,oneof" json:"app_version,omitempty"` } -func (x *DeviceIpv6GatewayMAC_Choice) Reset() { - *x = DeviceIpv6GatewayMAC_Choice{} +func (x *Version) Reset() { + *x = Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[747] + mi := &file_otg_proto_msgTypes[741] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceIpv6GatewayMAC_Choice) String() string { +func (x *Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceIpv6GatewayMAC_Choice) ProtoMessage() {} +func (*Version) ProtoMessage() {} -func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[747] +func (x *Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[741] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79234,34 +79746,59 @@ func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceIpv6GatewayMAC_Choice.ProtoReflect.Descriptor instead. -func (*DeviceIpv6GatewayMAC_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{19, 0} +// Deprecated: Use Version.ProtoReflect.Descriptor instead. +func (*Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{741} } -type Layer1_Speed struct { +func (x *Version) GetApiSpecVersion() string { + if x != nil && x.ApiSpecVersion != nil { + return *x.ApiSpecVersion + } + return "" +} + +func (x *Version) GetSdkVersion() string { + if x != nil && x.SdkVersion != nil { + return *x.SdkVersion + } + return "" +} + +func (x *Version) GetAppVersion() string { + if x != nil && x.AppVersion != nil { + return *x.AppVersion + } + return "" +} + +// The request has succeeded with no application content but the server +// may return a list of detailed warnings. +type Success struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *Layer1_Speed) Reset() { - *x = Layer1_Speed{} +func (x *Success) Reset() { + *x = Success{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[748] + mi := &file_otg_proto_msgTypes[742] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Layer1_Speed) String() string { +func (x *Success) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1_Speed) ProtoMessage() {} +func (*Success) ProtoMessage() {} -func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[748] +func (x *Success) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[742] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79272,34 +79809,44 @@ func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1_Speed.ProtoReflect.Descriptor instead. -func (*Layer1_Speed) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{20, 0} +// Deprecated: Use Success.ProtoReflect.Descriptor instead. +func (*Success) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{742} } -type Layer1_Media struct { +func (x *Success) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +// The request did not succeed and server has responded with error details. +type Failure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Error *Error `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` } -func (x *Layer1_Media) Reset() { - *x = Layer1_Media{} +func (x *Failure) Reset() { + *x = Failure{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[749] + mi := &file_otg_proto_msgTypes[743] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Layer1_Media) String() string { +func (x *Failure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1_Media) ProtoMessage() {} +func (*Failure) ProtoMessage() {} -func (x *Layer1_Media) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[749] +func (x *Failure) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[743] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79310,34 +79857,43 @@ func (x *Layer1_Media) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1_Media.ProtoReflect.Descriptor instead. -func (*Layer1_Media) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{20, 1} +// Deprecated: Use Failure.ProtoReflect.Descriptor instead. +func (*Failure) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{743} } -type Layer1FlowControl_Choice struct { +func (x *Failure) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +type SetConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` } -func (x *Layer1FlowControl_Choice) Reset() { - *x = Layer1FlowControl_Choice{} +func (x *SetConfigRequest) Reset() { + *x = SetConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[750] + mi := &file_otg_proto_msgTypes[744] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Layer1FlowControl_Choice) String() string { +func (x *SetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1FlowControl_Choice) ProtoMessage() {} +func (*SetConfigRequest) ProtoMessage() {} -func (x *Layer1FlowControl_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[750] +func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[744] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79348,34 +79904,43 @@ func (x *Layer1FlowControl_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1FlowControl_Choice.ProtoReflect.Descriptor instead. -func (*Layer1FlowControl_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{22, 0} +// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. +func (*SetConfigRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{744} } -type Capture_Format struct { +func (x *SetConfigRequest) GetConfig() *Config { + if x != nil { + return x.Config + } + return nil +} + +type UpdateConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ConfigUpdate *ConfigUpdate `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"` } -func (x *Capture_Format) Reset() { - *x = Capture_Format{} +func (x *UpdateConfigRequest) Reset() { + *x = UpdateConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[751] + mi := &file_otg_proto_msgTypes[745] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Capture_Format) String() string { +func (x *UpdateConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Capture_Format) ProtoMessage() {} +func (*UpdateConfigRequest) ProtoMessage() {} -func (x *Capture_Format) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[751] +func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[745] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79386,34 +79951,43 @@ func (x *Capture_Format) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Capture_Format.ProtoReflect.Descriptor instead. -func (*Capture_Format) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{25, 0} +// Deprecated: Use UpdateConfigRequest.ProtoReflect.Descriptor instead. +func (*UpdateConfigRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{745} } -type CaptureFilter_Choice struct { +func (x *UpdateConfigRequest) GetConfigUpdate() *ConfigUpdate { + if x != nil { + return x.ConfigUpdate + } + return nil +} + +type SetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *CaptureFilter_Choice) Reset() { - *x = CaptureFilter_Choice{} +func (x *SetConfigResponse) Reset() { + *x = SetConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[752] + mi := &file_otg_proto_msgTypes[746] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CaptureFilter_Choice) String() string { +func (x *SetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureFilter_Choice) ProtoMessage() {} +func (*SetConfigResponse) ProtoMessage() {} -func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[752] +func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[746] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79424,34 +79998,43 @@ func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureFilter_Choice.ProtoReflect.Descriptor instead. -func (*CaptureFilter_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{26, 0} +// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. +func (*SetConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{746} } -type IsisInterface_NetworkType struct { +func (x *SetConfigResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type GetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` } -func (x *IsisInterface_NetworkType) Reset() { - *x = IsisInterface_NetworkType{} +func (x *GetConfigResponse) Reset() { + *x = GetConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[753] + mi := &file_otg_proto_msgTypes[747] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterface_NetworkType) String() string { +func (x *GetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterface_NetworkType) ProtoMessage() {} +func (*GetConfigResponse) ProtoMessage() {} -func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[753] +func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[747] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79462,34 +80045,43 @@ func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterface_NetworkType.ProtoReflect.Descriptor instead. -func (*IsisInterface_NetworkType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{37, 0} +// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. +func (*GetConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{747} } -type IsisInterface_LevelType struct { +func (x *GetConfigResponse) GetConfig() *Config { + if x != nil { + return x.Config + } + return nil +} + +type UpdateConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *IsisInterface_LevelType) Reset() { - *x = IsisInterface_LevelType{} +func (x *UpdateConfigResponse) Reset() { + *x = UpdateConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[754] + mi := &file_otg_proto_msgTypes[748] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterface_LevelType) String() string { +func (x *UpdateConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterface_LevelType) ProtoMessage() {} +func (*UpdateConfigResponse) ProtoMessage() {} -func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[754] +func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[748] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79500,34 +80092,43 @@ func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterface_LevelType.ProtoReflect.Descriptor instead. -func (*IsisInterface_LevelType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{37, 1} -} +// Deprecated: Use UpdateConfigResponse.ProtoReflect.Descriptor instead. +func (*UpdateConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{748} +} -type IsisInterfaceAuthentication_AuthType struct { +func (x *UpdateConfigResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type SetControlStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ControlState *ControlState `protobuf:"bytes,1,opt,name=control_state,json=controlState,proto3" json:"control_state,omitempty"` } -func (x *IsisInterfaceAuthentication_AuthType) Reset() { - *x = IsisInterfaceAuthentication_AuthType{} +func (x *SetControlStateRequest) Reset() { + *x = SetControlStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[755] + mi := &file_otg_proto_msgTypes[749] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterfaceAuthentication_AuthType) String() string { +func (x *SetControlStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterfaceAuthentication_AuthType) ProtoMessage() {} +func (*SetControlStateRequest) ProtoMessage() {} -func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[755] +func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[749] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79538,34 +80139,43 @@ func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use IsisInterfaceAuthentication_AuthType.ProtoReflect.Descriptor instead. -func (*IsisInterfaceAuthentication_AuthType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{42, 0} +// Deprecated: Use SetControlStateRequest.ProtoReflect.Descriptor instead. +func (*SetControlStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{749} } -type IsisAuthenticationBase_AuthType struct { +func (x *SetControlStateRequest) GetControlState() *ControlState { + if x != nil { + return x.ControlState + } + return nil +} + +type SetControlStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *IsisAuthenticationBase_AuthType) Reset() { - *x = IsisAuthenticationBase_AuthType{} +func (x *SetControlStateResponse) Reset() { + *x = SetControlStateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[756] + mi := &file_otg_proto_msgTypes[750] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisAuthenticationBase_AuthType) String() string { +func (x *SetControlStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisAuthenticationBase_AuthType) ProtoMessage() {} +func (*SetControlStateResponse) ProtoMessage() {} -func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[756] +func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[750] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79576,34 +80186,43 @@ func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisAuthenticationBase_AuthType.ProtoReflect.Descriptor instead. -func (*IsisAuthenticationBase_AuthType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{48, 0} +// Deprecated: Use SetControlStateResponse.ProtoReflect.Descriptor instead. +func (*SetControlStateResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{750} } -type IsisV4RouteRange_OriginType struct { +func (x *SetControlStateResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type SetControlActionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ControlAction *ControlAction `protobuf:"bytes,1,opt,name=control_action,json=controlAction,proto3" json:"control_action,omitempty"` } -func (x *IsisV4RouteRange_OriginType) Reset() { - *x = IsisV4RouteRange_OriginType{} +func (x *SetControlActionRequest) Reset() { + *x = SetControlActionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[757] + mi := &file_otg_proto_msgTypes[751] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV4RouteRange_OriginType) String() string { +func (x *SetControlActionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange_OriginType) ProtoMessage() {} +func (*SetControlActionRequest) ProtoMessage() {} -func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[757] +func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[751] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79614,34 +80233,43 @@ func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisV4RouteRange_OriginType.ProtoReflect.Descriptor instead. -func (*IsisV4RouteRange_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{49, 0} +// Deprecated: Use SetControlActionRequest.ProtoReflect.Descriptor instead. +func (*SetControlActionRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{751} } -type IsisV4RouteRange_RedistributionType struct { +func (x *SetControlActionRequest) GetControlAction() *ControlAction { + if x != nil { + return x.ControlAction + } + return nil +} + +type SetControlActionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ControlActionResponse *ControlActionResponse `protobuf:"bytes,1,opt,name=control_action_response,json=controlActionResponse,proto3" json:"control_action_response,omitempty"` } -func (x *IsisV4RouteRange_RedistributionType) Reset() { - *x = IsisV4RouteRange_RedistributionType{} +func (x *SetControlActionResponse) Reset() { + *x = SetControlActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[758] + mi := &file_otg_proto_msgTypes[752] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV4RouteRange_RedistributionType) String() string { +func (x *SetControlActionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange_RedistributionType) ProtoMessage() {} +func (*SetControlActionResponse) ProtoMessage() {} -func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[758] +func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[752] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79652,34 +80280,43 @@ func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use IsisV4RouteRange_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisV4RouteRange_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{49, 1} +// Deprecated: Use SetControlActionResponse.ProtoReflect.Descriptor instead. +func (*SetControlActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{752} } -type IsisV6RouteRange_OriginType struct { +func (x *SetControlActionResponse) GetControlActionResponse() *ControlActionResponse { + if x != nil { + return x.ControlActionResponse + } + return nil +} + +type GetMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + MetricsRequest *MetricsRequest `protobuf:"bytes,1,opt,name=metrics_request,json=metricsRequest,proto3" json:"metrics_request,omitempty"` } -func (x *IsisV6RouteRange_OriginType) Reset() { - *x = IsisV6RouteRange_OriginType{} +func (x *GetMetricsRequest) Reset() { + *x = GetMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[759] + mi := &file_otg_proto_msgTypes[753] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV6RouteRange_OriginType) String() string { +func (x *GetMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV6RouteRange_OriginType) ProtoMessage() {} +func (*GetMetricsRequest) ProtoMessage() {} -func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[759] +func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[753] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79690,34 +80327,43 @@ func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisV6RouteRange_OriginType.ProtoReflect.Descriptor instead. -func (*IsisV6RouteRange_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{53, 0} +// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. +func (*GetMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{753} } -type IsisV6RouteRange_RedistributionType struct { +func (x *GetMetricsRequest) GetMetricsRequest() *MetricsRequest { + if x != nil { + return x.MetricsRequest + } + return nil +} + +type GetMetricsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + MetricsResponse *MetricsResponse `protobuf:"bytes,1,opt,name=metrics_response,json=metricsResponse,proto3" json:"metrics_response,omitempty"` } -func (x *IsisV6RouteRange_RedistributionType) Reset() { - *x = IsisV6RouteRange_RedistributionType{} +func (x *GetMetricsResponse) Reset() { + *x = GetMetricsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[760] + mi := &file_otg_proto_msgTypes[754] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV6RouteRange_RedistributionType) String() string { +func (x *GetMetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV6RouteRange_RedistributionType) ProtoMessage() {} +func (*GetMetricsResponse) ProtoMessage() {} -func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[760] +func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[754] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79728,34 +80374,43 @@ func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use IsisV6RouteRange_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisV6RouteRange_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{53, 1} +// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. +func (*GetMetricsResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{754} } -type DeviceBgpMessageHeaderError_Subcode struct { +func (x *GetMetricsResponse) GetMetricsResponse() *MetricsResponse { + if x != nil { + return x.MetricsResponse + } + return nil +} + +type GetStatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + StatesRequest *StatesRequest `protobuf:"bytes,1,opt,name=states_request,json=statesRequest,proto3" json:"states_request,omitempty"` } -func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { - *x = DeviceBgpMessageHeaderError_Subcode{} +func (x *GetStatesRequest) Reset() { + *x = GetStatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[761] + mi := &file_otg_proto_msgTypes[755] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpMessageHeaderError_Subcode) String() string { +func (x *GetStatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpMessageHeaderError_Subcode) ProtoMessage() {} +func (*GetStatesRequest) ProtoMessage() {} -func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[761] +func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[755] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79766,34 +80421,43 @@ func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpMessageHeaderError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpMessageHeaderError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{55, 0} +// Deprecated: Use GetStatesRequest.ProtoReflect.Descriptor instead. +func (*GetStatesRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{755} } -type DeviceBgpOpenMessageError_Subcode struct { +func (x *GetStatesRequest) GetStatesRequest() *StatesRequest { + if x != nil { + return x.StatesRequest + } + return nil +} + +type GetStatesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + StatesResponse *StatesResponse `protobuf:"bytes,1,opt,name=states_response,json=statesResponse,proto3" json:"states_response,omitempty"` } -func (x *DeviceBgpOpenMessageError_Subcode) Reset() { - *x = DeviceBgpOpenMessageError_Subcode{} +func (x *GetStatesResponse) Reset() { + *x = GetStatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[762] + mi := &file_otg_proto_msgTypes[756] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpOpenMessageError_Subcode) String() string { +func (x *GetStatesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpOpenMessageError_Subcode) ProtoMessage() {} +func (*GetStatesResponse) ProtoMessage() {} -func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[762] +func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[756] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79804,34 +80468,43 @@ func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpOpenMessageError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpOpenMessageError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{56, 0} +// Deprecated: Use GetStatesResponse.ProtoReflect.Descriptor instead. +func (*GetStatesResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{756} } -type DeviceBgpUpdateMessageError_Subcode struct { +func (x *GetStatesResponse) GetStatesResponse() *StatesResponse { + if x != nil { + return x.StatesResponse + } + return nil +} + +type GetCaptureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + CaptureRequest *CaptureRequest `protobuf:"bytes,1,opt,name=capture_request,json=captureRequest,proto3" json:"capture_request,omitempty"` } -func (x *DeviceBgpUpdateMessageError_Subcode) Reset() { - *x = DeviceBgpUpdateMessageError_Subcode{} +func (x *GetCaptureRequest) Reset() { + *x = GetCaptureRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[763] + mi := &file_otg_proto_msgTypes[757] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpUpdateMessageError_Subcode) String() string { +func (x *GetCaptureRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpUpdateMessageError_Subcode) ProtoMessage() {} +func (*GetCaptureRequest) ProtoMessage() {} -func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[763] +func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[757] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79842,34 +80515,43 @@ func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpUpdateMessageError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpUpdateMessageError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{57, 0} +// Deprecated: Use GetCaptureRequest.ProtoReflect.Descriptor instead. +func (*GetCaptureRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{757} } -type DeviceBgpCeaseError_Subcode struct { +func (x *GetCaptureRequest) GetCaptureRequest() *CaptureRequest { + if x != nil { + return x.CaptureRequest + } + return nil +} + +type GetCaptureResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ResponseBytes []byte `protobuf:"bytes,1,opt,name=response_bytes,json=responseBytes,proto3" json:"response_bytes,omitempty"` } -func (x *DeviceBgpCeaseError_Subcode) Reset() { - *x = DeviceBgpCeaseError_Subcode{} +func (x *GetCaptureResponse) Reset() { + *x = GetCaptureResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[764] + mi := &file_otg_proto_msgTypes[758] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpCeaseError_Subcode) String() string { +func (x *GetCaptureResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpCeaseError_Subcode) ProtoMessage() {} +func (*GetCaptureResponse) ProtoMessage() {} -func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[764] +func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[758] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79880,34 +80562,43 @@ func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpCeaseError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpCeaseError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{60, 0} +// Deprecated: Use GetCaptureResponse.ProtoReflect.Descriptor instead. +func (*GetCaptureResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{758} } -type BgpV4Peer_AsType struct { +func (x *GetCaptureResponse) GetResponseBytes() []byte { + if x != nil { + return x.ResponseBytes + } + return nil +} + +type GetVersionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *BgpV4Peer_AsType) Reset() { - *x = BgpV4Peer_AsType{} +func (x *GetVersionResponse) Reset() { + *x = GetVersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[765] + mi := &file_otg_proto_msgTypes[759] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4Peer_AsType) String() string { +func (x *GetVersionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Peer_AsType) ProtoMessage() {} +func (*GetVersionResponse) ProtoMessage() {} -func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[765] +func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[759] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79918,34 +80609,41 @@ func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4Peer_AsType.ProtoReflect.Descriptor instead. -func (*BgpV4Peer_AsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{62, 0} +// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. +func (*GetVersionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{759} } -type BgpV4Peer_AsNumberWidth struct { +func (x *GetVersionResponse) GetVersion() *Version { + if x != nil { + return x.Version + } + return nil +} + +type LagProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4Peer_AsNumberWidth) Reset() { - *x = BgpV4Peer_AsNumberWidth{} +func (x *LagProtocol_Choice) Reset() { + *x = LagProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[766] + mi := &file_otg_proto_msgTypes[760] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4Peer_AsNumberWidth) String() string { +func (x *LagProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Peer_AsNumberWidth) ProtoMessage() {} +func (*LagProtocol_Choice) ProtoMessage() {} -func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[766] +func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[760] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79956,34 +80654,34 @@ func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4Peer_AsNumberWidth.ProtoReflect.Descriptor instead. -func (*BgpV4Peer_AsNumberWidth) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{62, 1} +// Deprecated: Use LagProtocol_Choice.ProtoReflect.Descriptor instead. +func (*LagProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{6, 0} } -type BgpV4EthernetSegment_ActiveMode struct { +type LagPortLacp_ActorActivity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4EthernetSegment_ActiveMode) Reset() { - *x = BgpV4EthernetSegment_ActiveMode{} +func (x *LagPortLacp_ActorActivity) Reset() { + *x = LagPortLacp_ActorActivity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[767] + mi := &file_otg_proto_msgTypes[761] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EthernetSegment_ActiveMode) String() string { +func (x *LagPortLacp_ActorActivity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EthernetSegment_ActiveMode) ProtoMessage() {} +func (*LagPortLacp_ActorActivity) ProtoMessage() {} -func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[767] +func (x *LagPortLacp_ActorActivity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[761] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79994,34 +80692,34 @@ func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. -func (*BgpV4EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{64, 0} +// Deprecated: Use LagPortLacp_ActorActivity.ProtoReflect.Descriptor instead. +func (*LagPortLacp_ActorActivity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{9, 0} } -type BgpRouteAdvanced_Origin struct { +type EthernetConnection_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpRouteAdvanced_Origin) Reset() { - *x = BgpRouteAdvanced_Origin{} +func (x *EthernetConnection_Choice) Reset() { + *x = EthernetConnection_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[768] + mi := &file_otg_proto_msgTypes[762] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRouteAdvanced_Origin) String() string { +func (x *EthernetConnection_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteAdvanced_Origin) ProtoMessage() {} +func (*EthernetConnection_Choice) ProtoMessage() {} -func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[768] +func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[762] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80032,34 +80730,34 @@ func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteAdvanced_Origin.ProtoReflect.Descriptor instead. -func (*BgpRouteAdvanced_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{66, 0} +// Deprecated: Use EthernetConnection_Choice.ProtoReflect.Descriptor instead. +func (*EthernetConnection_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{12, 0} } -type BgpCommunity_Type struct { +type DeviceVlan_Tpid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpCommunity_Type) Reset() { - *x = BgpCommunity_Type{} +func (x *DeviceVlan_Tpid) Reset() { + *x = DeviceVlan_Tpid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[769] + mi := &file_otg_proto_msgTypes[763] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpCommunity_Type) String() string { +func (x *DeviceVlan_Tpid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpCommunity_Type) ProtoMessage() {} +func (*DeviceVlan_Tpid) ProtoMessage() {} -func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[769] +func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[763] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80070,34 +80768,34 @@ func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpCommunity_Type.ProtoReflect.Descriptor instead. -func (*BgpCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{67, 0} +// Deprecated: Use DeviceVlan_Tpid.ProtoReflect.Descriptor instead. +func (*DeviceVlan_Tpid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{13, 0} } -type BgpExtCommunity_Type struct { +type DeviceIpv4GatewayMAC_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtCommunity_Type) Reset() { - *x = BgpExtCommunity_Type{} +func (x *DeviceIpv4GatewayMAC_Choice) Reset() { + *x = DeviceIpv4GatewayMAC_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[770] + mi := &file_otg_proto_msgTypes[764] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtCommunity_Type) String() string { +func (x *DeviceIpv4GatewayMAC_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtCommunity_Type) ProtoMessage() {} +func (*DeviceIpv4GatewayMAC_Choice) ProtoMessage() {} -func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[770] +func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[764] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80108,34 +80806,34 @@ func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtCommunity_Type.ProtoReflect.Descriptor instead. -func (*BgpExtCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68, 0} +// Deprecated: Use DeviceIpv4GatewayMAC_Choice.ProtoReflect.Descriptor instead. +func (*DeviceIpv4GatewayMAC_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{16, 0} } -type BgpExtCommunity_Subtype struct { +type DeviceIpv6GatewayMAC_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtCommunity_Subtype) Reset() { - *x = BgpExtCommunity_Subtype{} +func (x *DeviceIpv6GatewayMAC_Choice) Reset() { + *x = DeviceIpv6GatewayMAC_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[771] + mi := &file_otg_proto_msgTypes[765] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtCommunity_Subtype) String() string { +func (x *DeviceIpv6GatewayMAC_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtCommunity_Subtype) ProtoMessage() {} +func (*DeviceIpv6GatewayMAC_Choice) ProtoMessage() {} -func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[771] +func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[765] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80146,34 +80844,34 @@ func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtCommunity_Subtype.ProtoReflect.Descriptor instead. -func (*BgpExtCommunity_Subtype) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68, 1} +// Deprecated: Use DeviceIpv6GatewayMAC_Choice.ProtoReflect.Descriptor instead. +func (*DeviceIpv6GatewayMAC_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{19, 0} } -type BgpAsPath_AsSetMode struct { +type Layer1_Speed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpAsPath_AsSetMode) Reset() { - *x = BgpAsPath_AsSetMode{} +func (x *Layer1_Speed) Reset() { + *x = Layer1_Speed{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[772] + mi := &file_otg_proto_msgTypes[766] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAsPath_AsSetMode) String() string { +func (x *Layer1_Speed) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPath_AsSetMode) ProtoMessage() {} +func (*Layer1_Speed) ProtoMessage() {} -func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[772] +func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[766] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80184,34 +80882,34 @@ func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAsPath_AsSetMode.ProtoReflect.Descriptor instead. -func (*BgpAsPath_AsSetMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{69, 0} +// Deprecated: Use Layer1_Speed.ProtoReflect.Descriptor instead. +func (*Layer1_Speed) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{20, 0} } -type BgpAsPathSegment_Type struct { +type Layer1_Media struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpAsPathSegment_Type) Reset() { - *x = BgpAsPathSegment_Type{} +func (x *Layer1_Media) Reset() { + *x = Layer1_Media{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[773] + mi := &file_otg_proto_msgTypes[767] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAsPathSegment_Type) String() string { +func (x *Layer1_Media) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPathSegment_Type) ProtoMessage() {} +func (*Layer1_Media) ProtoMessage() {} -func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[773] +func (x *Layer1_Media) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[767] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80222,34 +80920,34 @@ func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAsPathSegment_Type.ProtoReflect.Descriptor instead. -func (*BgpAsPathSegment_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{70, 0} +// Deprecated: Use Layer1_Media.ProtoReflect.Descriptor instead. +func (*Layer1_Media) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{20, 1} } -type BgpV4EvpnEvis_Choice struct { +type Layer1FlowControl_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4EvpnEvis_Choice) Reset() { - *x = BgpV4EvpnEvis_Choice{} +func (x *Layer1FlowControl_Choice) Reset() { + *x = Layer1FlowControl_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[774] + mi := &file_otg_proto_msgTypes[768] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EvpnEvis_Choice) String() string { +func (x *Layer1FlowControl_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EvpnEvis_Choice) ProtoMessage() {} +func (*Layer1FlowControl_Choice) ProtoMessage() {} -func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[774] +func (x *Layer1FlowControl_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[768] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80260,34 +80958,34 @@ func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EvpnEvis_Choice.ProtoReflect.Descriptor instead. -func (*BgpV4EvpnEvis_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{71, 0} +// Deprecated: Use Layer1FlowControl_Choice.ProtoReflect.Descriptor instead. +func (*Layer1FlowControl_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{22, 0} } -type BgpV4EviVxlan_ReplicationType struct { +type Capture_Format struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4EviVxlan_ReplicationType) Reset() { - *x = BgpV4EviVxlan_ReplicationType{} +func (x *Capture_Format) Reset() { + *x = Capture_Format{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[775] + mi := &file_otg_proto_msgTypes[769] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EviVxlan_ReplicationType) String() string { +func (x *Capture_Format) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EviVxlan_ReplicationType) ProtoMessage() {} +func (*Capture_Format) ProtoMessage() {} -func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[775] +func (x *Capture_Format) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[769] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80298,34 +80996,34 @@ func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. -func (*BgpV4EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{72, 0} +// Deprecated: Use Capture_Format.ProtoReflect.Descriptor instead. +func (*Capture_Format) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{25, 0} } -type BgpRouteDistinguisher_RdType struct { +type CaptureFilter_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpRouteDistinguisher_RdType) Reset() { - *x = BgpRouteDistinguisher_RdType{} +func (x *CaptureFilter_Choice) Reset() { + *x = CaptureFilter_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[776] + mi := &file_otg_proto_msgTypes[770] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRouteDistinguisher_RdType) String() string { +func (x *CaptureFilter_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteDistinguisher_RdType) ProtoMessage() {} +func (*CaptureFilter_Choice) ProtoMessage() {} -func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[776] +func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[770] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80336,34 +81034,34 @@ func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteDistinguisher_RdType.ProtoReflect.Descriptor instead. -func (*BgpRouteDistinguisher_RdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{75, 0} +// Deprecated: Use CaptureFilter_Choice.ProtoReflect.Descriptor instead. +func (*CaptureFilter_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{26, 0} } -type BgpRouteTarget_RtType struct { +type IsisInterface_NetworkType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpRouteTarget_RtType) Reset() { - *x = BgpRouteTarget_RtType{} +func (x *IsisInterface_NetworkType) Reset() { + *x = IsisInterface_NetworkType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[777] + mi := &file_otg_proto_msgTypes[771] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRouteTarget_RtType) String() string { +func (x *IsisInterface_NetworkType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteTarget_RtType) ProtoMessage() {} +func (*IsisInterface_NetworkType) ProtoMessage() {} -func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[777] +func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[771] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80374,34 +81072,34 @@ func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteTarget_RtType.ProtoReflect.Descriptor instead. -func (*BgpRouteTarget_RtType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{76, 0} +// Deprecated: Use IsisInterface_NetworkType.ProtoReflect.Descriptor instead. +func (*IsisInterface_NetworkType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{37, 0} } -type BgpV4RouteRange_NextHopMode struct { +type IsisInterface_LevelType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4RouteRange_NextHopMode) Reset() { - *x = BgpV4RouteRange_NextHopMode{} +func (x *IsisInterface_LevelType) Reset() { + *x = IsisInterface_LevelType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[778] + mi := &file_otg_proto_msgTypes[772] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4RouteRange_NextHopMode) String() string { +func (x *IsisInterface_LevelType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4RouteRange_NextHopMode) ProtoMessage() {} +func (*IsisInterface_LevelType) ProtoMessage() {} -func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[778] +func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[772] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80412,34 +81110,34 @@ func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4RouteRange_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpV4RouteRange_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{80, 0} +// Deprecated: Use IsisInterface_LevelType.ProtoReflect.Descriptor instead. +func (*IsisInterface_LevelType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{37, 1} } -type BgpV4RouteRange_NextHopAddressType struct { +type IsisInterfaceAuthentication_AuthType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4RouteRange_NextHopAddressType) Reset() { - *x = BgpV4RouteRange_NextHopAddressType{} +func (x *IsisInterfaceAuthentication_AuthType) Reset() { + *x = IsisInterfaceAuthentication_AuthType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[779] + mi := &file_otg_proto_msgTypes[773] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4RouteRange_NextHopAddressType) String() string { +func (x *IsisInterfaceAuthentication_AuthType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4RouteRange_NextHopAddressType) ProtoMessage() {} +func (*IsisInterfaceAuthentication_AuthType) ProtoMessage() {} -func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[779] +func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[773] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80450,34 +81148,34 @@ func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpV4RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpV4RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{80, 1} +// Deprecated: Use IsisInterfaceAuthentication_AuthType.ProtoReflect.Descriptor instead. +func (*IsisInterfaceAuthentication_AuthType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{42, 0} } -type BgpV6RouteRange_NextHopMode struct { +type IsisAuthenticationBase_AuthType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6RouteRange_NextHopMode) Reset() { - *x = BgpV6RouteRange_NextHopMode{} +func (x *IsisAuthenticationBase_AuthType) Reset() { + *x = IsisAuthenticationBase_AuthType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[780] + mi := &file_otg_proto_msgTypes[774] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6RouteRange_NextHopMode) String() string { +func (x *IsisAuthenticationBase_AuthType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange_NextHopMode) ProtoMessage() {} +func (*IsisAuthenticationBase_AuthType) ProtoMessage() {} -func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[780] +func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[774] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80488,34 +81186,34 @@ func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 0} +// Deprecated: Use IsisAuthenticationBase_AuthType.ProtoReflect.Descriptor instead. +func (*IsisAuthenticationBase_AuthType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{48, 0} } -type BgpV6RouteRange_NextHopAddressType struct { +type IsisV4RouteRange_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6RouteRange_NextHopAddressType) Reset() { - *x = BgpV6RouteRange_NextHopAddressType{} +func (x *IsisV4RouteRange_OriginType) Reset() { + *x = IsisV4RouteRange_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[781] + mi := &file_otg_proto_msgTypes[775] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6RouteRange_NextHopAddressType) String() string { +func (x *IsisV4RouteRange_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange_NextHopAddressType) ProtoMessage() {} +func (*IsisV4RouteRange_OriginType) ProtoMessage() {} -func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[781] +func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[775] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80526,34 +81224,34 @@ func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 1} +// Deprecated: Use IsisV4RouteRange_OriginType.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{49, 0} } -type BgpSrteV4Policy_NextHopMode struct { +type IsisV4RouteRange_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV4Policy_NextHopMode) Reset() { - *x = BgpSrteV4Policy_NextHopMode{} +func (x *IsisV4RouteRange_RedistributionType) Reset() { + *x = IsisV4RouteRange_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[782] + mi := &file_otg_proto_msgTypes[776] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4Policy_NextHopMode) String() string { +func (x *IsisV4RouteRange_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy_NextHopMode) ProtoMessage() {} +func (*IsisV4RouteRange_RedistributionType) ProtoMessage() {} -func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[782] +func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[776] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80564,34 +81262,34 @@ func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83, 0} +// Deprecated: Use IsisV4RouteRange_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{49, 1} } -type BgpSrteV4Policy_NextHopAddressType struct { +type IsisV6RouteRange_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { - *x = BgpSrteV4Policy_NextHopAddressType{} +func (x *IsisV6RouteRange_OriginType) Reset() { + *x = IsisV6RouteRange_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[783] + mi := &file_otg_proto_msgTypes[777] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4Policy_NextHopAddressType) String() string { +func (x *IsisV6RouteRange_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy_NextHopAddressType) ProtoMessage() {} +func (*IsisV6RouteRange_OriginType) ProtoMessage() {} -func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[783] +func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[777] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80602,34 +81300,34 @@ func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83, 1} +// Deprecated: Use IsisV6RouteRange_OriginType.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{53, 0} } -type BgpSrteRemoteEndpointSubTlv_AddressFamily struct { +type IsisV6RouteRange_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { - *x = BgpSrteRemoteEndpointSubTlv_AddressFamily{} +func (x *IsisV6RouteRange_RedistributionType) Reset() { + *x = IsisV6RouteRange_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[784] + mi := &file_otg_proto_msgTypes[778] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) String() string { +func (x *IsisV6RouteRange_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoMessage() {} +func (*IsisV6RouteRange_RedistributionType) ProtoMessage() {} -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[784] +func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[778] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80640,34 +81338,34 @@ func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily.ProtoReflect.Descriptor instead. -func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{85, 0} +// Deprecated: Use IsisV6RouteRange_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{53, 1} } -type BgpSrteBindingSubTlv_BindingSidType struct { +type DeviceBgpMessageHeaderError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteBindingSubTlv_BindingSidType) Reset() { - *x = BgpSrteBindingSubTlv_BindingSidType{} +func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { + *x = DeviceBgpMessageHeaderError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[785] + mi := &file_otg_proto_msgTypes[779] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteBindingSubTlv_BindingSidType) String() string { +func (x *DeviceBgpMessageHeaderError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteBindingSubTlv_BindingSidType) ProtoMessage() {} +func (*DeviceBgpMessageHeaderError_Subcode) ProtoMessage() {} -func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[785] +func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[779] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80678,34 +81376,34 @@ func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BgpSrteBindingSubTlv_BindingSidType.ProtoReflect.Descriptor instead. -func (*BgpSrteBindingSubTlv_BindingSidType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{87, 0} +// Deprecated: Use DeviceBgpMessageHeaderError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpMessageHeaderError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{55, 0} } -type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy struct { +type DeviceBgpOpenMessageError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { - *x = BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy{} +func (x *DeviceBgpOpenMessageError_Subcode) Reset() { + *x = DeviceBgpOpenMessageError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[786] + mi := &file_otg_proto_msgTypes[780] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) String() string { +func (x *DeviceBgpOpenMessageError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoMessage() {} +func (*DeviceBgpOpenMessageError_Subcode) ProtoMessage() {} -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[786] +func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[780] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80716,34 +81414,34 @@ func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy.ProtoReflect.Descriptor instead. -func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{91, 0} +// Deprecated: Use DeviceBgpOpenMessageError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpOpenMessageError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{56, 0} } -type BgpSrteSegment_SegmentType struct { +type DeviceBgpUpdateMessageError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteSegment_SegmentType) Reset() { - *x = BgpSrteSegment_SegmentType{} +func (x *DeviceBgpUpdateMessageError_Subcode) Reset() { + *x = DeviceBgpUpdateMessageError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[787] + mi := &file_otg_proto_msgTypes[781] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegment_SegmentType) String() string { +func (x *DeviceBgpUpdateMessageError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegment_SegmentType) ProtoMessage() {} +func (*DeviceBgpUpdateMessageError_Subcode) ProtoMessage() {} -func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[787] +func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[781] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80754,34 +81452,34 @@ func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegment_SegmentType.ProtoReflect.Descriptor instead. -func (*BgpSrteSegment_SegmentType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{93, 0} +// Deprecated: Use DeviceBgpUpdateMessageError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpUpdateMessageError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{57, 0} } -type BgpSrteV6Policy_NextHopMode struct { +type DeviceBgpCeaseError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV6Policy_NextHopMode) Reset() { - *x = BgpSrteV6Policy_NextHopMode{} +func (x *DeviceBgpCeaseError_Subcode) Reset() { + *x = DeviceBgpCeaseError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[788] + mi := &file_otg_proto_msgTypes[782] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6Policy_NextHopMode) String() string { +func (x *DeviceBgpCeaseError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy_NextHopMode) ProtoMessage() {} +func (*DeviceBgpCeaseError_Subcode) ProtoMessage() {} -func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[788] +func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[782] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80792,34 +81490,34 @@ func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 0} +// Deprecated: Use DeviceBgpCeaseError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpCeaseError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{60, 0} } -type BgpSrteV6Policy_NextHopAddressType struct { +type BgpV4Peer_AsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { - *x = BgpSrteV6Policy_NextHopAddressType{} +func (x *BgpV4Peer_AsType) Reset() { + *x = BgpV4Peer_AsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[789] + mi := &file_otg_proto_msgTypes[783] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6Policy_NextHopAddressType) String() string { +func (x *BgpV4Peer_AsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy_NextHopAddressType) ProtoMessage() {} +func (*BgpV4Peer_AsType) ProtoMessage() {} -func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[789] +func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[783] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80830,34 +81528,34 @@ func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 1} +// Deprecated: Use BgpV4Peer_AsType.ProtoReflect.Descriptor instead. +func (*BgpV4Peer_AsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{62, 0} } -type BgpV6Peer_AsType struct { +type BgpV4Peer_AsNumberWidth struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6Peer_AsType) Reset() { - *x = BgpV6Peer_AsType{} +func (x *BgpV4Peer_AsNumberWidth) Reset() { + *x = BgpV4Peer_AsNumberWidth{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[790] + mi := &file_otg_proto_msgTypes[784] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Peer_AsType) String() string { +func (x *BgpV4Peer_AsNumberWidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer_AsType) ProtoMessage() {} +func (*BgpV4Peer_AsNumberWidth) ProtoMessage() {} -func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[790] +func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[784] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80868,34 +81566,34 @@ func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer_AsType.ProtoReflect.Descriptor instead. -func (*BgpV6Peer_AsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110, 0} +// Deprecated: Use BgpV4Peer_AsNumberWidth.ProtoReflect.Descriptor instead. +func (*BgpV4Peer_AsNumberWidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{62, 1} } -type BgpV6Peer_AsNumberWidth struct { +type BgpV4EthernetSegment_ActiveMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6Peer_AsNumberWidth) Reset() { - *x = BgpV6Peer_AsNumberWidth{} +func (x *BgpV4EthernetSegment_ActiveMode) Reset() { + *x = BgpV4EthernetSegment_ActiveMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[791] + mi := &file_otg_proto_msgTypes[785] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Peer_AsNumberWidth) String() string { +func (x *BgpV4EthernetSegment_ActiveMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer_AsNumberWidth) ProtoMessage() {} +func (*BgpV4EthernetSegment_ActiveMode) ProtoMessage() {} -func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[791] +func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[785] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80906,34 +81604,34 @@ func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer_AsNumberWidth.ProtoReflect.Descriptor instead. -func (*BgpV6Peer_AsNumberWidth) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110, 1} +// Deprecated: Use BgpV4EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. +func (*BgpV4EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{64, 0} } -type BgpV6EthernetSegment_ActiveMode struct { +type BgpRouteAdvanced_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EthernetSegment_ActiveMode) Reset() { - *x = BgpV6EthernetSegment_ActiveMode{} +func (x *BgpRouteAdvanced_Origin) Reset() { + *x = BgpRouteAdvanced_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[792] + mi := &file_otg_proto_msgTypes[786] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EthernetSegment_ActiveMode) String() string { +func (x *BgpRouteAdvanced_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EthernetSegment_ActiveMode) ProtoMessage() {} +func (*BgpRouteAdvanced_Origin) ProtoMessage() {} -func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[792] +func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[786] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80944,34 +81642,34 @@ func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. -func (*BgpV6EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113, 0} +// Deprecated: Use BgpRouteAdvanced_Origin.ProtoReflect.Descriptor instead. +func (*BgpRouteAdvanced_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{66, 0} } -type BgpV6EvpnEvis_Choice struct { +type BgpCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EvpnEvis_Choice) Reset() { - *x = BgpV6EvpnEvis_Choice{} +func (x *BgpCommunity_Type) Reset() { + *x = BgpCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[793] + mi := &file_otg_proto_msgTypes[787] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EvpnEvis_Choice) String() string { +func (x *BgpCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EvpnEvis_Choice) ProtoMessage() {} +func (*BgpCommunity_Type) ProtoMessage() {} -func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[793] +func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[787] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80982,34 +81680,34 @@ func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EvpnEvis_Choice.ProtoReflect.Descriptor instead. -func (*BgpV6EvpnEvis_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{114, 0} +// Deprecated: Use BgpCommunity_Type.ProtoReflect.Descriptor instead. +func (*BgpCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{67, 0} } -type BgpV6EviVxlan_ReplicationType struct { +type BgpExtCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EviVxlan_ReplicationType) Reset() { - *x = BgpV6EviVxlan_ReplicationType{} +func (x *BgpExtCommunity_Type) Reset() { + *x = BgpExtCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[794] + mi := &file_otg_proto_msgTypes[788] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlan_ReplicationType) String() string { +func (x *BgpExtCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlan_ReplicationType) ProtoMessage() {} +func (*BgpExtCommunity_Type) ProtoMessage() {} -func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[794] +func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[788] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81020,34 +81718,34 @@ func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{115, 0} +// Deprecated: Use BgpExtCommunity_Type.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{68, 0} } -type VxlanV4TunnelDestinationIPMode_Choice struct { +type BgpExtCommunity_Subtype struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *VxlanV4TunnelDestinationIPMode_Choice) Reset() { - *x = VxlanV4TunnelDestinationIPMode_Choice{} +func (x *BgpExtCommunity_Subtype) Reset() { + *x = BgpExtCommunity_Subtype{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[795] + mi := &file_otg_proto_msgTypes[789] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4TunnelDestinationIPMode_Choice) String() string { +func (x *BgpExtCommunity_Subtype) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPMode_Choice) ProtoMessage() {} +func (*BgpExtCommunity_Subtype) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[795] +func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[789] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81058,34 +81756,34 @@ func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{120, 0} +// Deprecated: Use BgpExtCommunity_Subtype.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity_Subtype) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{68, 1} } -type VxlanV6TunnelDestinationIPMode_Choice struct { +type BgpAsPath_AsSetMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *VxlanV6TunnelDestinationIPMode_Choice) Reset() { - *x = VxlanV6TunnelDestinationIPMode_Choice{} +func (x *BgpAsPath_AsSetMode) Reset() { + *x = BgpAsPath_AsSetMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[796] + mi := &file_otg_proto_msgTypes[790] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPMode_Choice) String() string { +func (x *BgpAsPath_AsSetMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPMode_Choice) ProtoMessage() {} +func (*BgpAsPath_AsSetMode) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[796] +func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[790] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81096,34 +81794,34 @@ func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{121, 0} +// Deprecated: Use BgpAsPath_AsSetMode.ProtoReflect.Descriptor instead. +func (*BgpAsPath_AsSetMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{69, 0} } -type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle struct { +type BgpAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { - *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle{} +func (x *BgpAsPathSegment_Type) Reset() { + *x = BgpAsPathSegment_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[797] + mi := &file_otg_proto_msgTypes[791] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) String() string { +func (x *BgpAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoMessage() {} +func (*BgpAsPathSegment_Type) ProtoMessage() {} -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[797] +func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[791] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81134,34 +81832,34 @@ func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{132, 0} +// Deprecated: Use BgpAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*BgpAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{70, 0} } -type RsvpEro_PrependNeighborIp struct { +type BgpV4EvpnEvis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEro_PrependNeighborIp) Reset() { - *x = RsvpEro_PrependNeighborIp{} +func (x *BgpV4EvpnEvis_Choice) Reset() { + *x = BgpV4EvpnEvis_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[798] + mi := &file_otg_proto_msgTypes[792] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEro_PrependNeighborIp) String() string { +func (x *BgpV4EvpnEvis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEro_PrependNeighborIp) ProtoMessage() {} +func (*BgpV4EvpnEvis_Choice) ProtoMessage() {} -func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[798] +func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[792] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81172,34 +81870,34 @@ func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEro_PrependNeighborIp.ProtoReflect.Descriptor instead. -func (*RsvpEro_PrependNeighborIp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{138, 0} +// Deprecated: Use BgpV4EvpnEvis_Choice.ProtoReflect.Descriptor instead. +func (*BgpV4EvpnEvis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{71, 0} } -type RsvpEroSubobject_Type struct { +type BgpV4EviVxlan_ReplicationType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEroSubobject_Type) Reset() { - *x = RsvpEroSubobject_Type{} +func (x *BgpV4EviVxlan_ReplicationType) Reset() { + *x = BgpV4EviVxlan_ReplicationType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[799] + mi := &file_otg_proto_msgTypes[793] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject_Type) String() string { +func (x *BgpV4EviVxlan_ReplicationType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject_Type) ProtoMessage() {} +func (*BgpV4EviVxlan_ReplicationType) ProtoMessage() {} -func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[799] +func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[793] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81210,34 +81908,34 @@ func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject_Type.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 0} +// Deprecated: Use BgpV4EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. +func (*BgpV4EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{72, 0} } -type RsvpEroSubobject_HopType struct { +type BgpRouteDistinguisher_RdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEroSubobject_HopType) Reset() { - *x = RsvpEroSubobject_HopType{} +func (x *BgpRouteDistinguisher_RdType) Reset() { + *x = BgpRouteDistinguisher_RdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[800] + mi := &file_otg_proto_msgTypes[794] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject_HopType) String() string { +func (x *BgpRouteDistinguisher_RdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject_HopType) ProtoMessage() {} +func (*BgpRouteDistinguisher_RdType) ProtoMessage() {} -func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[800] +func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[794] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81248,34 +81946,34 @@ func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject_HopType.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject_HopType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 1} +// Deprecated: Use BgpRouteDistinguisher_RdType.ProtoReflect.Descriptor instead. +func (*BgpRouteDistinguisher_RdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{75, 0} } -type FlowTxRx_Choice struct { +type BgpRouteTarget_RtType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowTxRx_Choice) Reset() { - *x = FlowTxRx_Choice{} +func (x *BgpRouteTarget_RtType) Reset() { + *x = BgpRouteTarget_RtType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[801] + mi := &file_otg_proto_msgTypes[795] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTxRx_Choice) String() string { +func (x *BgpRouteTarget_RtType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTxRx_Choice) ProtoMessage() {} +func (*BgpRouteTarget_RtType) ProtoMessage() {} -func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[801] +func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[795] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81286,34 +81984,34 @@ func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTxRx_Choice.ProtoReflect.Descriptor instead. -func (*FlowTxRx_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141, 0} +// Deprecated: Use BgpRouteTarget_RtType.ProtoReflect.Descriptor instead. +func (*BgpRouteTarget_RtType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{76, 0} } -type FlowRouter_Mode struct { +type BgpV4RouteRange_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRouter_Mode) Reset() { - *x = FlowRouter_Mode{} +func (x *BgpV4RouteRange_NextHopMode) Reset() { + *x = BgpV4RouteRange_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[802] + mi := &file_otg_proto_msgTypes[796] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRouter_Mode) String() string { +func (x *BgpV4RouteRange_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRouter_Mode) ProtoMessage() {} +func (*BgpV4RouteRange_NextHopMode) ProtoMessage() {} -func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[802] +func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[796] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81324,34 +82022,34 @@ func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRouter_Mode.ProtoReflect.Descriptor instead. -func (*FlowRouter_Mode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143, 0} +// Deprecated: Use BgpV4RouteRange_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{80, 0} } -type FlowHeader_Choice struct { +type BgpV4RouteRange_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowHeader_Choice) Reset() { - *x = FlowHeader_Choice{} +func (x *BgpV4RouteRange_NextHopAddressType) Reset() { + *x = BgpV4RouteRange_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[803] + mi := &file_otg_proto_msgTypes[797] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowHeader_Choice) String() string { +func (x *BgpV4RouteRange_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowHeader_Choice) ProtoMessage() {} +func (*BgpV4RouteRange_NextHopAddressType) ProtoMessage() {} -func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[803] +func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[797] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81362,34 +82060,34 @@ func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowHeader_Choice.ProtoReflect.Descriptor instead. -func (*FlowHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{144, 0} +// Deprecated: Use BgpV4RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{80, 1} } -type FlowIpv4Priority_Choice struct { +type BgpExtendedCommunity_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4Priority_Choice) Reset() { - *x = FlowIpv4Priority_Choice{} +func (x *BgpExtendedCommunity_Choice) Reset() { + *x = BgpExtendedCommunity_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[804] + mi := &file_otg_proto_msgTypes[798] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Priority_Choice) String() string { +func (x *BgpExtendedCommunity_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Priority_Choice) ProtoMessage() {} +func (*BgpExtendedCommunity_Choice) ProtoMessage() {} -func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[804] +func (x *BgpExtendedCommunity_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[798] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81400,34 +82098,34 @@ func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Priority_Choice.ProtoReflect.Descriptor instead. -func (*FlowIpv4Priority_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{151, 0} +// Deprecated: Use BgpExtendedCommunity_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunity_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{82, 0} } -type FlowIcmp_Choice struct { +type BgpExtendedCommunityTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIcmp_Choice) Reset() { - *x = FlowIcmp_Choice{} +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[805] + mi := &file_otg_proto_msgTypes[799] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmp_Choice) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmp_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[805] +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[799] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81438,34 +82136,34 @@ func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmp_Choice.ProtoReflect.Descriptor instead. -func (*FlowIcmp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{164, 0} +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85, 0} } -type FlowIcmpv6_Choice struct { +type BgpExtendedCommunityTransitiveIpv4AddressType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIcmpv6_Choice) Reset() { - *x = FlowIcmpv6_Choice{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[806] + mi := &file_otg_proto_msgTypes[800] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmpv6_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpv6_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoMessage() {} -func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[806] +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[800] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81476,34 +82174,34 @@ func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpv6_Choice.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{166, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88, 0} } -type FlowSize_Choice struct { +type BgpExtendedCommunityTransitive4OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSize_Choice) Reset() { - *x = FlowSize_Choice{} +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[807] + mi := &file_otg_proto_msgTypes[801] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSize_Choice) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSize_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoMessage() {} -func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[807] +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[801] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81514,34 +82212,34 @@ func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSize_Choice.ProtoReflect.Descriptor instead. -func (*FlowSize_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{171, 0} +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{91, 0} } -type FlowSizeWeightPairs_Choice struct { +type BgpExtendedCommunityTransitiveOpaqueType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSizeWeightPairs_Choice) Reset() { - *x = FlowSizeWeightPairs_Choice{} +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[808] + mi := &file_otg_proto_msgTypes[802] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairs_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoMessage() {} -func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[808] +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[802] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81552,34 +82250,34 @@ func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairs_Choice.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94, 0} } -type FlowSizeWeightPairs_Predefined struct { +type BgpExtendedCommunityTransitiveEvpnType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSizeWeightPairs_Predefined) Reset() { - *x = FlowSizeWeightPairs_Predefined{} +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[809] + mi := &file_otg_proto_msgTypes[803] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairs_Predefined) String() string { +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs_Predefined) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoMessage() {} -func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[809] +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[803] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81590,34 +82288,34 @@ func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairs_Predefined.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs_Predefined) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174, 1} +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96, 0} } -type FlowRate_Choice struct { +type BgpExtendedCommunityNonTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRate_Choice) Reset() { - *x = FlowRate_Choice{} +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[810] + mi := &file_otg_proto_msgTypes[804] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRate_Choice) String() string { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRate_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[810] +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[804] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81628,34 +82326,34 @@ func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRate_Choice.ProtoReflect.Descriptor instead. -func (*FlowRate_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{176, 0} +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{98, 0} } -type FlowDuration_Choice struct { +type BgpV6RouteRange_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDuration_Choice) Reset() { - *x = FlowDuration_Choice{} +func (x *BgpV6RouteRange_NextHopMode) Reset() { + *x = BgpV6RouteRange_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[811] + mi := &file_otg_proto_msgTypes[805] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDuration_Choice) String() string { +func (x *BgpV6RouteRange_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDuration_Choice) ProtoMessage() {} +func (*BgpV6RouteRange_NextHopMode) ProtoMessage() {} -func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[811] +func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[805] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81666,34 +82364,34 @@ func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDuration_Choice.ProtoReflect.Descriptor instead. -func (*FlowDuration_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{177, 0} +// Deprecated: Use BgpV6RouteRange_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100, 0} } -type FlowDelay_Choice struct { +type BgpV6RouteRange_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDelay_Choice) Reset() { - *x = FlowDelay_Choice{} +func (x *BgpV6RouteRange_NextHopAddressType) Reset() { + *x = BgpV6RouteRange_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[812] + mi := &file_otg_proto_msgTypes[806] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDelay_Choice) String() string { +func (x *BgpV6RouteRange_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDelay_Choice) ProtoMessage() {} +func (*BgpV6RouteRange_NextHopAddressType) ProtoMessage() {} -func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[812] +func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[806] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81704,34 +82402,34 @@ func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDelay_Choice.ProtoReflect.Descriptor instead. -func (*FlowDelay_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{179, 0} +// Deprecated: Use BgpV6RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100, 1} } -type FlowDurationInterBurstGap_Choice struct { +type BgpSrteV4Policy_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDurationInterBurstGap_Choice) Reset() { - *x = FlowDurationInterBurstGap_Choice{} +func (x *BgpSrteV4Policy_NextHopMode) Reset() { + *x = BgpSrteV4Policy_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[813] + mi := &file_otg_proto_msgTypes[807] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDurationInterBurstGap_Choice) String() string { +func (x *BgpSrteV4Policy_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDurationInterBurstGap_Choice) ProtoMessage() {} +func (*BgpSrteV4Policy_NextHopMode) ProtoMessage() {} -func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[813] +func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[807] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81742,34 +82440,34 @@ func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDurationInterBurstGap_Choice.ProtoReflect.Descriptor instead. -func (*FlowDurationInterBurstGap_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{183, 0} +// Deprecated: Use BgpSrteV4Policy_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101, 0} } -type FlowLatencyMetrics_Mode struct { +type BgpSrteV4Policy_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowLatencyMetrics_Mode) Reset() { - *x = FlowLatencyMetrics_Mode{} +func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { + *x = BgpSrteV4Policy_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[814] + mi := &file_otg_proto_msgTypes[808] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowLatencyMetrics_Mode) String() string { +func (x *BgpSrteV4Policy_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowLatencyMetrics_Mode) ProtoMessage() {} +func (*BgpSrteV4Policy_NextHopAddressType) ProtoMessage() {} -func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[814] +func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[808] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81780,34 +82478,34 @@ func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowLatencyMetrics_Mode.ProtoReflect.Descriptor instead. -func (*FlowLatencyMetrics_Mode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{185, 0} +// Deprecated: Use BgpSrteV4Policy_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101, 1} } -type FlowRxTxRatio_Choice struct { +type BgpSrteRemoteEndpointSubTlv_AddressFamily struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRxTxRatio_Choice) Reset() { - *x = FlowRxTxRatio_Choice{} +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { + *x = BgpSrteRemoteEndpointSubTlv_AddressFamily{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[815] + mi := &file_otg_proto_msgTypes[809] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatio_Choice) String() string { +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatio_Choice) ProtoMessage() {} +func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoMessage() {} -func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[815] +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[809] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81818,34 +82516,34 @@ func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatio_Choice.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatio_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{187, 0} +// Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily.ProtoReflect.Descriptor instead. +func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{103, 0} } -type EventRequest_Type struct { +type BgpSrteBindingSubTlv_BindingSidType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *EventRequest_Type) Reset() { - *x = EventRequest_Type{} +func (x *BgpSrteBindingSubTlv_BindingSidType) Reset() { + *x = BgpSrteBindingSubTlv_BindingSidType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[816] + mi := &file_otg_proto_msgTypes[810] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRequest_Type) String() string { +func (x *BgpSrteBindingSubTlv_BindingSidType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRequest_Type) ProtoMessage() {} +func (*BgpSrteBindingSubTlv_BindingSidType) ProtoMessage() {} -func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[816] +func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[810] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81856,34 +82554,34 @@ func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRequest_Type.ProtoReflect.Descriptor instead. -func (*EventRequest_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193, 0} +// Deprecated: Use BgpSrteBindingSubTlv_BindingSidType.ProtoReflect.Descriptor instead. +func (*BgpSrteBindingSubTlv_BindingSidType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{105, 0} } -type LldpConnection_Choice struct { +type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpConnection_Choice) Reset() { - *x = LldpConnection_Choice{} +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { + *x = BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[817] + mi := &file_otg_proto_msgTypes[811] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpConnection_Choice) String() string { +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpConnection_Choice) ProtoMessage() {} +func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoMessage() {} -func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[817] +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[811] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81894,34 +82592,34 @@ func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpConnection_Choice.ProtoReflect.Descriptor instead. -func (*LldpConnection_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196, 0} +// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy.ProtoReflect.Descriptor instead. +func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{109, 0} } -type LldpChassisId_Choice struct { +type BgpSrteSegment_SegmentType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpChassisId_Choice) Reset() { - *x = LldpChassisId_Choice{} +func (x *BgpSrteSegment_SegmentType) Reset() { + *x = BgpSrteSegment_SegmentType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[818] + mi := &file_otg_proto_msgTypes[812] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisId_Choice) String() string { +func (x *BgpSrteSegment_SegmentType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisId_Choice) ProtoMessage() {} +func (*BgpSrteSegment_SegmentType) ProtoMessage() {} -func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[818] +func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[812] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81932,34 +82630,34 @@ func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisId_Choice.ProtoReflect.Descriptor instead. -func (*LldpChassisId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{197, 0} +// Deprecated: Use BgpSrteSegment_SegmentType.ProtoReflect.Descriptor instead. +func (*BgpSrteSegment_SegmentType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{111, 0} } -type LldpPortId_Choice struct { +type BgpSrteV6Policy_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpPortId_Choice) Reset() { - *x = LldpPortId_Choice{} +func (x *BgpSrteV6Policy_NextHopMode) Reset() { + *x = BgpSrteV6Policy_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[819] + mi := &file_otg_proto_msgTypes[813] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortId_Choice) String() string { +func (x *BgpSrteV6Policy_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortId_Choice) ProtoMessage() {} +func (*BgpSrteV6Policy_NextHopMode) ProtoMessage() {} -func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[819] +func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[813] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81970,34 +82668,34 @@ func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortId_Choice.ProtoReflect.Descriptor instead. -func (*LldpPortId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198, 0} +// Deprecated: Use BgpSrteV6Policy_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{125, 0} } -type LldpChassisMacSubType_Choice struct { +type BgpSrteV6Policy_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpChassisMacSubType_Choice) Reset() { - *x = LldpChassisMacSubType_Choice{} +func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { + *x = BgpSrteV6Policy_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[820] + mi := &file_otg_proto_msgTypes[814] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisMacSubType_Choice) String() string { +func (x *BgpSrteV6Policy_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisMacSubType_Choice) ProtoMessage() {} +func (*BgpSrteV6Policy_NextHopAddressType) ProtoMessage() {} -func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[820] +func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[814] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82008,34 +82706,34 @@ func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisMacSubType_Choice.ProtoReflect.Descriptor instead. -func (*LldpChassisMacSubType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199, 0} +// Deprecated: Use BgpSrteV6Policy_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{125, 1} } -type LldpPortInterfaceNameSubType_Choice struct { +type BgpV6Peer_AsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpPortInterfaceNameSubType_Choice) Reset() { - *x = LldpPortInterfaceNameSubType_Choice{} +func (x *BgpV6Peer_AsType) Reset() { + *x = BgpV6Peer_AsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[821] + mi := &file_otg_proto_msgTypes[815] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortInterfaceNameSubType_Choice) String() string { +func (x *BgpV6Peer_AsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortInterfaceNameSubType_Choice) ProtoMessage() {} +func (*BgpV6Peer_AsType) ProtoMessage() {} -func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[821] +func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[815] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82046,34 +82744,34 @@ func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use LldpPortInterfaceNameSubType_Choice.ProtoReflect.Descriptor instead. -func (*LldpPortInterfaceNameSubType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200, 0} +// Deprecated: Use BgpV6Peer_AsType.ProtoReflect.Descriptor instead. +func (*BgpV6Peer_AsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128, 0} } -type LldpSystemName_Choice struct { +type BgpV6Peer_AsNumberWidth struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpSystemName_Choice) Reset() { - *x = LldpSystemName_Choice{} +func (x *BgpV6Peer_AsNumberWidth) Reset() { + *x = BgpV6Peer_AsNumberWidth{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[822] + mi := &file_otg_proto_msgTypes[816] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpSystemName_Choice) String() string { +func (x *BgpV6Peer_AsNumberWidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpSystemName_Choice) ProtoMessage() {} +func (*BgpV6Peer_AsNumberWidth) ProtoMessage() {} -func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[822] +func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[816] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82084,34 +82782,34 @@ func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpSystemName_Choice.ProtoReflect.Descriptor instead. -func (*LldpSystemName_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201, 0} +// Deprecated: Use BgpV6Peer_AsNumberWidth.ProtoReflect.Descriptor instead. +func (*BgpV6Peer_AsNumberWidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128, 1} } -type Error_Kind struct { +type BgpV6EthernetSegment_ActiveMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Error_Kind) Reset() { - *x = Error_Kind{} +func (x *BgpV6EthernetSegment_ActiveMode) Reset() { + *x = BgpV6EthernetSegment_ActiveMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[823] + mi := &file_otg_proto_msgTypes[817] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Error_Kind) String() string { +func (x *BgpV6EthernetSegment_ActiveMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Error_Kind) ProtoMessage() {} +func (*BgpV6EthernetSegment_ActiveMode) ProtoMessage() {} -func (x *Error_Kind) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[823] +func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[817] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82122,34 +82820,34 @@ func (x *Error_Kind) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Error_Kind.ProtoReflect.Descriptor instead. -func (*Error_Kind) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{202, 0} +// Deprecated: Use BgpV6EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. +func (*BgpV6EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{131, 0} } -type ConfigUpdate_Choice struct { +type BgpV6EvpnEvis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ConfigUpdate_Choice) Reset() { - *x = ConfigUpdate_Choice{} +func (x *BgpV6EvpnEvis_Choice) Reset() { + *x = BgpV6EvpnEvis_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[824] + mi := &file_otg_proto_msgTypes[818] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConfigUpdate_Choice) String() string { +func (x *BgpV6EvpnEvis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConfigUpdate_Choice) ProtoMessage() {} +func (*BgpV6EvpnEvis_Choice) ProtoMessage() {} -func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[824] +func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[818] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82160,34 +82858,34 @@ func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConfigUpdate_Choice.ProtoReflect.Descriptor instead. -func (*ConfigUpdate_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{204, 0} +// Deprecated: Use BgpV6EvpnEvis_Choice.ProtoReflect.Descriptor instead. +func (*BgpV6EvpnEvis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{132, 0} } -type FlowsUpdate_PropertyNames struct { +type BgpV6EviVxlan_ReplicationType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowsUpdate_PropertyNames) Reset() { - *x = FlowsUpdate_PropertyNames{} +func (x *BgpV6EviVxlan_ReplicationType) Reset() { + *x = BgpV6EviVxlan_ReplicationType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[825] + mi := &file_otg_proto_msgTypes[819] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowsUpdate_PropertyNames) String() string { +func (x *BgpV6EviVxlan_ReplicationType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowsUpdate_PropertyNames) ProtoMessage() {} +func (*BgpV6EviVxlan_ReplicationType) ProtoMessage() {} -func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[825] +func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[819] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82198,34 +82896,34 @@ func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowsUpdate_PropertyNames.ProtoReflect.Descriptor instead. -func (*FlowsUpdate_PropertyNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{205, 0} +// Deprecated: Use BgpV6EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{133, 0} } -type ControlState_Choice struct { +type VxlanV4TunnelDestinationIPMode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ControlState_Choice) Reset() { - *x = ControlState_Choice{} +func (x *VxlanV4TunnelDestinationIPMode_Choice) Reset() { + *x = VxlanV4TunnelDestinationIPMode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[826] + mi := &file_otg_proto_msgTypes[820] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlState_Choice) String() string { +func (x *VxlanV4TunnelDestinationIPMode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlState_Choice) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPMode_Choice) ProtoMessage() {} -func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[826] +func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[820] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82236,34 +82934,34 @@ func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlState_Choice.ProtoReflect.Descriptor instead. -func (*ControlState_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{206, 0} +// Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{138, 0} } -type StatePort_Choice struct { +type VxlanV6TunnelDestinationIPMode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePort_Choice) Reset() { - *x = StatePort_Choice{} +func (x *VxlanV6TunnelDestinationIPMode_Choice) Reset() { + *x = VxlanV6TunnelDestinationIPMode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[827] + mi := &file_otg_proto_msgTypes[821] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePort_Choice) String() string { +func (x *VxlanV6TunnelDestinationIPMode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePort_Choice) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPMode_Choice) ProtoMessage() {} -func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[827] +func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[821] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82274,34 +82972,34 @@ func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePort_Choice.ProtoReflect.Descriptor instead. -func (*StatePort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{207, 0} +// Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{139, 0} } -type StateTraffic_Choice struct { +type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateTraffic_Choice) Reset() { - *x = StateTraffic_Choice{} +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { + *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[828] + mi := &file_otg_proto_msgTypes[822] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateTraffic_Choice) String() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTraffic_Choice) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoMessage() {} -func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[828] +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[822] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82312,34 +83010,34 @@ func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTraffic_Choice.ProtoReflect.Descriptor instead. -func (*StateTraffic_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{208, 0} +// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{150, 0} } -type StateProtocol_Choice struct { +type RsvpEro_PrependNeighborIp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocol_Choice) Reset() { - *x = StateProtocol_Choice{} +func (x *RsvpEro_PrependNeighborIp) Reset() { + *x = RsvpEro_PrependNeighborIp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[829] + mi := &file_otg_proto_msgTypes[823] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocol_Choice) String() string { +func (x *RsvpEro_PrependNeighborIp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocol_Choice) ProtoMessage() {} +func (*RsvpEro_PrependNeighborIp) ProtoMessage() {} -func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[829] +func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[823] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82350,34 +83048,34 @@ func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocol_Choice.ProtoReflect.Descriptor instead. -func (*StateProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{209, 0} +// Deprecated: Use RsvpEro_PrependNeighborIp.ProtoReflect.Descriptor instead. +func (*RsvpEro_PrependNeighborIp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{156, 0} } -type StatePortLink_State struct { +type RsvpEroSubobject_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePortLink_State) Reset() { - *x = StatePortLink_State{} +func (x *RsvpEroSubobject_Type) Reset() { + *x = RsvpEroSubobject_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[830] + mi := &file_otg_proto_msgTypes[824] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePortLink_State) String() string { +func (x *RsvpEroSubobject_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortLink_State) ProtoMessage() {} +func (*RsvpEroSubobject_Type) ProtoMessage() {} -func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[830] +func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[824] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82388,34 +83086,34 @@ func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortLink_State.ProtoReflect.Descriptor instead. -func (*StatePortLink_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{210, 0} +// Deprecated: Use RsvpEroSubobject_Type.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157, 0} } -type StatePortCapture_State struct { +type RsvpEroSubobject_HopType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePortCapture_State) Reset() { - *x = StatePortCapture_State{} +func (x *RsvpEroSubobject_HopType) Reset() { + *x = RsvpEroSubobject_HopType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[831] + mi := &file_otg_proto_msgTypes[825] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePortCapture_State) String() string { +func (x *RsvpEroSubobject_HopType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortCapture_State) ProtoMessage() {} +func (*RsvpEroSubobject_HopType) ProtoMessage() {} -func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[831] +func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[825] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82426,34 +83124,34 @@ func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortCapture_State.ProtoReflect.Descriptor instead. -func (*StatePortCapture_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{211, 0} +// Deprecated: Use RsvpEroSubobject_HopType.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject_HopType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157, 1} } -type StateTrafficFlowTransmit_State struct { +type FlowTxRx_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateTrafficFlowTransmit_State) Reset() { - *x = StateTrafficFlowTransmit_State{} +func (x *FlowTxRx_Choice) Reset() { + *x = FlowTxRx_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[832] + mi := &file_otg_proto_msgTypes[826] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateTrafficFlowTransmit_State) String() string { +func (x *FlowTxRx_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTrafficFlowTransmit_State) ProtoMessage() {} +func (*FlowTxRx_Choice) ProtoMessage() {} -func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[832] +func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[826] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82464,34 +83162,34 @@ func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTrafficFlowTransmit_State.ProtoReflect.Descriptor instead. -func (*StateTrafficFlowTransmit_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{212, 0} +// Deprecated: Use FlowTxRx_Choice.ProtoReflect.Descriptor instead. +func (*FlowTxRx_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{159, 0} } -type StateProtocolAll_State struct { +type FlowRouter_Mode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolAll_State) Reset() { - *x = StateProtocolAll_State{} +func (x *FlowRouter_Mode) Reset() { + *x = FlowRouter_Mode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[833] + mi := &file_otg_proto_msgTypes[827] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolAll_State) String() string { +func (x *FlowRouter_Mode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolAll_State) ProtoMessage() {} +func (*FlowRouter_Mode) ProtoMessage() {} -func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[833] +func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[827] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82502,34 +83200,34 @@ func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolAll_State.ProtoReflect.Descriptor instead. -func (*StateProtocolAll_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{213, 0} +// Deprecated: Use FlowRouter_Mode.ProtoReflect.Descriptor instead. +func (*FlowRouter_Mode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{161, 0} } -type StateProtocolRoute_State struct { +type FlowHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolRoute_State) Reset() { - *x = StateProtocolRoute_State{} +func (x *FlowHeader_Choice) Reset() { + *x = FlowHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[834] + mi := &file_otg_proto_msgTypes[828] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolRoute_State) String() string { +func (x *FlowHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolRoute_State) ProtoMessage() {} +func (*FlowHeader_Choice) ProtoMessage() {} -func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[834] +func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[828] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82540,34 +83238,34 @@ func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolRoute_State.ProtoReflect.Descriptor instead. -func (*StateProtocolRoute_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{214, 0} +// Deprecated: Use FlowHeader_Choice.ProtoReflect.Descriptor instead. +func (*FlowHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{162, 0} } -type StateProtocolLacp_Choice struct { +type FlowIpv4Priority_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacp_Choice) Reset() { - *x = StateProtocolLacp_Choice{} +func (x *FlowIpv4Priority_Choice) Reset() { + *x = FlowIpv4Priority_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[835] + mi := &file_otg_proto_msgTypes[829] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacp_Choice) String() string { +func (x *FlowIpv4Priority_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacp_Choice) ProtoMessage() {} +func (*FlowIpv4Priority_Choice) ProtoMessage() {} -func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[835] +func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[829] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82578,34 +83276,34 @@ func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacp_Choice.ProtoReflect.Descriptor instead. -func (*StateProtocolLacp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{215, 0} +// Deprecated: Use FlowIpv4Priority_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4Priority_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{169, 0} } -type StateProtocolLacpAdmin_State struct { +type FlowIcmp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacpAdmin_State) Reset() { - *x = StateProtocolLacpAdmin_State{} +func (x *FlowIcmp_Choice) Reset() { + *x = FlowIcmp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[836] + mi := &file_otg_proto_msgTypes[830] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacpAdmin_State) String() string { +func (x *FlowIcmp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpAdmin_State) ProtoMessage() {} +func (*FlowIcmp_Choice) ProtoMessage() {} -func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[836] +func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[830] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82616,34 +83314,34 @@ func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacpAdmin_State.ProtoReflect.Descriptor instead. -func (*StateProtocolLacpAdmin_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{216, 0} +// Deprecated: Use FlowIcmp_Choice.ProtoReflect.Descriptor instead. +func (*FlowIcmp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{182, 0} } -type ControlAction_Choice struct { +type FlowIcmpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ControlAction_Choice) Reset() { - *x = ControlAction_Choice{} +func (x *FlowIcmpv6_Choice) Reset() { + *x = FlowIcmpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[837] + mi := &file_otg_proto_msgTypes[831] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlAction_Choice) String() string { +func (x *FlowIcmpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlAction_Choice) ProtoMessage() {} +func (*FlowIcmpv6_Choice) ProtoMessage() {} -func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[837] +func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[831] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82654,34 +83352,34 @@ func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlAction_Choice.ProtoReflect.Descriptor instead. -func (*ControlAction_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{217, 0} +// Deprecated: Use FlowIcmpv6_Choice.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{184, 0} } -type ActionResponse_Choice struct { +type FlowSize_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponse_Choice) Reset() { - *x = ActionResponse_Choice{} +func (x *FlowSize_Choice) Reset() { + *x = FlowSize_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[838] + mi := &file_otg_proto_msgTypes[832] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponse_Choice) String() string { +func (x *FlowSize_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponse_Choice) ProtoMessage() {} +func (*FlowSize_Choice) ProtoMessage() {} -func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[838] +func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[832] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82692,34 +83390,34 @@ func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponse_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219, 0} +// Deprecated: Use FlowSize_Choice.ProtoReflect.Descriptor instead. +func (*FlowSize_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{189, 0} } -type ActionProtocol_Choice struct { +type FlowSizeWeightPairs_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocol_Choice) Reset() { - *x = ActionProtocol_Choice{} +func (x *FlowSizeWeightPairs_Choice) Reset() { + *x = FlowSizeWeightPairs_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[839] + mi := &file_otg_proto_msgTypes[833] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocol_Choice) String() string { +func (x *FlowSizeWeightPairs_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocol_Choice) ProtoMessage() {} +func (*FlowSizeWeightPairs_Choice) ProtoMessage() {} -func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[839] +func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[833] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82730,34 +83428,34 @@ func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocol_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{220, 0} +// Deprecated: Use FlowSizeWeightPairs_Choice.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{192, 0} } -type ActionResponseProtocol_Choice struct { +type FlowSizeWeightPairs_Predefined struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocol_Choice) Reset() { - *x = ActionResponseProtocol_Choice{} +func (x *FlowSizeWeightPairs_Predefined) Reset() { + *x = FlowSizeWeightPairs_Predefined{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[840] + mi := &file_otg_proto_msgTypes[834] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocol_Choice) String() string { +func (x *FlowSizeWeightPairs_Predefined) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocol_Choice) ProtoMessage() {} +func (*FlowSizeWeightPairs_Predefined) ProtoMessage() {} -func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[840] +func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[834] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82768,34 +83466,34 @@ func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocol_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{221, 0} +// Deprecated: Use FlowSizeWeightPairs_Predefined.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs_Predefined) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{192, 1} } -type ActionProtocolIpv4_Choice struct { +type FlowRate_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolIpv4_Choice) Reset() { - *x = ActionProtocolIpv4_Choice{} +func (x *FlowRate_Choice) Reset() { + *x = FlowRate_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[841] + mi := &file_otg_proto_msgTypes[835] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv4_Choice) String() string { +func (x *FlowRate_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4_Choice) ProtoMessage() {} +func (*FlowRate_Choice) ProtoMessage() {} -func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[841] +func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[835] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82806,34 +83504,34 @@ func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{222, 0} +// Deprecated: Use FlowRate_Choice.ProtoReflect.Descriptor instead. +func (*FlowRate_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{194, 0} } -type ActionResponseProtocolIpv4_Choice struct { +type FlowDuration_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv4_Choice) Reset() { - *x = ActionResponseProtocolIpv4_Choice{} +func (x *FlowDuration_Choice) Reset() { + *x = FlowDuration_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[842] + mi := &file_otg_proto_msgTypes[836] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4_Choice) String() string { +func (x *FlowDuration_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4_Choice) ProtoMessage() {} +func (*FlowDuration_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[842] +func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[836] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82844,34 +83542,34 @@ func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{223, 0} +// Deprecated: Use FlowDuration_Choice.ProtoReflect.Descriptor instead. +func (*FlowDuration_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{195, 0} } -type ActionResponseProtocolIpv4PingResponse_Result struct { +type FlowDelay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { - *x = ActionResponseProtocolIpv4PingResponse_Result{} +func (x *FlowDelay_Choice) Reset() { + *x = FlowDelay_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[843] + mi := &file_otg_proto_msgTypes[837] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4PingResponse_Result) String() string { +func (x *FlowDelay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4PingResponse_Result) ProtoMessage() {} +func (*FlowDelay_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[843] +func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[837] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82882,34 +83580,34 @@ func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4PingResponse_Result) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227, 0} +// Deprecated: Use FlowDelay_Choice.ProtoReflect.Descriptor instead. +func (*FlowDelay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{197, 0} } -type ActionProtocolIpv6_Choice struct { +type FlowDurationInterBurstGap_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolIpv6_Choice) Reset() { - *x = ActionProtocolIpv6_Choice{} +func (x *FlowDurationInterBurstGap_Choice) Reset() { + *x = FlowDurationInterBurstGap_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[844] + mi := &file_otg_proto_msgTypes[838] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv6_Choice) String() string { +func (x *FlowDurationInterBurstGap_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6_Choice) ProtoMessage() {} +func (*FlowDurationInterBurstGap_Choice) ProtoMessage() {} -func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[844] +func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[838] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82920,34 +83618,34 @@ func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228, 0} +// Deprecated: Use FlowDurationInterBurstGap_Choice.ProtoReflect.Descriptor instead. +func (*FlowDurationInterBurstGap_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{201, 0} } -type ActionResponseProtocolIpv6_Choice struct { +type FlowLatencyMetrics_Mode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv6_Choice) Reset() { - *x = ActionResponseProtocolIpv6_Choice{} +func (x *FlowLatencyMetrics_Mode) Reset() { + *x = FlowLatencyMetrics_Mode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[845] + mi := &file_otg_proto_msgTypes[839] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6_Choice) String() string { +func (x *FlowLatencyMetrics_Mode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6_Choice) ProtoMessage() {} +func (*FlowLatencyMetrics_Mode) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[845] +func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[839] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82958,34 +83656,34 @@ func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{229, 0} +// Deprecated: Use FlowLatencyMetrics_Mode.ProtoReflect.Descriptor instead. +func (*FlowLatencyMetrics_Mode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{203, 0} } -type ActionResponseProtocolIpv6PingResponse_Result struct { +type FlowRxTxRatio_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { - *x = ActionResponseProtocolIpv6PingResponse_Result{} +func (x *FlowRxTxRatio_Choice) Reset() { + *x = FlowRxTxRatio_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[846] + mi := &file_otg_proto_msgTypes[840] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6PingResponse_Result) String() string { +func (x *FlowRxTxRatio_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6PingResponse_Result) ProtoMessage() {} +func (*FlowRxTxRatio_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[846] +func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[840] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82996,34 +83694,34 @@ func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6PingResponse_Result) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{233, 0} +// Deprecated: Use FlowRxTxRatio_Choice.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatio_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{205, 0} } -type ActionProtocolBgp_Choice struct { +type EventRequest_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolBgp_Choice) Reset() { - *x = ActionProtocolBgp_Choice{} +func (x *EventRequest_Type) Reset() { + *x = EventRequest_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[847] + mi := &file_otg_proto_msgTypes[841] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgp_Choice) String() string { +func (x *EventRequest_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgp_Choice) ProtoMessage() {} +func (*EventRequest_Type) ProtoMessage() {} -func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[847] +func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[841] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83034,34 +83732,34 @@ func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgp_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{234, 0} +// Deprecated: Use EventRequest_Type.ProtoReflect.Descriptor instead. +func (*EventRequest_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{211, 0} } -type ActionProtocolBgpNotification_Choice struct { +type LldpConnection_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolBgpNotification_Choice) Reset() { - *x = ActionProtocolBgpNotification_Choice{} +func (x *LldpConnection_Choice) Reset() { + *x = LldpConnection_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[848] + mi := &file_otg_proto_msgTypes[842] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgpNotification_Choice) String() string { +func (x *LldpConnection_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpNotification_Choice) ProtoMessage() {} +func (*LldpConnection_Choice) ProtoMessage() {} -func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[848] +func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[842] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83072,34 +83770,34 @@ func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpNotification_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpNotification_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{235, 0} +// Deprecated: Use LldpConnection_Choice.ProtoReflect.Descriptor instead. +func (*LldpConnection_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{214, 0} } -type MetricsRequest_Choice struct { +type LldpChassisId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MetricsRequest_Choice) Reset() { - *x = MetricsRequest_Choice{} +func (x *LldpChassisId_Choice) Reset() { + *x = LldpChassisId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[849] + mi := &file_otg_proto_msgTypes[843] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsRequest_Choice) String() string { +func (x *LldpChassisId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsRequest_Choice) ProtoMessage() {} +func (*LldpChassisId_Choice) ProtoMessage() {} -func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[849] +func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[843] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83110,34 +83808,34 @@ func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsRequest_Choice.ProtoReflect.Descriptor instead. -func (*MetricsRequest_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237, 0} +// Deprecated: Use LldpChassisId_Choice.ProtoReflect.Descriptor instead. +func (*LldpChassisId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{215, 0} } -type MetricsResponse_Choice struct { +type LldpPortId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MetricsResponse_Choice) Reset() { - *x = MetricsResponse_Choice{} +func (x *LldpPortId_Choice) Reset() { + *x = LldpPortId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[850] + mi := &file_otg_proto_msgTypes[844] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsResponse_Choice) String() string { +func (x *LldpPortId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsResponse_Choice) ProtoMessage() {} +func (*LldpPortId_Choice) ProtoMessage() {} -func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[850] +func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[844] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83148,34 +83846,34 @@ func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsResponse_Choice.ProtoReflect.Descriptor instead. -func (*MetricsResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238, 0} +// Deprecated: Use LldpPortId_Choice.ProtoReflect.Descriptor instead. +func (*LldpPortId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{216, 0} } -type PortMetricsRequest_ColumnNames struct { +type LldpChassisMacSubType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetricsRequest_ColumnNames) Reset() { - *x = PortMetricsRequest_ColumnNames{} +func (x *LldpChassisMacSubType_Choice) Reset() { + *x = LldpChassisMacSubType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[851] + mi := &file_otg_proto_msgTypes[845] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetricsRequest_ColumnNames) String() string { +func (x *LldpChassisMacSubType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetricsRequest_ColumnNames) ProtoMessage() {} +func (*LldpChassisMacSubType_Choice) ProtoMessage() {} -func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[851] +func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[845] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83186,34 +83884,34 @@ func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*PortMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239, 0} +// Deprecated: Use LldpChassisMacSubType_Choice.ProtoReflect.Descriptor instead. +func (*LldpChassisMacSubType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{217, 0} } -type PortMetric_Link struct { +type LldpPortInterfaceNameSubType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Link) Reset() { - *x = PortMetric_Link{} +func (x *LldpPortInterfaceNameSubType_Choice) Reset() { + *x = LldpPortInterfaceNameSubType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[852] + mi := &file_otg_proto_msgTypes[846] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Link) String() string { +func (x *LldpPortInterfaceNameSubType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Link) ProtoMessage() {} +func (*LldpPortInterfaceNameSubType_Choice) ProtoMessage() {} -func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[852] +func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[846] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83224,34 +83922,34 @@ func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Link.ProtoReflect.Descriptor instead. -func (*PortMetric_Link) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 0} +// Deprecated: Use LldpPortInterfaceNameSubType_Choice.ProtoReflect.Descriptor instead. +func (*LldpPortInterfaceNameSubType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{218, 0} } -type PortMetric_Capture struct { +type LldpSystemName_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Capture) Reset() { - *x = PortMetric_Capture{} +func (x *LldpSystemName_Choice) Reset() { + *x = LldpSystemName_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[853] + mi := &file_otg_proto_msgTypes[847] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Capture) String() string { +func (x *LldpSystemName_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Capture) ProtoMessage() {} +func (*LldpSystemName_Choice) ProtoMessage() {} -func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[853] +func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[847] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83262,34 +83960,34 @@ func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Capture.ProtoReflect.Descriptor instead. -func (*PortMetric_Capture) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 1} +// Deprecated: Use LldpSystemName_Choice.ProtoReflect.Descriptor instead. +func (*LldpSystemName_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{219, 0} } -type PortMetric_Transmit struct { +type Error_Kind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Transmit) Reset() { - *x = PortMetric_Transmit{} +func (x *Error_Kind) Reset() { + *x = Error_Kind{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[854] + mi := &file_otg_proto_msgTypes[848] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Transmit) String() string { +func (x *Error_Kind) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Transmit) ProtoMessage() {} +func (*Error_Kind) ProtoMessage() {} -func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[854] +func (x *Error_Kind) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[848] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83300,34 +83998,34 @@ func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Transmit.ProtoReflect.Descriptor instead. -func (*PortMetric_Transmit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 2} +// Deprecated: Use Error_Kind.ProtoReflect.Descriptor instead. +func (*Error_Kind) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{220, 0} } -type FlowMetricsRequest_MetricNames struct { +type ConfigUpdate_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetricsRequest_MetricNames) Reset() { - *x = FlowMetricsRequest_MetricNames{} +func (x *ConfigUpdate_Choice) Reset() { + *x = ConfigUpdate_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[855] + mi := &file_otg_proto_msgTypes[849] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricsRequest_MetricNames) String() string { +func (x *ConfigUpdate_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricsRequest_MetricNames) ProtoMessage() {} +func (*ConfigUpdate_Choice) ProtoMessage() {} -func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[855] +func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[849] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83338,34 +84036,34 @@ func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricsRequest_MetricNames.ProtoReflect.Descriptor instead. -func (*FlowMetricsRequest_MetricNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241, 0} +// Deprecated: Use ConfigUpdate_Choice.ProtoReflect.Descriptor instead. +func (*ConfigUpdate_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{222, 0} } -type FlowTaggedMetricsFilter_MetricNames struct { +type FlowsUpdate_PropertyNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { - *x = FlowTaggedMetricsFilter_MetricNames{} +func (x *FlowsUpdate_PropertyNames) Reset() { + *x = FlowsUpdate_PropertyNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[856] + mi := &file_otg_proto_msgTypes[850] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetricsFilter_MetricNames) String() string { +func (x *FlowsUpdate_PropertyNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetricsFilter_MetricNames) ProtoMessage() {} +func (*FlowsUpdate_PropertyNames) ProtoMessage() {} -func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[856] +func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[850] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83376,34 +84074,34 @@ func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetricsFilter_MetricNames.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetricsFilter_MetricNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242, 0} +// Deprecated: Use FlowsUpdate_PropertyNames.ProtoReflect.Descriptor instead. +func (*FlowsUpdate_PropertyNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{223, 0} } -type FlowMetric_Transmit struct { +type ControlState_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetric_Transmit) Reset() { - *x = FlowMetric_Transmit{} +func (x *ControlState_Choice) Reset() { + *x = ControlState_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[857] + mi := &file_otg_proto_msgTypes[851] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetric_Transmit) String() string { +func (x *ControlState_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetric_Transmit) ProtoMessage() {} +func (*ControlState_Choice) ProtoMessage() {} -func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[857] +func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[851] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83414,34 +84112,34 @@ func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetric_Transmit.ProtoReflect.Descriptor instead. -func (*FlowMetric_Transmit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244, 0} +// Deprecated: Use ControlState_Choice.ProtoReflect.Descriptor instead. +func (*ControlState_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{224, 0} } -type FlowMetricTagValue_Choice struct { +type StatePort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetricTagValue_Choice) Reset() { - *x = FlowMetricTagValue_Choice{} +func (x *StatePort_Choice) Reset() { + *x = StatePort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[858] + mi := &file_otg_proto_msgTypes[852] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTagValue_Choice) String() string { +func (x *StatePort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTagValue_Choice) ProtoMessage() {} +func (*StatePort_Choice) ProtoMessage() {} -func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[858] +func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[852] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83452,34 +84150,34 @@ func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTagValue_Choice.ProtoReflect.Descriptor instead. -func (*FlowMetricTagValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247, 0} +// Deprecated: Use StatePort_Choice.ProtoReflect.Descriptor instead. +func (*StatePort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{225, 0} } -type Bgpv4MetricsRequest_ColumnNames struct { +type StateTraffic_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { - *x = Bgpv4MetricsRequest_ColumnNames{} +func (x *StateTraffic_Choice) Reset() { + *x = StateTraffic_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[859] + mi := &file_otg_proto_msgTypes[853] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4MetricsRequest_ColumnNames) String() string { +func (x *StateTraffic_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4MetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateTraffic_Choice) ProtoMessage() {} -func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[859] +func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[853] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83490,34 +84188,34 @@ func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*Bgpv4MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250, 0} +// Deprecated: Use StateTraffic_Choice.ProtoReflect.Descriptor instead. +func (*StateTraffic_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{226, 0} } -type Bgpv4Metric_SessionState struct { +type StateProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4Metric_SessionState) Reset() { - *x = Bgpv4Metric_SessionState{} +func (x *StateProtocol_Choice) Reset() { + *x = StateProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[860] + mi := &file_otg_proto_msgTypes[854] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4Metric_SessionState) String() string { +func (x *StateProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric_SessionState) ProtoMessage() {} +func (*StateProtocol_Choice) ProtoMessage() {} -func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[860] +func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[854] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83528,34 +84226,34 @@ func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4Metric_SessionState.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric_SessionState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251, 0} +// Deprecated: Use StateProtocol_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{227, 0} } -type Bgpv4Metric_FsmState struct { +type StatePortLink_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4Metric_FsmState) Reset() { - *x = Bgpv4Metric_FsmState{} +func (x *StatePortLink_State) Reset() { + *x = StatePortLink_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[861] + mi := &file_otg_proto_msgTypes[855] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4Metric_FsmState) String() string { +func (x *StatePortLink_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric_FsmState) ProtoMessage() {} +func (*StatePortLink_State) ProtoMessage() {} -func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[861] +func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[855] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83566,34 +84264,34 @@ func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4Metric_FsmState.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric_FsmState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251, 1} +// Deprecated: Use StatePortLink_State.ProtoReflect.Descriptor instead. +func (*StatePortLink_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{228, 0} } -type Bgpv6MetricsRequest_ColumnNames struct { +type StatePortCapture_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { - *x = Bgpv6MetricsRequest_ColumnNames{} +func (x *StatePortCapture_State) Reset() { + *x = StatePortCapture_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[862] + mi := &file_otg_proto_msgTypes[856] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6MetricsRequest_ColumnNames) String() string { +func (x *StatePortCapture_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6MetricsRequest_ColumnNames) ProtoMessage() {} +func (*StatePortCapture_State) ProtoMessage() {} -func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[862] +func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[856] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83604,34 +84302,34 @@ func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*Bgpv6MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{252, 0} +// Deprecated: Use StatePortCapture_State.ProtoReflect.Descriptor instead. +func (*StatePortCapture_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{229, 0} } -type Bgpv6Metric_SessionState struct { +type StateTrafficFlowTransmit_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6Metric_SessionState) Reset() { - *x = Bgpv6Metric_SessionState{} +func (x *StateTrafficFlowTransmit_State) Reset() { + *x = StateTrafficFlowTransmit_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[863] + mi := &file_otg_proto_msgTypes[857] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric_SessionState) String() string { +func (x *StateTrafficFlowTransmit_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric_SessionState) ProtoMessage() {} +func (*StateTrafficFlowTransmit_State) ProtoMessage() {} -func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[863] +func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[857] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83642,34 +84340,34 @@ func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric_SessionState.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric_SessionState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 0} +// Deprecated: Use StateTrafficFlowTransmit_State.ProtoReflect.Descriptor instead. +func (*StateTrafficFlowTransmit_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{230, 0} } -type Bgpv6Metric_FsmState struct { +type StateProtocolAll_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6Metric_FsmState) Reset() { - *x = Bgpv6Metric_FsmState{} +func (x *StateProtocolAll_State) Reset() { + *x = StateProtocolAll_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[864] + mi := &file_otg_proto_msgTypes[858] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric_FsmState) String() string { +func (x *StateProtocolAll_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric_FsmState) ProtoMessage() {} +func (*StateProtocolAll_State) ProtoMessage() {} -func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[864] +func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[858] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83680,34 +84378,34 @@ func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric_FsmState.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric_FsmState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 1} +// Deprecated: Use StateProtocolAll_State.ProtoReflect.Descriptor instead. +func (*StateProtocolAll_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{231, 0} } -type IsisMetricsRequest_ColumnNames struct { +type StateProtocolRoute_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisMetricsRequest_ColumnNames) Reset() { - *x = IsisMetricsRequest_ColumnNames{} +func (x *StateProtocolRoute_State) Reset() { + *x = StateProtocolRoute_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[865] + mi := &file_otg_proto_msgTypes[859] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisMetricsRequest_ColumnNames) String() string { +func (x *StateProtocolRoute_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateProtocolRoute_State) ProtoMessage() {} -func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[865] +func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[859] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83718,34 +84416,34 @@ func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*IsisMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254, 0} +// Deprecated: Use StateProtocolRoute_State.ProtoReflect.Descriptor instead. +func (*StateProtocolRoute_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{232, 0} } -type LagMetricsRequest_ColumnNames struct { +type StateProtocolLacp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LagMetricsRequest_ColumnNames) Reset() { - *x = LagMetricsRequest_ColumnNames{} +func (x *StateProtocolLacp_Choice) Reset() { + *x = StateProtocolLacp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[866] + mi := &file_otg_proto_msgTypes[860] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetricsRequest_ColumnNames) String() string { +func (x *StateProtocolLacp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateProtocolLacp_Choice) ProtoMessage() {} -func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[866] +func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[860] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83756,34 +84454,34 @@ func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LagMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256, 0} +// Deprecated: Use StateProtocolLacp_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocolLacp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{233, 0} } -type LagMetric_OperStatus struct { +type StateProtocolLacpAdmin_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LagMetric_OperStatus) Reset() { - *x = LagMetric_OperStatus{} +func (x *StateProtocolLacpAdmin_State) Reset() { + *x = StateProtocolLacpAdmin_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[867] + mi := &file_otg_proto_msgTypes[861] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetric_OperStatus) String() string { +func (x *StateProtocolLacpAdmin_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetric_OperStatus) ProtoMessage() {} +func (*StateProtocolLacpAdmin_State) ProtoMessage() {} -func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[867] +func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[861] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83794,34 +84492,34 @@ func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetric_OperStatus.ProtoReflect.Descriptor instead. -func (*LagMetric_OperStatus) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{257, 0} +// Deprecated: Use StateProtocolLacpAdmin_State.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpAdmin_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{234, 0} } -type LacpMetricsRequest_ColumnNames struct { +type ControlAction_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetricsRequest_ColumnNames) Reset() { - *x = LacpMetricsRequest_ColumnNames{} +func (x *ControlAction_Choice) Reset() { + *x = ControlAction_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[868] + mi := &file_otg_proto_msgTypes[862] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetricsRequest_ColumnNames) String() string { +func (x *ControlAction_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*ControlAction_Choice) ProtoMessage() {} -func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[868] +func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[862] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83832,34 +84530,34 @@ func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LacpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{258, 0} +// Deprecated: Use ControlAction_Choice.ProtoReflect.Descriptor instead. +func (*ControlAction_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{235, 0} } -type LacpMetric_Activity struct { +type ActionResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Activity) Reset() { - *x = LacpMetric_Activity{} +func (x *ActionResponse_Choice) Reset() { + *x = ActionResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[869] + mi := &file_otg_proto_msgTypes[863] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Activity) String() string { +func (x *ActionResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Activity) ProtoMessage() {} +func (*ActionResponse_Choice) ProtoMessage() {} -func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[869] +func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[863] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83870,34 +84568,34 @@ func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Activity.ProtoReflect.Descriptor instead. -func (*LacpMetric_Activity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 0} +// Deprecated: Use ActionResponse_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{237, 0} } -type LacpMetric_Timeout struct { +type ActionProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Timeout) Reset() { - *x = LacpMetric_Timeout{} +func (x *ActionProtocol_Choice) Reset() { + *x = ActionProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[870] + mi := &file_otg_proto_msgTypes[864] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Timeout) String() string { +func (x *ActionProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Timeout) ProtoMessage() {} +func (*ActionProtocol_Choice) ProtoMessage() {} -func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[870] +func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[864] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83908,34 +84606,34 @@ func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Timeout.ProtoReflect.Descriptor instead. -func (*LacpMetric_Timeout) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 1} +// Deprecated: Use ActionProtocol_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{238, 0} } -type LacpMetric_Synchronization struct { +type ActionResponseProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Synchronization) Reset() { - *x = LacpMetric_Synchronization{} +func (x *ActionResponseProtocol_Choice) Reset() { + *x = ActionResponseProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[871] + mi := &file_otg_proto_msgTypes[865] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Synchronization) String() string { +func (x *ActionResponseProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Synchronization) ProtoMessage() {} +func (*ActionResponseProtocol_Choice) ProtoMessage() {} -func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[871] +func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[865] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83946,34 +84644,34 @@ func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Synchronization.ProtoReflect.Descriptor instead. -func (*LacpMetric_Synchronization) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259, 2} +// Deprecated: Use ActionResponseProtocol_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{239, 0} } -type LldpMetricsRequest_ColumnNames struct { +type ActionProtocolIpv4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpMetricsRequest_ColumnNames) Reset() { - *x = LldpMetricsRequest_ColumnNames{} +func (x *ActionProtocolIpv4_Choice) Reset() { + *x = ActionProtocolIpv4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[872] + mi := &file_otg_proto_msgTypes[866] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetricsRequest_ColumnNames) String() string { +func (x *ActionProtocolIpv4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*ActionProtocolIpv4_Choice) ProtoMessage() {} -func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[872] +func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[866] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83984,34 +84682,34 @@ func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LldpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260, 0} +// Deprecated: Use ActionProtocolIpv4_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{240, 0} } -type RsvpMetricsRequest_ColumnNames struct { +type ActionResponseProtocolIpv4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpMetricsRequest_ColumnNames) Reset() { - *x = RsvpMetricsRequest_ColumnNames{} +func (x *ActionResponseProtocolIpv4_Choice) Reset() { + *x = ActionResponseProtocolIpv4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[873] + mi := &file_otg_proto_msgTypes[867] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpMetricsRequest_ColumnNames) String() string { +func (x *ActionResponseProtocolIpv4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*ActionResponseProtocolIpv4_Choice) ProtoMessage() {} -func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[873] +func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[867] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84022,34 +84720,34 @@ func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*RsvpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262, 0} +// Deprecated: Use ActionResponseProtocolIpv4_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{241, 0} } -type StatesRequest_Choice struct { +type ActionResponseProtocolIpv4PingResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatesRequest_Choice) Reset() { - *x = StatesRequest_Choice{} +func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { + *x = ActionResponseProtocolIpv4PingResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[874] + mi := &file_otg_proto_msgTypes[868] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesRequest_Choice) String() string { +func (x *ActionResponseProtocolIpv4PingResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesRequest_Choice) ProtoMessage() {} +func (*ActionResponseProtocolIpv4PingResponse_Result) ProtoMessage() {} -func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[874] +func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[868] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84060,34 +84758,34 @@ func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesRequest_Choice.ProtoReflect.Descriptor instead. -func (*StatesRequest_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264, 0} +// Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4PingResponse_Result) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{245, 0} } -type StatesResponse_Choice struct { +type ActionProtocolIpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatesResponse_Choice) Reset() { - *x = StatesResponse_Choice{} +func (x *ActionProtocolIpv6_Choice) Reset() { + *x = ActionProtocolIpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[875] + mi := &file_otg_proto_msgTypes[869] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesResponse_Choice) String() string { +func (x *ActionProtocolIpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesResponse_Choice) ProtoMessage() {} +func (*ActionProtocolIpv6_Choice) ProtoMessage() {} -func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[875] +func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[869] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84098,34 +84796,34 @@ func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesResponse_Choice.ProtoReflect.Descriptor instead. -func (*StatesResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265, 0} +// Deprecated: Use ActionProtocolIpv6_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{246, 0} } -type BgpPrefixStateRequest_PrefixFilters struct { +type ActionResponseProtocolIpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { - *x = BgpPrefixStateRequest_PrefixFilters{} +func (x *ActionResponseProtocolIpv6_Choice) Reset() { + *x = ActionResponseProtocolIpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[876] + mi := &file_otg_proto_msgTypes[870] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixStateRequest_PrefixFilters) String() string { +func (x *ActionResponseProtocolIpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixStateRequest_PrefixFilters) ProtoMessage() {} +func (*ActionResponseProtocolIpv6_Choice) ProtoMessage() {} -func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[876] +func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[870] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84136,34 +84834,34 @@ func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixStateRequest_PrefixFilters.ProtoReflect.Descriptor instead. -func (*BgpPrefixStateRequest_PrefixFilters) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{270, 0} +// Deprecated: Use ActionResponseProtocolIpv6_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{247, 0} } -type BgpPrefixIpv4UnicastFilter_Origin struct { +type ActionResponseProtocolIpv6PingResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { - *x = BgpPrefixIpv4UnicastFilter_Origin{} +func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { + *x = ActionResponseProtocolIpv6PingResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[877] + mi := &file_otg_proto_msgTypes[871] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastFilter_Origin) String() string { +func (x *ActionResponseProtocolIpv6PingResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastFilter_Origin) ProtoMessage() {} +func (*ActionResponseProtocolIpv6PingResponse_Result) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[877] +func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[871] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84174,34 +84872,34 @@ func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastFilter_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271, 0} +// Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6PingResponse_Result) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{251, 0} } -type BgpPrefixIpv6UnicastFilter_Origin struct { +type ActionProtocolBgp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { - *x = BgpPrefixIpv6UnicastFilter_Origin{} +func (x *ActionProtocolBgp_Choice) Reset() { + *x = ActionProtocolBgp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[878] + mi := &file_otg_proto_msgTypes[872] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastFilter_Origin) String() string { +func (x *ActionProtocolBgp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastFilter_Origin) ProtoMessage() {} +func (*ActionProtocolBgp_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[878] +func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[872] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84212,34 +84910,34 @@ func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastFilter_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272, 0} +// Deprecated: Use ActionProtocolBgp_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{252, 0} } -type BgpPrefixIpv4UnicastState_Origin struct { +type ActionProtocolBgpNotification_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { - *x = BgpPrefixIpv4UnicastState_Origin{} +func (x *ActionProtocolBgpNotification_Choice) Reset() { + *x = ActionProtocolBgpNotification_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[879] + mi := &file_otg_proto_msgTypes[873] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastState_Origin) String() string { +func (x *ActionProtocolBgpNotification_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastState_Origin) ProtoMessage() {} +func (*ActionProtocolBgpNotification_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[879] +func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[873] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84250,34 +84948,34 @@ func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastState_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastState_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274, 0} +// Deprecated: Use ActionProtocolBgpNotification_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpNotification_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{253, 0} } -type BgpPrefixIpv6UnicastState_Origin struct { +type MetricsRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { - *x = BgpPrefixIpv6UnicastState_Origin{} +func (x *MetricsRequest_Choice) Reset() { + *x = MetricsRequest_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[880] + mi := &file_otg_proto_msgTypes[874] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastState_Origin) String() string { +func (x *MetricsRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastState_Origin) ProtoMessage() {} +func (*MetricsRequest_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[880] +func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[874] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84288,34 +84986,34 @@ func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastState_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastState_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275, 0} +// Deprecated: Use MetricsRequest_Choice.ProtoReflect.Descriptor instead. +func (*MetricsRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{255, 0} } -type ResultBgpCommunity_Type struct { +type MetricsResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultBgpCommunity_Type) Reset() { - *x = ResultBgpCommunity_Type{} +func (x *MetricsResponse_Choice) Reset() { + *x = MetricsResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[881] + mi := &file_otg_proto_msgTypes[875] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpCommunity_Type) String() string { +func (x *MetricsResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpCommunity_Type) ProtoMessage() {} +func (*MetricsResponse_Choice) ProtoMessage() {} -func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[881] +func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[875] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84326,34 +85024,34 @@ func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpCommunity_Type.ProtoReflect.Descriptor instead. -func (*ResultBgpCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{276, 0} +// Deprecated: Use MetricsResponse_Choice.ProtoReflect.Descriptor instead. +func (*MetricsResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{256, 0} } -type ResultBgpAsPathSegment_Type struct { +type PortMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultBgpAsPathSegment_Type) Reset() { - *x = ResultBgpAsPathSegment_Type{} +func (x *PortMetricsRequest_ColumnNames) Reset() { + *x = PortMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[882] + mi := &file_otg_proto_msgTypes[876] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpAsPathSegment_Type) String() string { +func (x *PortMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpAsPathSegment_Type) ProtoMessage() {} +func (*PortMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[882] +func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[876] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84364,34 +85062,34 @@ func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpAsPathSegment_Type.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPathSegment_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278, 0} +// Deprecated: Use PortMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*PortMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{257, 0} } -type IsisLspState_PduType struct { +type PortMetric_Link struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspState_PduType) Reset() { - *x = IsisLspState_PduType{} +func (x *PortMetric_Link) Reset() { + *x = PortMetric_Link{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[883] + mi := &file_otg_proto_msgTypes[877] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspState_PduType) String() string { +func (x *PortMetric_Link) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspState_PduType) ProtoMessage() {} +func (*PortMetric_Link) ProtoMessage() {} -func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[883] +func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[877] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84402,34 +85100,34 @@ func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspState_PduType.ProtoReflect.Descriptor instead. -func (*IsisLspState_PduType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281, 0} +// Deprecated: Use PortMetric_Link.ProtoReflect.Descriptor instead. +func (*PortMetric_Link) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{258, 0} } -type IsisLspV4Prefix_RedistributionType struct { +type PortMetric_Capture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV4Prefix_RedistributionType) Reset() { - *x = IsisLspV4Prefix_RedistributionType{} +func (x *PortMetric_Capture) Reset() { + *x = PortMetric_Capture{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[884] + mi := &file_otg_proto_msgTypes[878] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV4Prefix_RedistributionType) String() string { +func (x *PortMetric_Capture) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix_RedistributionType) ProtoMessage() {} +func (*PortMetric_Capture) ProtoMessage() {} -func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[884] +func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[878] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84440,34 +85138,34 @@ func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290, 0} +// Deprecated: Use PortMetric_Capture.ProtoReflect.Descriptor instead. +func (*PortMetric_Capture) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{258, 1} } -type IsisLspV4Prefix_OriginType struct { +type PortMetric_Transmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV4Prefix_OriginType) Reset() { - *x = IsisLspV4Prefix_OriginType{} +func (x *PortMetric_Transmit) Reset() { + *x = PortMetric_Transmit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[885] + mi := &file_otg_proto_msgTypes[879] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV4Prefix_OriginType) String() string { +func (x *PortMetric_Transmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix_OriginType) ProtoMessage() {} +func (*PortMetric_Transmit) ProtoMessage() {} -func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[885] +func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[879] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84478,34 +85176,34 @@ func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV4Prefix_OriginType.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290, 1} +// Deprecated: Use PortMetric_Transmit.ProtoReflect.Descriptor instead. +func (*PortMetric_Transmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{258, 2} } -type IsisLspExtendedV4Prefix_RedistributionType struct { +type FlowMetricsRequest_MetricNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { - *x = IsisLspExtendedV4Prefix_RedistributionType{} +func (x *FlowMetricsRequest_MetricNames) Reset() { + *x = FlowMetricsRequest_MetricNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[886] + mi := &file_otg_proto_msgTypes[880] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspExtendedV4Prefix_RedistributionType) String() string { +func (x *FlowMetricsRequest_MetricNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedV4Prefix_RedistributionType) ProtoMessage() {} +func (*FlowMetricsRequest_MetricNames) ProtoMessage() {} -func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[886] +func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[880] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84516,34 +85214,34 @@ func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292, 0} +// Deprecated: Use FlowMetricsRequest_MetricNames.ProtoReflect.Descriptor instead. +func (*FlowMetricsRequest_MetricNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{259, 0} } -type IsisLspV6Prefix_RedistributionType struct { +type FlowTaggedMetricsFilter_MetricNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV6Prefix_RedistributionType) Reset() { - *x = IsisLspV6Prefix_RedistributionType{} +func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { + *x = FlowTaggedMetricsFilter_MetricNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[887] + mi := &file_otg_proto_msgTypes[881] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix_RedistributionType) String() string { +func (x *FlowTaggedMetricsFilter_MetricNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix_RedistributionType) ProtoMessage() {} +func (*FlowTaggedMetricsFilter_MetricNames) ProtoMessage() {} -func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[887] +func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[881] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84554,34 +85252,34 @@ func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 0} +// Deprecated: Use FlowTaggedMetricsFilter_MetricNames.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetricsFilter_MetricNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{260, 0} } -type IsisLspV6Prefix_OriginType struct { +type FlowMetric_Transmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV6Prefix_OriginType) Reset() { - *x = IsisLspV6Prefix_OriginType{} +func (x *FlowMetric_Transmit) Reset() { + *x = FlowMetric_Transmit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[888] + mi := &file_otg_proto_msgTypes[882] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix_OriginType) String() string { +func (x *FlowMetric_Transmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix_OriginType) ProtoMessage() {} +func (*FlowMetric_Transmit) ProtoMessage() {} -func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[888] +func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[882] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84592,34 +85290,34 @@ func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix_OriginType.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 1} +// Deprecated: Use FlowMetric_Transmit.ProtoReflect.Descriptor instead. +func (*FlowMetric_Transmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{262, 0} } -type LldpNeighborsState_ChassisIdType struct { +type FlowMetricTagValue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpNeighborsState_ChassisIdType) Reset() { - *x = LldpNeighborsState_ChassisIdType{} +func (x *FlowMetricTagValue_Choice) Reset() { + *x = FlowMetricTagValue_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[889] + mi := &file_otg_proto_msgTypes[883] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState_ChassisIdType) String() string { +func (x *FlowMetricTagValue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState_ChassisIdType) ProtoMessage() {} +func (*FlowMetricTagValue_Choice) ProtoMessage() {} -func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[889] +func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[883] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84630,34 +85328,34 @@ func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState_ChassisIdType.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState_ChassisIdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 0} +// Deprecated: Use FlowMetricTagValue_Choice.ProtoReflect.Descriptor instead. +func (*FlowMetricTagValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{265, 0} } -type LldpNeighborsState_PortIdType struct { +type Bgpv4MetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpNeighborsState_PortIdType) Reset() { - *x = LldpNeighborsState_PortIdType{} +func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { + *x = Bgpv4MetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[890] + mi := &file_otg_proto_msgTypes[884] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState_PortIdType) String() string { +func (x *Bgpv4MetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState_PortIdType) ProtoMessage() {} +func (*Bgpv4MetricsRequest_ColumnNames) ProtoMessage() {} -func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[890] +func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[884] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84668,34 +85366,34 @@ func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState_PortIdType.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState_PortIdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 1} +// Deprecated: Use Bgpv4MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Bgpv4MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{268, 0} } -type LldpCapabilityState_CapabilityName struct { +type Bgpv4Metric_SessionState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpCapabilityState_CapabilityName) Reset() { - *x = LldpCapabilityState_CapabilityName{} +func (x *Bgpv4Metric_SessionState) Reset() { + *x = Bgpv4Metric_SessionState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[891] + mi := &file_otg_proto_msgTypes[885] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpCapabilityState_CapabilityName) String() string { +func (x *Bgpv4Metric_SessionState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCapabilityState_CapabilityName) ProtoMessage() {} +func (*Bgpv4Metric_SessionState) ProtoMessage() {} -func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[891] +func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[885] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84706,34 +85404,34 @@ func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use LldpCapabilityState_CapabilityName.ProtoReflect.Descriptor instead. -func (*LldpCapabilityState_CapabilityName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{299, 0} +// Deprecated: Use Bgpv4Metric_SessionState.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric_SessionState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{269, 0} } -type RsvpLspState_SessionStatus struct { +type Bgpv4Metric_FsmState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspState_SessionStatus) Reset() { - *x = RsvpLspState_SessionStatus{} +func (x *Bgpv4Metric_FsmState) Reset() { + *x = Bgpv4Metric_FsmState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[892] + mi := &file_otg_proto_msgTypes[886] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspState_SessionStatus) String() string { +func (x *Bgpv4Metric_FsmState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState_SessionStatus) ProtoMessage() {} +func (*Bgpv4Metric_FsmState) ProtoMessage() {} -func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[892] +func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[886] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84744,34 +85442,34 @@ func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspState_SessionStatus.ProtoReflect.Descriptor instead. -func (*RsvpLspState_SessionStatus) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 0} +// Deprecated: Use Bgpv4Metric_FsmState.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric_FsmState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{269, 1} } -type RsvpLspState_LastFlapReason struct { +type Bgpv6MetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspState_LastFlapReason) Reset() { - *x = RsvpLspState_LastFlapReason{} +func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { + *x = Bgpv6MetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[893] + mi := &file_otg_proto_msgTypes[887] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspState_LastFlapReason) String() string { +func (x *Bgpv6MetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState_LastFlapReason) ProtoMessage() {} +func (*Bgpv6MetricsRequest_ColumnNames) ProtoMessage() {} -func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[893] +func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[887] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84782,34 +85480,34 @@ func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspState_LastFlapReason.ProtoReflect.Descriptor instead. -func (*RsvpLspState_LastFlapReason) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 1} +// Deprecated: Use Bgpv6MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Bgpv6MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{270, 0} } -type RsvpLspIpv4Ero_Type struct { +type Bgpv6Metric_SessionState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspIpv4Ero_Type) Reset() { - *x = RsvpLspIpv4Ero_Type{} +func (x *Bgpv6Metric_SessionState) Reset() { + *x = Bgpv6Metric_SessionState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[894] + mi := &file_otg_proto_msgTypes[888] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4Ero_Type) String() string { +func (x *Bgpv6Metric_SessionState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Ero_Type) ProtoMessage() {} +func (*Bgpv6Metric_SessionState) ProtoMessage() {} -func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[894] +func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[888] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84820,34 +85518,34 @@ func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Ero_Type.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Ero_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{305, 0} +// Deprecated: Use Bgpv6Metric_SessionState.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric_SessionState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{271, 0} } -type PatternFlowEthernetDst_Choice struct { +type Bgpv6Metric_FsmState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetDst_Choice) Reset() { - *x = PatternFlowEthernetDst_Choice{} +func (x *Bgpv6Metric_FsmState) Reset() { + *x = Bgpv6Metric_FsmState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[895] + mi := &file_otg_proto_msgTypes[889] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetDst_Choice) String() string { +func (x *Bgpv6Metric_FsmState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDst_Choice) ProtoMessage() {} +func (*Bgpv6Metric_FsmState) ProtoMessage() {} -func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[895] +func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[889] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84858,34 +85556,34 @@ func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{309, 0} +// Deprecated: Use Bgpv6Metric_FsmState.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric_FsmState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{271, 1} } -type PatternFlowEthernetSrc_Choice struct { +type IsisMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetSrc_Choice) Reset() { - *x = PatternFlowEthernetSrc_Choice{} +func (x *IsisMetricsRequest_ColumnNames) Reset() { + *x = IsisMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[896] + mi := &file_otg_proto_msgTypes[890] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetSrc_Choice) String() string { +func (x *IsisMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrc_Choice) ProtoMessage() {} +func (*IsisMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[896] +func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[890] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84896,34 +85594,34 @@ func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{312, 0} +// Deprecated: Use IsisMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*IsisMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{272, 0} } -type PatternFlowEthernetEtherType_Choice struct { +type LagMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetEtherType_Choice) Reset() { - *x = PatternFlowEthernetEtherType_Choice{} +func (x *LagMetricsRequest_ColumnNames) Reset() { + *x = LagMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[897] + mi := &file_otg_proto_msgTypes[891] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetEtherType_Choice) String() string { +func (x *LagMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherType_Choice) ProtoMessage() {} +func (*LagMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[897] +func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[891] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84934,34 +85632,34 @@ func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{315, 0} -} - -type PatternFlowEthernetPfcQueue_Choice struct { +// Deprecated: Use LagMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LagMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{274, 0} +} + +type LagMetric_OperStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { - *x = PatternFlowEthernetPfcQueue_Choice{} +func (x *LagMetric_OperStatus) Reset() { + *x = LagMetric_OperStatus{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[898] + mi := &file_otg_proto_msgTypes[892] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPfcQueue_Choice) String() string { +func (x *LagMetric_OperStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueue_Choice) ProtoMessage() {} +func (*LagMetric_OperStatus) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[898] +func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[892] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84972,34 +85670,34 @@ func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{318, 0} +// Deprecated: Use LagMetric_OperStatus.ProtoReflect.Descriptor instead. +func (*LagMetric_OperStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{275, 0} } -type PatternFlowVlanPriority_Choice struct { +type LacpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanPriority_Choice) Reset() { - *x = PatternFlowVlanPriority_Choice{} +func (x *LacpMetricsRequest_ColumnNames) Reset() { + *x = LacpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[899] + mi := &file_otg_proto_msgTypes[893] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanPriority_Choice) String() string { +func (x *LacpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriority_Choice) ProtoMessage() {} +func (*LacpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[899] +func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[893] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85010,34 +85708,34 @@ func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriority_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriority_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321, 0} +// Deprecated: Use LacpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LacpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{276, 0} } -type PatternFlowVlanCfi_Choice struct { +type LacpMetric_Activity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanCfi_Choice) Reset() { - *x = PatternFlowVlanCfi_Choice{} +func (x *LacpMetric_Activity) Reset() { + *x = LacpMetric_Activity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[900] + mi := &file_otg_proto_msgTypes[894] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanCfi_Choice) String() string { +func (x *LacpMetric_Activity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfi_Choice) ProtoMessage() {} +func (*LacpMetric_Activity) ProtoMessage() {} -func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[900] +func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[894] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85048,34 +85746,34 @@ func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfi_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfi_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324, 0} +// Deprecated: Use LacpMetric_Activity.ProtoReflect.Descriptor instead. +func (*LacpMetric_Activity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277, 0} } -type PatternFlowVlanId_Choice struct { +type LacpMetric_Timeout struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanId_Choice) Reset() { - *x = PatternFlowVlanId_Choice{} +func (x *LacpMetric_Timeout) Reset() { + *x = LacpMetric_Timeout{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[901] + mi := &file_otg_proto_msgTypes[895] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanId_Choice) String() string { +func (x *LacpMetric_Timeout) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanId_Choice) ProtoMessage() {} +func (*LacpMetric_Timeout) ProtoMessage() {} -func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[901] +func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[895] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85086,34 +85784,34 @@ func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanId_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{327, 0} +// Deprecated: Use LacpMetric_Timeout.ProtoReflect.Descriptor instead. +func (*LacpMetric_Timeout) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277, 1} } -type PatternFlowVlanTpid_Choice struct { +type LacpMetric_Synchronization struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanTpid_Choice) Reset() { - *x = PatternFlowVlanTpid_Choice{} +func (x *LacpMetric_Synchronization) Reset() { + *x = LacpMetric_Synchronization{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[902] + mi := &file_otg_proto_msgTypes[896] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanTpid_Choice) String() string { +func (x *LacpMetric_Synchronization) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpid_Choice) ProtoMessage() {} +func (*LacpMetric_Synchronization) ProtoMessage() {} -func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[902] +func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[896] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85124,34 +85822,34 @@ func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330, 0} +// Deprecated: Use LacpMetric_Synchronization.ProtoReflect.Descriptor instead. +func (*LacpMetric_Synchronization) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277, 2} } -type PatternFlowVxlanFlags_Choice struct { +type LldpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanFlags_Choice) Reset() { - *x = PatternFlowVxlanFlags_Choice{} +func (x *LldpMetricsRequest_ColumnNames) Reset() { + *x = LldpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[903] + mi := &file_otg_proto_msgTypes[897] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanFlags_Choice) String() string { +func (x *LldpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlags_Choice) ProtoMessage() {} +func (*LldpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[903] +func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[897] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85162,34 +85860,34 @@ func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlags_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlags_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{333, 0} +// Deprecated: Use LldpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LldpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{278, 0} } -type PatternFlowVxlanReserved0_Choice struct { +type RsvpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanReserved0_Choice) Reset() { - *x = PatternFlowVxlanReserved0_Choice{} +func (x *RsvpMetricsRequest_ColumnNames) Reset() { + *x = RsvpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[904] + mi := &file_otg_proto_msgTypes[898] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved0_Choice) String() string { +func (x *RsvpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0_Choice) ProtoMessage() {} +func (*RsvpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[904] +func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[898] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85200,34 +85898,34 @@ func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{336, 0} +// Deprecated: Use RsvpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*RsvpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{280, 0} } -type PatternFlowVxlanVni_Choice struct { +type StatesRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanVni_Choice) Reset() { - *x = PatternFlowVxlanVni_Choice{} +func (x *StatesRequest_Choice) Reset() { + *x = StatesRequest_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[905] + mi := &file_otg_proto_msgTypes[899] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanVni_Choice) String() string { +func (x *StatesRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVni_Choice) ProtoMessage() {} +func (*StatesRequest_Choice) ProtoMessage() {} -func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[905] +func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[899] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85238,34 +85936,34 @@ func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVni_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVni_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{339, 0} +// Deprecated: Use StatesRequest_Choice.ProtoReflect.Descriptor instead. +func (*StatesRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{282, 0} } -type PatternFlowVxlanReserved1_Choice struct { +type StatesResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanReserved1_Choice) Reset() { - *x = PatternFlowVxlanReserved1_Choice{} +func (x *StatesResponse_Choice) Reset() { + *x = StatesResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[906] + mi := &file_otg_proto_msgTypes[900] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved1_Choice) String() string { +func (x *StatesResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1_Choice) ProtoMessage() {} +func (*StatesResponse_Choice) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[906] +func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[900] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85276,34 +85974,34 @@ func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{342, 0} +// Deprecated: Use StatesResponse_Choice.ProtoReflect.Descriptor instead. +func (*StatesResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{283, 0} } -type PatternFlowIpv4Version_Choice struct { +type BgpPrefixStateRequest_PrefixFilters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Version_Choice) Reset() { - *x = PatternFlowIpv4Version_Choice{} +func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { + *x = BgpPrefixStateRequest_PrefixFilters{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[907] + mi := &file_otg_proto_msgTypes[901] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Version_Choice) String() string { +func (x *BgpPrefixStateRequest_PrefixFilters) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Version_Choice) ProtoMessage() {} +func (*BgpPrefixStateRequest_PrefixFilters) ProtoMessage() {} -func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[907] +func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[901] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85314,34 +86012,34 @@ func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{345, 0} +// Deprecated: Use BgpPrefixStateRequest_PrefixFilters.ProtoReflect.Descriptor instead. +func (*BgpPrefixStateRequest_PrefixFilters) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{288, 0} } -type PatternFlowIpv4HeaderLength_Choice struct { +type BgpPrefixIpv4UnicastFilter_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { - *x = PatternFlowIpv4HeaderLength_Choice{} +func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { + *x = BgpPrefixIpv4UnicastFilter_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[908] + mi := &file_otg_proto_msgTypes[902] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderLength_Choice) String() string { +func (x *BgpPrefixIpv4UnicastFilter_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLength_Choice) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastFilter_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[908] +func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[902] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85352,34 +86050,34 @@ func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{348, 0} +// Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastFilter_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{289, 0} } -type PatternFlowIpv4TotalLength_Choice struct { +type BgpPrefixIpv6UnicastFilter_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TotalLength_Choice) Reset() { - *x = PatternFlowIpv4TotalLength_Choice{} +func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { + *x = BgpPrefixIpv6UnicastFilter_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[909] + mi := &file_otg_proto_msgTypes[903] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TotalLength_Choice) String() string { +func (x *BgpPrefixIpv6UnicastFilter_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLength_Choice) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastFilter_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[909] +func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[903] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85390,34 +86088,34 @@ func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{351, 0} +// Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastFilter_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{290, 0} } -type PatternFlowIpv4Identification_Choice struct { +type BgpPrefixIpv4UnicastState_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Identification_Choice) Reset() { - *x = PatternFlowIpv4Identification_Choice{} +func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { + *x = BgpPrefixIpv4UnicastState_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[910] + mi := &file_otg_proto_msgTypes[904] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Identification_Choice) String() string { +func (x *BgpPrefixIpv4UnicastState_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Identification_Choice) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastState_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[910] +func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[904] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85428,34 +86126,34 @@ func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Identification_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Identification_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{354, 0} +// Deprecated: Use BgpPrefixIpv4UnicastState_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastState_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{292, 0} } -type PatternFlowIpv4Reserved_Choice struct { +type BgpPrefixIpv6UnicastState_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Reserved_Choice) Reset() { - *x = PatternFlowIpv4Reserved_Choice{} +func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { + *x = BgpPrefixIpv6UnicastState_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[911] + mi := &file_otg_proto_msgTypes[905] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Reserved_Choice) String() string { +func (x *BgpPrefixIpv6UnicastState_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Reserved_Choice) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastState_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[911] +func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[905] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85466,34 +86164,34 @@ func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Reserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Reserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{357, 0} +// Deprecated: Use BgpPrefixIpv6UnicastState_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastState_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{293, 0} } -type PatternFlowIpv4DontFragment_Choice struct { +type ResultBgpCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DontFragment_Choice) Reset() { - *x = PatternFlowIpv4DontFragment_Choice{} +func (x *ResultBgpCommunity_Type) Reset() { + *x = ResultBgpCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[912] + mi := &file_otg_proto_msgTypes[906] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DontFragment_Choice) String() string { +func (x *ResultBgpCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragment_Choice) ProtoMessage() {} +func (*ResultBgpCommunity_Type) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[912] +func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[906] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85504,34 +86202,34 @@ func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragment_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragment_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{360, 0} +// Deprecated: Use ResultBgpCommunity_Type.ProtoReflect.Descriptor instead. +func (*ResultBgpCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{294, 0} } -type PatternFlowIpv4MoreFragments_Choice struct { +type ResultBgpAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { - *x = PatternFlowIpv4MoreFragments_Choice{} +func (x *ResultBgpAsPathSegment_Type) Reset() { + *x = ResultBgpAsPathSegment_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[913] + mi := &file_otg_proto_msgTypes[907] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4MoreFragments_Choice) String() string { +func (x *ResultBgpAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragments_Choice) ProtoMessage() {} +func (*ResultBgpAsPathSegment_Type) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[913] +func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[907] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85542,34 +86240,34 @@ func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragments_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragments_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{363, 0} +// Deprecated: Use ResultBgpAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{296, 0} } -type PatternFlowIpv4FragmentOffset_Choice struct { +type IsisLspState_PduType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { - *x = PatternFlowIpv4FragmentOffset_Choice{} +func (x *IsisLspState_PduType) Reset() { + *x = IsisLspState_PduType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[914] + mi := &file_otg_proto_msgTypes[908] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4FragmentOffset_Choice) String() string { +func (x *IsisLspState_PduType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffset_Choice) ProtoMessage() {} +func (*IsisLspState_PduType) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[914] +func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[908] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85580,34 +86278,34 @@ func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffset_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffset_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{366, 0} +// Deprecated: Use IsisLspState_PduType.ProtoReflect.Descriptor instead. +func (*IsisLspState_PduType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{299, 0} } -type PatternFlowIpv4TimeToLive_Choice struct { +type IsisLspV4Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { - *x = PatternFlowIpv4TimeToLive_Choice{} +func (x *IsisLspV4Prefix_RedistributionType) Reset() { + *x = IsisLspV4Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[915] + mi := &file_otg_proto_msgTypes[909] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TimeToLive_Choice) String() string { +func (x *IsisLspV4Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLive_Choice) ProtoMessage() {} +func (*IsisLspV4Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[915] +func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[909] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85618,34 +86316,34 @@ func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLive_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLive_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{369, 0} +// Deprecated: Use IsisLspV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{308, 0} } -type PatternFlowIpv4Protocol_Choice struct { +type IsisLspV4Prefix_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Protocol_Choice) Reset() { - *x = PatternFlowIpv4Protocol_Choice{} +func (x *IsisLspV4Prefix_OriginType) Reset() { + *x = IsisLspV4Prefix_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[916] + mi := &file_otg_proto_msgTypes[910] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Protocol_Choice) String() string { +func (x *IsisLspV4Prefix_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Protocol_Choice) ProtoMessage() {} +func (*IsisLspV4Prefix_OriginType) ProtoMessage() {} -func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[916] +func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[910] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85656,34 +86354,34 @@ func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Protocol_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Protocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{372, 0} +// Deprecated: Use IsisLspV4Prefix_OriginType.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{308, 1} } -type PatternFlowIpv4HeaderChecksum_Choice struct { +type IsisLspExtendedV4Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { - *x = PatternFlowIpv4HeaderChecksum_Choice{} +func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { + *x = IsisLspExtendedV4Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[917] + mi := &file_otg_proto_msgTypes[911] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderChecksum_Choice) String() string { +func (x *IsisLspExtendedV4Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum_Choice) ProtoMessage() {} +func (*IsisLspExtendedV4Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[917] +func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[911] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85694,34 +86392,34 @@ func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373, 0} +// Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{310, 0} } -type PatternFlowIpv4HeaderChecksum_Generated struct { +type IsisLspV6Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { - *x = PatternFlowIpv4HeaderChecksum_Generated{} +func (x *IsisLspV6Prefix_RedistributionType) Reset() { + *x = IsisLspV6Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[918] + mi := &file_otg_proto_msgTypes[912] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderChecksum_Generated) String() string { +func (x *IsisLspV6Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum_Generated) ProtoMessage() {} +func (*IsisLspV6Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[918] +func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[912] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85732,34 +86430,34 @@ func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373, 1} +// Deprecated: Use IsisLspV6Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{312, 0} } -type PatternFlowIpv4Src_Choice struct { +type IsisLspV6Prefix_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Src_Choice) Reset() { - *x = PatternFlowIpv4Src_Choice{} +func (x *IsisLspV6Prefix_OriginType) Reset() { + *x = IsisLspV6Prefix_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[919] + mi := &file_otg_proto_msgTypes[913] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Src_Choice) String() string { +func (x *IsisLspV6Prefix_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Src_Choice) ProtoMessage() {} +func (*IsisLspV6Prefix_OriginType) ProtoMessage() {} -func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[919] +func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[913] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85770,34 +86468,34 @@ func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Src_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Src_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{376, 0} +// Deprecated: Use IsisLspV6Prefix_OriginType.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{312, 1} } -type PatternFlowIpv4Dst_Choice struct { +type LldpNeighborsState_ChassisIdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Dst_Choice) Reset() { - *x = PatternFlowIpv4Dst_Choice{} +func (x *LldpNeighborsState_ChassisIdType) Reset() { + *x = LldpNeighborsState_ChassisIdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[920] + mi := &file_otg_proto_msgTypes[914] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Dst_Choice) String() string { +func (x *LldpNeighborsState_ChassisIdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Dst_Choice) ProtoMessage() {} +func (*LldpNeighborsState_ChassisIdType) ProtoMessage() {} -func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[920] +func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[914] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85808,34 +86506,34 @@ func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Dst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Dst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{379, 0} +// Deprecated: Use LldpNeighborsState_ChassisIdType.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState_ChassisIdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{315, 0} } -type PatternFlowIpv4PriorityRaw_Choice struct { +type LldpNeighborsState_PortIdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { - *x = PatternFlowIpv4PriorityRaw_Choice{} +func (x *LldpNeighborsState_PortIdType) Reset() { + *x = LldpNeighborsState_PortIdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[921] + mi := &file_otg_proto_msgTypes[915] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRaw_Choice) String() string { +func (x *LldpNeighborsState_PortIdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRaw_Choice) ProtoMessage() {} +func (*LldpNeighborsState_PortIdType) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[921] +func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[915] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85846,34 +86544,34 @@ func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRaw_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRaw_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{382, 0} +// Deprecated: Use LldpNeighborsState_PortIdType.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState_PortIdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{315, 1} } -type PatternFlowIpv4DscpPhb_Choice struct { +type LldpCapabilityState_CapabilityName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { - *x = PatternFlowIpv4DscpPhb_Choice{} +func (x *LldpCapabilityState_CapabilityName) Reset() { + *x = LldpCapabilityState_CapabilityName{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[922] + mi := &file_otg_proto_msgTypes[916] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhb_Choice) String() string { +func (x *LldpCapabilityState_CapabilityName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhb_Choice) ProtoMessage() {} +func (*LldpCapabilityState_CapabilityName) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[922] +func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[916] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85884,34 +86582,34 @@ func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhb_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhb_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{385, 0} +// Deprecated: Use LldpCapabilityState_CapabilityName.ProtoReflect.Descriptor instead. +func (*LldpCapabilityState_CapabilityName) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{317, 0} } -type PatternFlowIpv4DscpEcn_Choice struct { +type RsvpLspState_SessionStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { - *x = PatternFlowIpv4DscpEcn_Choice{} +func (x *RsvpLspState_SessionStatus) Reset() { + *x = RsvpLspState_SessionStatus{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[923] + mi := &file_otg_proto_msgTypes[917] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcn_Choice) String() string { +func (x *RsvpLspState_SessionStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcn_Choice) ProtoMessage() {} +func (*RsvpLspState_SessionStatus) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[923] +func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[917] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85922,34 +86620,34 @@ func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcn_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcn_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{388, 0} +// Deprecated: Use RsvpLspState_SessionStatus.ProtoReflect.Descriptor instead. +func (*RsvpLspState_SessionStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{321, 0} } -type PatternFlowIpv4TosPrecedence_Choice struct { +type RsvpLspState_LastFlapReason struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { - *x = PatternFlowIpv4TosPrecedence_Choice{} +func (x *RsvpLspState_LastFlapReason) Reset() { + *x = RsvpLspState_LastFlapReason{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[924] + mi := &file_otg_proto_msgTypes[918] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedence_Choice) String() string { +func (x *RsvpLspState_LastFlapReason) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedence_Choice) ProtoMessage() {} +func (*RsvpLspState_LastFlapReason) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[924] +func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[918] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85960,34 +86658,34 @@ func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedence_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedence_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{391, 0} +// Deprecated: Use RsvpLspState_LastFlapReason.ProtoReflect.Descriptor instead. +func (*RsvpLspState_LastFlapReason) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{321, 1} } -type PatternFlowIpv4TosDelay_Choice struct { +type RsvpLspIpv4Ero_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosDelay_Choice) Reset() { - *x = PatternFlowIpv4TosDelay_Choice{} +func (x *RsvpLspIpv4Ero_Type) Reset() { + *x = RsvpLspIpv4Ero_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[925] + mi := &file_otg_proto_msgTypes[919] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosDelay_Choice) String() string { +func (x *RsvpLspIpv4Ero_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelay_Choice) ProtoMessage() {} +func (*RsvpLspIpv4Ero_Type) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[925] +func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[919] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85998,34 +86696,34 @@ func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelay_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelay_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{394, 0} +// Deprecated: Use RsvpLspIpv4Ero_Type.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Ero_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{323, 0} } -type PatternFlowIpv4TosThroughput_Choice struct { +type PatternFlowEthernetDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { - *x = PatternFlowIpv4TosThroughput_Choice{} +func (x *PatternFlowEthernetDst_Choice) Reset() { + *x = PatternFlowEthernetDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[926] + mi := &file_otg_proto_msgTypes[920] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosThroughput_Choice) String() string { +func (x *PatternFlowEthernetDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughput_Choice) ProtoMessage() {} +func (*PatternFlowEthernetDst_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[926] +func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[920] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86036,34 +86734,34 @@ func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughput_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughput_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{397, 0} +// Deprecated: Use PatternFlowEthernetDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{327, 0} } -type PatternFlowIpv4TosReliability_Choice struct { +type PatternFlowEthernetSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosReliability_Choice) Reset() { - *x = PatternFlowIpv4TosReliability_Choice{} +func (x *PatternFlowEthernetSrc_Choice) Reset() { + *x = PatternFlowEthernetSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[927] + mi := &file_otg_proto_msgTypes[921] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosReliability_Choice) String() string { +func (x *PatternFlowEthernetSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliability_Choice) ProtoMessage() {} +func (*PatternFlowEthernetSrc_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[927] +func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[921] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86074,34 +86772,34 @@ func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliability_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliability_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400, 0} +// Deprecated: Use PatternFlowEthernetSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{330, 0} } -type PatternFlowIpv4TosMonetary_Choice struct { +type PatternFlowEthernetEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { - *x = PatternFlowIpv4TosMonetary_Choice{} +func (x *PatternFlowEthernetEtherType_Choice) Reset() { + *x = PatternFlowEthernetEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[928] + mi := &file_otg_proto_msgTypes[922] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosMonetary_Choice) String() string { +func (x *PatternFlowEthernetEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetary_Choice) ProtoMessage() {} +func (*PatternFlowEthernetEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[928] +func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[922] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86112,34 +86810,34 @@ func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetary_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetary_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{403, 0} +// Deprecated: Use PatternFlowEthernetEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{333, 0} } -type PatternFlowIpv4TosUnused_Choice struct { +type PatternFlowEthernetPfcQueue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosUnused_Choice) Reset() { - *x = PatternFlowIpv4TosUnused_Choice{} +func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { + *x = PatternFlowEthernetPfcQueue_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[929] + mi := &file_otg_proto_msgTypes[923] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosUnused_Choice) String() string { +func (x *PatternFlowEthernetPfcQueue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnused_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueue_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[929] +func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[923] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86150,34 +86848,34 @@ func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnused_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnused_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{406, 0} +// Deprecated: Use PatternFlowEthernetPfcQueue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{336, 0} } -type PatternFlowIpv6Version_Choice struct { +type PatternFlowVlanPriority_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Version_Choice) Reset() { - *x = PatternFlowIpv6Version_Choice{} +func (x *PatternFlowVlanPriority_Choice) Reset() { + *x = PatternFlowVlanPriority_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[930] + mi := &file_otg_proto_msgTypes[924] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Version_Choice) String() string { +func (x *PatternFlowVlanPriority_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Version_Choice) ProtoMessage() {} +func (*PatternFlowVlanPriority_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[930] +func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[924] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86188,34 +86886,34 @@ func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{409, 0} +// Deprecated: Use PatternFlowVlanPriority_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriority_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{339, 0} } -type PatternFlowIpv6TrafficClass_Choice struct { +type PatternFlowVlanCfi_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { - *x = PatternFlowIpv6TrafficClass_Choice{} +func (x *PatternFlowVlanCfi_Choice) Reset() { + *x = PatternFlowVlanCfi_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[931] + mi := &file_otg_proto_msgTypes[925] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6TrafficClass_Choice) String() string { +func (x *PatternFlowVlanCfi_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClass_Choice) ProtoMessage() {} +func (*PatternFlowVlanCfi_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[931] +func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[925] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86226,34 +86924,34 @@ func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClass_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClass_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{412, 0} +// Deprecated: Use PatternFlowVlanCfi_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfi_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{342, 0} } -type PatternFlowIpv6FlowLabel_Choice struct { +type PatternFlowVlanId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { - *x = PatternFlowIpv6FlowLabel_Choice{} +func (x *PatternFlowVlanId_Choice) Reset() { + *x = PatternFlowVlanId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[932] + mi := &file_otg_proto_msgTypes[926] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6FlowLabel_Choice) String() string { +func (x *PatternFlowVlanId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabel_Choice) ProtoMessage() {} +func (*PatternFlowVlanId_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[932] +func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[926] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86264,34 +86962,34 @@ func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabel_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabel_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{415, 0} +// Deprecated: Use PatternFlowVlanId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{345, 0} } -type PatternFlowIpv6PayloadLength_Choice struct { +type PatternFlowVlanTpid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { - *x = PatternFlowIpv6PayloadLength_Choice{} +func (x *PatternFlowVlanTpid_Choice) Reset() { + *x = PatternFlowVlanTpid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[933] + mi := &file_otg_proto_msgTypes[927] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6PayloadLength_Choice) String() string { +func (x *PatternFlowVlanTpid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLength_Choice) ProtoMessage() {} +func (*PatternFlowVlanTpid_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[933] +func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[927] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86302,34 +87000,34 @@ func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{418, 0} +// Deprecated: Use PatternFlowVlanTpid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{348, 0} } -type PatternFlowIpv6NextHeader_Choice struct { +type PatternFlowVxlanFlags_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6NextHeader_Choice) Reset() { - *x = PatternFlowIpv6NextHeader_Choice{} +func (x *PatternFlowVxlanFlags_Choice) Reset() { + *x = PatternFlowVxlanFlags_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[934] + mi := &file_otg_proto_msgTypes[928] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6NextHeader_Choice) String() string { +func (x *PatternFlowVxlanFlags_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeader_Choice) ProtoMessage() {} +func (*PatternFlowVxlanFlags_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[934] +func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[928] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86340,34 +87038,34 @@ func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeader_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{421, 0} +// Deprecated: Use PatternFlowVxlanFlags_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlags_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{351, 0} } -type PatternFlowIpv6HopLimit_Choice struct { +type PatternFlowVxlanReserved0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6HopLimit_Choice) Reset() { - *x = PatternFlowIpv6HopLimit_Choice{} +func (x *PatternFlowVxlanReserved0_Choice) Reset() { + *x = PatternFlowVxlanReserved0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[935] + mi := &file_otg_proto_msgTypes[929] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6HopLimit_Choice) String() string { +func (x *PatternFlowVxlanReserved0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimit_Choice) ProtoMessage() {} +func (*PatternFlowVxlanReserved0_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[935] +func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[929] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86378,34 +87076,34 @@ func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimit_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimit_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{424, 0} +// Deprecated: Use PatternFlowVxlanReserved0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{354, 0} } -type PatternFlowIpv6Src_Choice struct { +type PatternFlowVxlanVni_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Src_Choice) Reset() { - *x = PatternFlowIpv6Src_Choice{} +func (x *PatternFlowVxlanVni_Choice) Reset() { + *x = PatternFlowVxlanVni_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[936] + mi := &file_otg_proto_msgTypes[930] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Src_Choice) String() string { +func (x *PatternFlowVxlanVni_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Src_Choice) ProtoMessage() {} +func (*PatternFlowVxlanVni_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[936] +func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[930] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86416,34 +87114,34 @@ func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Src_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Src_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{427, 0} +// Deprecated: Use PatternFlowVxlanVni_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVni_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{357, 0} } -type PatternFlowIpv6Dst_Choice struct { +type PatternFlowVxlanReserved1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Dst_Choice) Reset() { - *x = PatternFlowIpv6Dst_Choice{} +func (x *PatternFlowVxlanReserved1_Choice) Reset() { + *x = PatternFlowVxlanReserved1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[937] + mi := &file_otg_proto_msgTypes[931] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Dst_Choice) String() string { +func (x *PatternFlowVxlanReserved1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Dst_Choice) ProtoMessage() {} +func (*PatternFlowVxlanReserved1_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[937] +func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[931] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86454,34 +87152,34 @@ func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Dst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Dst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{430, 0} +// Deprecated: Use PatternFlowVxlanReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{360, 0} } -type PatternFlowPfcPauseDst_Choice struct { +type PatternFlowIpv4Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseDst_Choice) Reset() { - *x = PatternFlowPfcPauseDst_Choice{} +func (x *PatternFlowIpv4Version_Choice) Reset() { + *x = PatternFlowIpv4Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[938] + mi := &file_otg_proto_msgTypes[932] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseDst_Choice) String() string { +func (x *PatternFlowIpv4Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDst_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Version_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[938] +func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[932] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86492,34 +87190,34 @@ func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{433, 0} +// Deprecated: Use PatternFlowIpv4Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{363, 0} } -type PatternFlowPfcPauseSrc_Choice struct { +type PatternFlowIpv4HeaderLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseSrc_Choice) Reset() { - *x = PatternFlowPfcPauseSrc_Choice{} +func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { + *x = PatternFlowIpv4HeaderLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[939] + mi := &file_otg_proto_msgTypes[933] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseSrc_Choice) String() string { +func (x *PatternFlowIpv4HeaderLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrc_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLength_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[939] +func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[933] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86530,34 +87228,34 @@ func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{436, 0} +// Deprecated: Use PatternFlowIpv4HeaderLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{366, 0} } -type PatternFlowPfcPauseEtherType_Choice struct { +type PatternFlowIpv4TotalLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { - *x = PatternFlowPfcPauseEtherType_Choice{} +func (x *PatternFlowIpv4TotalLength_Choice) Reset() { + *x = PatternFlowIpv4TotalLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[940] + mi := &file_otg_proto_msgTypes[934] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseEtherType_Choice) String() string { +func (x *PatternFlowIpv4TotalLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TotalLength_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[940] +func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[934] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86568,34 +87266,34 @@ func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{439, 0} +// Deprecated: Use PatternFlowIpv4TotalLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{369, 0} } -type PatternFlowPfcPauseControlOpCode_Choice struct { +type PatternFlowIpv4Identification_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { - *x = PatternFlowPfcPauseControlOpCode_Choice{} +func (x *PatternFlowIpv4Identification_Choice) Reset() { + *x = PatternFlowIpv4Identification_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[941] + mi := &file_otg_proto_msgTypes[935] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseControlOpCode_Choice) String() string { +func (x *PatternFlowIpv4Identification_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCode_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Identification_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[941] +func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[935] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86606,34 +87304,34 @@ func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{442, 0} +// Deprecated: Use PatternFlowIpv4Identification_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Identification_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{372, 0} } -type PatternFlowPfcPauseClassEnableVector_Choice struct { +type PatternFlowIpv4Reserved_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { - *x = PatternFlowPfcPauseClassEnableVector_Choice{} +func (x *PatternFlowIpv4Reserved_Choice) Reset() { + *x = PatternFlowIpv4Reserved_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[942] + mi := &file_otg_proto_msgTypes[936] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseClassEnableVector_Choice) String() string { +func (x *PatternFlowIpv4Reserved_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVector_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Reserved_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[942] +func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[936] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86644,34 +87342,34 @@ func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVector_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{445, 0} +// Deprecated: Use PatternFlowIpv4Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{375, 0} } -type PatternFlowPfcPausePauseClass0_Choice struct { +type PatternFlowIpv4DontFragment_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass0_Choice{} +func (x *PatternFlowIpv4DontFragment_Choice) Reset() { + *x = PatternFlowIpv4DontFragment_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[943] + mi := &file_otg_proto_msgTypes[937] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass0_Choice) String() string { +func (x *PatternFlowIpv4DontFragment_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DontFragment_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[943] +func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[937] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86682,34 +87380,34 @@ func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448, 0} +// Deprecated: Use PatternFlowIpv4DontFragment_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragment_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{378, 0} } -type PatternFlowPfcPausePauseClass1_Choice struct { +type PatternFlowIpv4MoreFragments_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass1_Choice{} +func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { + *x = PatternFlowIpv4MoreFragments_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[944] + mi := &file_otg_proto_msgTypes[938] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass1_Choice) String() string { +func (x *PatternFlowIpv4MoreFragments_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1_Choice) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragments_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[944] +func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[938] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86720,35 +87418,35 @@ func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{451, 0} +// Deprecated: Use PatternFlowIpv4MoreFragments_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragments_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{381, 0} } -type PatternFlowPfcPausePauseClass2_Choice struct { +type PatternFlowIpv4FragmentOffset_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass2_Choice{} +func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { + *x = PatternFlowIpv4FragmentOffset_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[945] + mi := &file_otg_proto_msgTypes[939] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass2_Choice) String() string { +func (x *PatternFlowIpv4FragmentOffset_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2_Choice) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffset_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[945] - if protoimpl.UnsafeEnabled && x != nil { +func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[939] + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -86758,34 +87456,34 @@ func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{454, 0} +// Deprecated: Use PatternFlowIpv4FragmentOffset_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffset_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{384, 0} } -type PatternFlowPfcPausePauseClass3_Choice struct { +type PatternFlowIpv4TimeToLive_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass3_Choice{} +func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { + *x = PatternFlowIpv4TimeToLive_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[946] + mi := &file_otg_proto_msgTypes[940] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass3_Choice) String() string { +func (x *PatternFlowIpv4TimeToLive_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLive_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[946] +func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[940] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86796,34 +87494,34 @@ func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{457, 0} +// Deprecated: Use PatternFlowIpv4TimeToLive_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLive_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{387, 0} } -type PatternFlowPfcPausePauseClass4_Choice struct { +type PatternFlowIpv4Protocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass4_Choice{} +func (x *PatternFlowIpv4Protocol_Choice) Reset() { + *x = PatternFlowIpv4Protocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[947] + mi := &file_otg_proto_msgTypes[941] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass4_Choice) String() string { +func (x *PatternFlowIpv4Protocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Protocol_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[947] +func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[941] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86834,34 +87532,34 @@ func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{460, 0} +// Deprecated: Use PatternFlowIpv4Protocol_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Protocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{390, 0} } -type PatternFlowPfcPausePauseClass5_Choice struct { +type PatternFlowIpv4HeaderChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass5_Choice{} +func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { + *x = PatternFlowIpv4HeaderChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[948] + mi := &file_otg_proto_msgTypes[942] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass5_Choice) String() string { +func (x *PatternFlowIpv4HeaderChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[948] +func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[942] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86872,34 +87570,34 @@ func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{463, 0} +// Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{391, 0} } -type PatternFlowPfcPausePauseClass6_Choice struct { +type PatternFlowIpv4HeaderChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass6_Choice{} +func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { + *x = PatternFlowIpv4HeaderChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[949] + mi := &file_otg_proto_msgTypes[943] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass6_Choice) String() string { +func (x *PatternFlowIpv4HeaderChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[949] +func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[943] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86910,34 +87608,34 @@ func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{466, 0} +// Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{391, 1} } -type PatternFlowPfcPausePauseClass7_Choice struct { +type PatternFlowIpv4Src_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass7_Choice{} +func (x *PatternFlowIpv4Src_Choice) Reset() { + *x = PatternFlowIpv4Src_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[950] + mi := &file_otg_proto_msgTypes[944] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass7_Choice) String() string { +func (x *PatternFlowIpv4Src_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Src_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[950] +func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[944] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86948,34 +87646,34 @@ func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{469, 0} +// Deprecated: Use PatternFlowIpv4Src_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Src_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{394, 0} } -type PatternFlowEthernetPauseDst_Choice struct { +type PatternFlowIpv4Dst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseDst_Choice) Reset() { - *x = PatternFlowEthernetPauseDst_Choice{} +func (x *PatternFlowIpv4Dst_Choice) Reset() { + *x = PatternFlowIpv4Dst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[951] + mi := &file_otg_proto_msgTypes[945] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseDst_Choice) String() string { +func (x *PatternFlowIpv4Dst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDst_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Dst_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[951] +func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[945] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86986,34 +87684,34 @@ func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{472, 0} +// Deprecated: Use PatternFlowIpv4Dst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Dst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{397, 0} } -type PatternFlowEthernetPauseSrc_Choice struct { +type PatternFlowIpv4PriorityRaw_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { - *x = PatternFlowEthernetPauseSrc_Choice{} +func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { + *x = PatternFlowIpv4PriorityRaw_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[952] + mi := &file_otg_proto_msgTypes[946] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseSrc_Choice) String() string { +func (x *PatternFlowIpv4PriorityRaw_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrc_Choice) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRaw_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[952] +func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[946] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87024,34 +87722,34 @@ func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{475, 0} +// Deprecated: Use PatternFlowIpv4PriorityRaw_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRaw_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{400, 0} } -type PatternFlowEthernetPauseEtherType_Choice struct { +type PatternFlowIpv4DscpPhb_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { - *x = PatternFlowEthernetPauseEtherType_Choice{} +func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { + *x = PatternFlowIpv4DscpPhb_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[953] + mi := &file_otg_proto_msgTypes[947] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseEtherType_Choice) String() string { +func (x *PatternFlowIpv4DscpPhb_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhb_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[953] +func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[947] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87062,34 +87760,34 @@ func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{478, 0} +// Deprecated: Use PatternFlowIpv4DscpPhb_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhb_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{403, 0} } -type PatternFlowEthernetPauseControlOpCode_Choice struct { +type PatternFlowIpv4DscpEcn_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { - *x = PatternFlowEthernetPauseControlOpCode_Choice{} +func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { + *x = PatternFlowIpv4DscpEcn_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[954] + mi := &file_otg_proto_msgTypes[948] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseControlOpCode_Choice) String() string { +func (x *PatternFlowIpv4DscpEcn_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCode_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcn_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[954] +func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[948] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87100,34 +87798,34 @@ func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{481, 0} +// Deprecated: Use PatternFlowIpv4DscpEcn_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcn_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{406, 0} } -type PatternFlowEthernetPauseTime_Choice struct { +type PatternFlowIpv4TosPrecedence_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseTime_Choice) Reset() { - *x = PatternFlowEthernetPauseTime_Choice{} +func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { + *x = PatternFlowIpv4TosPrecedence_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[955] + mi := &file_otg_proto_msgTypes[949] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseTime_Choice) String() string { +func (x *PatternFlowIpv4TosPrecedence_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTime_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedence_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[955] +func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[949] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87138,34 +87836,34 @@ func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTime_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTime_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{484, 0} +// Deprecated: Use PatternFlowIpv4TosPrecedence_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedence_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{409, 0} } -type PatternFlowTcpSrcPort_Choice struct { +type PatternFlowIpv4TosDelay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpSrcPort_Choice) Reset() { - *x = PatternFlowTcpSrcPort_Choice{} +func (x *PatternFlowIpv4TosDelay_Choice) Reset() { + *x = PatternFlowIpv4TosDelay_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[956] + mi := &file_otg_proto_msgTypes[950] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSrcPort_Choice) String() string { +func (x *PatternFlowIpv4TosDelay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPort_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosDelay_Choice) ProtoMessage() {} -func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[956] +func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[950] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87176,34 +87874,34 @@ func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{487, 0} +// Deprecated: Use PatternFlowIpv4TosDelay_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{412, 0} } -type PatternFlowTcpDstPort_Choice struct { +type PatternFlowIpv4TosThroughput_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpDstPort_Choice) Reset() { - *x = PatternFlowTcpDstPort_Choice{} +func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { + *x = PatternFlowIpv4TosThroughput_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[957] + mi := &file_otg_proto_msgTypes[951] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDstPort_Choice) String() string { +func (x *PatternFlowIpv4TosThroughput_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPort_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughput_Choice) ProtoMessage() {} -func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[957] +func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[951] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87214,34 +87912,34 @@ func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{490, 0} +// Deprecated: Use PatternFlowIpv4TosThroughput_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughput_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{415, 0} } -type PatternFlowTcpSeqNum_Choice struct { +type PatternFlowIpv4TosReliability_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpSeqNum_Choice) Reset() { - *x = PatternFlowTcpSeqNum_Choice{} +func (x *PatternFlowIpv4TosReliability_Choice) Reset() { + *x = PatternFlowIpv4TosReliability_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[958] + mi := &file_otg_proto_msgTypes[952] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSeqNum_Choice) String() string { +func (x *PatternFlowIpv4TosReliability_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNum_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosReliability_Choice) ProtoMessage() {} -func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[958] +func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[952] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87252,34 +87950,34 @@ func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{493, 0} +// Deprecated: Use PatternFlowIpv4TosReliability_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliability_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{418, 0} } -type PatternFlowTcpAckNum_Choice struct { +type PatternFlowIpv4TosMonetary_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpAckNum_Choice) Reset() { - *x = PatternFlowTcpAckNum_Choice{} +func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { + *x = PatternFlowIpv4TosMonetary_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[959] + mi := &file_otg_proto_msgTypes[953] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpAckNum_Choice) String() string { +func (x *PatternFlowIpv4TosMonetary_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNum_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetary_Choice) ProtoMessage() {} -func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[959] +func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[953] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87290,34 +87988,34 @@ func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{496, 0} +// Deprecated: Use PatternFlowIpv4TosMonetary_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetary_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{421, 0} } -type PatternFlowTcpDataOffset_Choice struct { +type PatternFlowIpv4TosUnused_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpDataOffset_Choice) Reset() { - *x = PatternFlowTcpDataOffset_Choice{} +func (x *PatternFlowIpv4TosUnused_Choice) Reset() { + *x = PatternFlowIpv4TosUnused_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[960] + mi := &file_otg_proto_msgTypes[954] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDataOffset_Choice) String() string { +func (x *PatternFlowIpv4TosUnused_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffset_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosUnused_Choice) ProtoMessage() {} -func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[960] +func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[954] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87328,34 +88026,34 @@ func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffset_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffset_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{499, 0} +// Deprecated: Use PatternFlowIpv4TosUnused_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnused_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{424, 0} } -type PatternFlowTcpEcnNs_Choice struct { +type PatternFlowIpv6Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnNs_Choice) Reset() { - *x = PatternFlowTcpEcnNs_Choice{} +func (x *PatternFlowIpv6Version_Choice) Reset() { + *x = PatternFlowIpv6Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[961] + mi := &file_otg_proto_msgTypes[955] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnNs_Choice) String() string { +func (x *PatternFlowIpv6Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNs_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Version_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[961] +func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[955] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87366,34 +88064,34 @@ func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNs_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNs_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{502, 0} +// Deprecated: Use PatternFlowIpv6Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{427, 0} } -type PatternFlowTcpEcnCwr_Choice struct { +type PatternFlowIpv6TrafficClass_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnCwr_Choice) Reset() { - *x = PatternFlowTcpEcnCwr_Choice{} +func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { + *x = PatternFlowIpv6TrafficClass_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[962] + mi := &file_otg_proto_msgTypes[956] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnCwr_Choice) String() string { +func (x *PatternFlowIpv6TrafficClass_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwr_Choice) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClass_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[962] +func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[956] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87404,34 +88102,34 @@ func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{505, 0} +// Deprecated: Use PatternFlowIpv6TrafficClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{430, 0} } -type PatternFlowTcpEcnEcho_Choice struct { +type PatternFlowIpv6FlowLabel_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnEcho_Choice) Reset() { - *x = PatternFlowTcpEcnEcho_Choice{} +func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { + *x = PatternFlowIpv6FlowLabel_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[963] + mi := &file_otg_proto_msgTypes[957] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnEcho_Choice) String() string { +func (x *PatternFlowIpv6FlowLabel_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEcho_Choice) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabel_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[963] +func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[957] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87442,34 +88140,34 @@ func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEcho_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEcho_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{508, 0} +// Deprecated: Use PatternFlowIpv6FlowLabel_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabel_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{433, 0} } -type PatternFlowTcpCtlUrg_Choice struct { +type PatternFlowIpv6PayloadLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlUrg_Choice) Reset() { - *x = PatternFlowTcpCtlUrg_Choice{} +func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { + *x = PatternFlowIpv6PayloadLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[964] + mi := &file_otg_proto_msgTypes[958] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlUrg_Choice) String() string { +func (x *PatternFlowIpv6PayloadLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrg_Choice) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLength_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[964] +func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[958] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87480,34 +88178,34 @@ func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrg_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrg_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{511, 0} +// Deprecated: Use PatternFlowIpv6PayloadLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{436, 0} } -type PatternFlowTcpCtlAck_Choice struct { +type PatternFlowIpv6NextHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlAck_Choice) Reset() { - *x = PatternFlowTcpCtlAck_Choice{} +func (x *PatternFlowIpv6NextHeader_Choice) Reset() { + *x = PatternFlowIpv6NextHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[965] + mi := &file_otg_proto_msgTypes[959] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlAck_Choice) String() string { +func (x *PatternFlowIpv6NextHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAck_Choice) ProtoMessage() {} +func (*PatternFlowIpv6NextHeader_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[965] +func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[959] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87518,34 +88216,34 @@ func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAck_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAck_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{514, 0} +// Deprecated: Use PatternFlowIpv6NextHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{439, 0} } -type PatternFlowTcpCtlPsh_Choice struct { +type PatternFlowIpv6HopLimit_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlPsh_Choice) Reset() { - *x = PatternFlowTcpCtlPsh_Choice{} +func (x *PatternFlowIpv6HopLimit_Choice) Reset() { + *x = PatternFlowIpv6HopLimit_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[966] + mi := &file_otg_proto_msgTypes[960] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlPsh_Choice) String() string { +func (x *PatternFlowIpv6HopLimit_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPsh_Choice) ProtoMessage() {} +func (*PatternFlowIpv6HopLimit_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[966] +func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[960] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87556,34 +88254,34 @@ func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPsh_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPsh_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{517, 0} +// Deprecated: Use PatternFlowIpv6HopLimit_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimit_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{442, 0} } -type PatternFlowTcpCtlRst_Choice struct { +type PatternFlowIpv6Src_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlRst_Choice) Reset() { - *x = PatternFlowTcpCtlRst_Choice{} +func (x *PatternFlowIpv6Src_Choice) Reset() { + *x = PatternFlowIpv6Src_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[967] + mi := &file_otg_proto_msgTypes[961] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlRst_Choice) String() string { +func (x *PatternFlowIpv6Src_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRst_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Src_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[967] +func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[961] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87594,34 +88292,34 @@ func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{520, 0} +// Deprecated: Use PatternFlowIpv6Src_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Src_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{445, 0} } -type PatternFlowTcpCtlSyn_Choice struct { +type PatternFlowIpv6Dst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlSyn_Choice) Reset() { - *x = PatternFlowTcpCtlSyn_Choice{} +func (x *PatternFlowIpv6Dst_Choice) Reset() { + *x = PatternFlowIpv6Dst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[968] + mi := &file_otg_proto_msgTypes[962] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlSyn_Choice) String() string { +func (x *PatternFlowIpv6Dst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSyn_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Dst_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[968] +func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[962] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87632,34 +88330,34 @@ func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSyn_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSyn_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{523, 0} +// Deprecated: Use PatternFlowIpv6Dst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Dst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{448, 0} } -type PatternFlowTcpCtlFin_Choice struct { +type PatternFlowPfcPauseDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlFin_Choice) Reset() { - *x = PatternFlowTcpCtlFin_Choice{} +func (x *PatternFlowPfcPauseDst_Choice) Reset() { + *x = PatternFlowPfcPauseDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[969] + mi := &file_otg_proto_msgTypes[963] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlFin_Choice) String() string { +func (x *PatternFlowPfcPauseDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFin_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseDst_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[969] +func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[963] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87670,34 +88368,34 @@ func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFin_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFin_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{526, 0} +// Deprecated: Use PatternFlowPfcPauseDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{451, 0} } -type PatternFlowTcpWindow_Choice struct { +type PatternFlowPfcPauseSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpWindow_Choice) Reset() { - *x = PatternFlowTcpWindow_Choice{} +func (x *PatternFlowPfcPauseSrc_Choice) Reset() { + *x = PatternFlowPfcPauseSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[970] + mi := &file_otg_proto_msgTypes[964] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpWindow_Choice) String() string { +func (x *PatternFlowPfcPauseSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindow_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseSrc_Choice) ProtoMessage() {} -func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[970] +func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[964] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87708,34 +88406,34 @@ func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindow_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindow_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{529, 0} +// Deprecated: Use PatternFlowPfcPauseSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{454, 0} } -type PatternFlowUdpSrcPort_Choice struct { +type PatternFlowPfcPauseEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpSrcPort_Choice) Reset() { - *x = PatternFlowUdpSrcPort_Choice{} +func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { + *x = PatternFlowPfcPauseEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[971] + mi := &file_otg_proto_msgTypes[965] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpSrcPort_Choice) String() string { +func (x *PatternFlowPfcPauseEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPort_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[971] +func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[965] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87746,34 +88444,34 @@ func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{532, 0} +// Deprecated: Use PatternFlowPfcPauseEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{457, 0} } -type PatternFlowUdpDstPort_Choice struct { +type PatternFlowPfcPauseControlOpCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpDstPort_Choice) Reset() { - *x = PatternFlowUdpDstPort_Choice{} +func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { + *x = PatternFlowPfcPauseControlOpCode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[972] + mi := &file_otg_proto_msgTypes[966] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpDstPort_Choice) String() string { +func (x *PatternFlowPfcPauseControlOpCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPort_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCode_Choice) ProtoMessage() {} -func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[972] +func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[966] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87784,34 +88482,34 @@ func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{535, 0} +// Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{460, 0} } -type PatternFlowUdpLength_Choice struct { +type PatternFlowPfcPauseClassEnableVector_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpLength_Choice) Reset() { - *x = PatternFlowUdpLength_Choice{} +func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { + *x = PatternFlowPfcPauseClassEnableVector_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[973] + mi := &file_otg_proto_msgTypes[967] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpLength_Choice) String() string { +func (x *PatternFlowPfcPauseClassEnableVector_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLength_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVector_Choice) ProtoMessage() {} -func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[973] +func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[967] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87822,34 +88520,34 @@ func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{538, 0} +// Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVector_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{463, 0} } -type PatternFlowUdpChecksum_Choice struct { +type PatternFlowPfcPausePauseClass0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpChecksum_Choice) Reset() { - *x = PatternFlowUdpChecksum_Choice{} +func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[974] + mi := &file_otg_proto_msgTypes[968] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpChecksum_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpChecksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0_Choice) ProtoMessage() {} -func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[974] +func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[968] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87860,34 +88558,34 @@ func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{466, 0} } -type PatternFlowUdpChecksum_Generated struct { +type PatternFlowPfcPausePauseClass1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpChecksum_Generated) Reset() { - *x = PatternFlowUdpChecksum_Generated{} +func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[975] + mi := &file_otg_proto_msgTypes[969] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpChecksum_Generated) String() string { +func (x *PatternFlowPfcPausePauseClass1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpChecksum_Generated) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1_Choice) ProtoMessage() {} -func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[975] +func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[969] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87898,34 +88596,34 @@ func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539, 1} +// Deprecated: Use PatternFlowPfcPausePauseClass1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{469, 0} } -type PatternFlowGreChecksumPresent_Choice struct { +type PatternFlowPfcPausePauseClass2_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksumPresent_Choice) Reset() { - *x = PatternFlowGreChecksumPresent_Choice{} +func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass2_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[976] + mi := &file_otg_proto_msgTypes[970] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresent_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass2_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresent_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[976] +func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[970] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87936,34 +88634,34 @@ func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresent_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresent_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{542, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{472, 0} } -type PatternFlowGreReserved0_Choice struct { +type PatternFlowPfcPausePauseClass3_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreReserved0_Choice) Reset() { - *x = PatternFlowGreReserved0_Choice{} +func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass3_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[977] + mi := &file_otg_proto_msgTypes[971] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass3_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3_Choice) ProtoMessage() {} -func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[977] +func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[971] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87974,34 +88672,34 @@ func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{545, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass3_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{475, 0} } -type PatternFlowGreVersion_Choice struct { +type PatternFlowPfcPausePauseClass4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreVersion_Choice) Reset() { - *x = PatternFlowGreVersion_Choice{} +func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[978] + mi := &file_otg_proto_msgTypes[972] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersion_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersion_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4_Choice) ProtoMessage() {} -func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[978] +func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[972] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88012,34 +88710,34 @@ func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersion_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersion_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{548, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass4_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{478, 0} } -type PatternFlowGreProtocol_Choice struct { +type PatternFlowPfcPausePauseClass5_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreProtocol_Choice) Reset() { - *x = PatternFlowGreProtocol_Choice{} +func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass5_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[979] + mi := &file_otg_proto_msgTypes[973] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocol_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass5_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocol_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5_Choice) ProtoMessage() {} -func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[979] +func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[973] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88050,34 +88748,34 @@ func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocol_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{551, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass5_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{481, 0} } -type PatternFlowGreChecksum_Choice struct { +type PatternFlowPfcPausePauseClass6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksum_Choice) Reset() { - *x = PatternFlowGreChecksum_Choice{} +func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[980] + mi := &file_otg_proto_msgTypes[974] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksum_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[980] +func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[974] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88088,34 +88786,34 @@ func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass6_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{484, 0} } -type PatternFlowGreChecksum_Generated struct { +type PatternFlowPfcPausePauseClass7_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksum_Generated) Reset() { - *x = PatternFlowGreChecksum_Generated{} +func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass7_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[981] + mi := &file_otg_proto_msgTypes[975] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksum_Generated) String() string { +func (x *PatternFlowPfcPausePauseClass7_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksum_Generated) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[981] +func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[975] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88126,34 +88824,34 @@ func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552, 1} +// Deprecated: Use PatternFlowPfcPausePauseClass7_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{487, 0} } -type PatternFlowGreReserved1_Choice struct { +type PatternFlowEthernetPauseDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreReserved1_Choice) Reset() { - *x = PatternFlowGreReserved1_Choice{} +func (x *PatternFlowEthernetPauseDst_Choice) Reset() { + *x = PatternFlowEthernetPauseDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[982] + mi := &file_otg_proto_msgTypes[976] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1_Choice) String() string { +func (x *PatternFlowEthernetPauseDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseDst_Choice) ProtoMessage() {} -func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[982] +func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[976] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88164,34 +88862,34 @@ func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{555, 0} +// Deprecated: Use PatternFlowEthernetPauseDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{490, 0} } -type PatternFlowGtpv1Version_Choice struct { +type PatternFlowEthernetPauseSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Version_Choice) Reset() { - *x = PatternFlowGtpv1Version_Choice{} +func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { + *x = PatternFlowEthernetPauseSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[983] + mi := &file_otg_proto_msgTypes[977] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Version_Choice) String() string { +func (x *PatternFlowEthernetPauseSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Version_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrc_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[983] +func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[977] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88202,34 +88900,34 @@ func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{558, 0} +// Deprecated: Use PatternFlowEthernetPauseSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{493, 0} } -type PatternFlowGtpv1ProtocolType_Choice struct { +type PatternFlowEthernetPauseEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { - *x = PatternFlowGtpv1ProtocolType_Choice{} +func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { + *x = PatternFlowEthernetPauseEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[984] + mi := &file_otg_proto_msgTypes[978] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolType_Choice) String() string { +func (x *PatternFlowEthernetPauseEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[984] +func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[978] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88240,34 +88938,34 @@ func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{561, 0} +// Deprecated: Use PatternFlowEthernetPauseEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{496, 0} } -type PatternFlowGtpv1Reserved_Choice struct { +type PatternFlowEthernetPauseControlOpCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Reserved_Choice) Reset() { - *x = PatternFlowGtpv1Reserved_Choice{} +func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { + *x = PatternFlowEthernetPauseControlOpCode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[985] + mi := &file_otg_proto_msgTypes[979] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Reserved_Choice) String() string { +func (x *PatternFlowEthernetPauseControlOpCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Reserved_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCode_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[985] +func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[979] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88278,34 +88976,34 @@ func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Reserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Reserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{564, 0} +// Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{499, 0} } -type PatternFlowGtpv1EFlag_Choice struct { +type PatternFlowEthernetPauseTime_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1EFlag_Choice) Reset() { - *x = PatternFlowGtpv1EFlag_Choice{} +func (x *PatternFlowEthernetPauseTime_Choice) Reset() { + *x = PatternFlowEthernetPauseTime_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[986] + mi := &file_otg_proto_msgTypes[980] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlag_Choice) String() string { +func (x *PatternFlowEthernetPauseTime_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlag_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseTime_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[986] +func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[980] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88316,34 +89014,34 @@ func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{567, 0} +// Deprecated: Use PatternFlowEthernetPauseTime_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTime_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{502, 0} } -type PatternFlowGtpv1SFlag_Choice struct { +type PatternFlowTcpSrcPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1SFlag_Choice) Reset() { - *x = PatternFlowGtpv1SFlag_Choice{} +func (x *PatternFlowTcpSrcPort_Choice) Reset() { + *x = PatternFlowTcpSrcPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[987] + mi := &file_otg_proto_msgTypes[981] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlag_Choice) String() string { +func (x *PatternFlowTcpSrcPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpSrcPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[987] +func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[981] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88354,34 +89052,34 @@ func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{570, 0} +// Deprecated: Use PatternFlowTcpSrcPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{505, 0} } -type PatternFlowGtpv1PnFlag_Choice struct { +type PatternFlowTcpDstPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { - *x = PatternFlowGtpv1PnFlag_Choice{} +func (x *PatternFlowTcpDstPort_Choice) Reset() { + *x = PatternFlowTcpDstPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[988] + mi := &file_otg_proto_msgTypes[982] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1PnFlag_Choice) String() string { +func (x *PatternFlowTcpDstPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpDstPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[988] +func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[982] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88392,34 +89090,34 @@ func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{573, 0} +// Deprecated: Use PatternFlowTcpDstPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{508, 0} } -type PatternFlowGtpv1MessageType_Choice struct { +type PatternFlowTcpSeqNum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1MessageType_Choice) Reset() { - *x = PatternFlowGtpv1MessageType_Choice{} +func (x *PatternFlowTcpSeqNum_Choice) Reset() { + *x = PatternFlowTcpSeqNum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[989] + mi := &file_otg_proto_msgTypes[983] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageType_Choice) String() string { +func (x *PatternFlowTcpSeqNum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageType_Choice) ProtoMessage() {} +func (*PatternFlowTcpSeqNum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[989] +func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[983] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88430,34 +89128,34 @@ func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{576, 0} +// Deprecated: Use PatternFlowTcpSeqNum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{511, 0} } -type PatternFlowGtpv1MessageLength_Choice struct { +type PatternFlowTcpAckNum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { - *x = PatternFlowGtpv1MessageLength_Choice{} +func (x *PatternFlowTcpAckNum_Choice) Reset() { + *x = PatternFlowTcpAckNum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[990] + mi := &file_otg_proto_msgTypes[984] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageLength_Choice) String() string { +func (x *PatternFlowTcpAckNum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLength_Choice) ProtoMessage() {} +func (*PatternFlowTcpAckNum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[990] +func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[984] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88468,34 +89166,34 @@ func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{579, 0} +// Deprecated: Use PatternFlowTcpAckNum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{514, 0} } -type PatternFlowGtpv1Teid_Choice struct { +type PatternFlowTcpDataOffset_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Teid_Choice) Reset() { - *x = PatternFlowGtpv1Teid_Choice{} +func (x *PatternFlowTcpDataOffset_Choice) Reset() { + *x = PatternFlowTcpDataOffset_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[991] + mi := &file_otg_proto_msgTypes[985] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Teid_Choice) String() string { +func (x *PatternFlowTcpDataOffset_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Teid_Choice) ProtoMessage() {} +func (*PatternFlowTcpDataOffset_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[991] +func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[985] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88506,34 +89204,34 @@ func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Teid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Teid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{582, 0} +// Deprecated: Use PatternFlowTcpDataOffset_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffset_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{517, 0} } -type PatternFlowGtpv1SquenceNumber_Choice struct { +type PatternFlowTcpEcnNs_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { - *x = PatternFlowGtpv1SquenceNumber_Choice{} +func (x *PatternFlowTcpEcnNs_Choice) Reset() { + *x = PatternFlowTcpEcnNs_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[992] + mi := &file_otg_proto_msgTypes[986] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SquenceNumber_Choice) String() string { +func (x *PatternFlowTcpEcnNs_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnNs_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[992] +func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[986] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88544,34 +89242,34 @@ func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585, 0} -} +// Deprecated: Use PatternFlowTcpEcnNs_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNs_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{520, 0} +} -type PatternFlowGtpv1NPduNumber_Choice struct { +type PatternFlowTcpEcnCwr_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { - *x = PatternFlowGtpv1NPduNumber_Choice{} +func (x *PatternFlowTcpEcnCwr_Choice) Reset() { + *x = PatternFlowTcpEcnCwr_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[993] + mi := &file_otg_proto_msgTypes[987] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NPduNumber_Choice) String() string { +func (x *PatternFlowTcpEcnCwr_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumber_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnCwr_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[993] +func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[987] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88582,34 +89280,34 @@ func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{588, 0} +// Deprecated: Use PatternFlowTcpEcnCwr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{523, 0} } -type PatternFlowGtpv1NextExtensionHeaderType_Choice struct { +type PatternFlowTcpEcnEcho_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderType_Choice{} +func (x *PatternFlowTcpEcnEcho_Choice) Reset() { + *x = PatternFlowTcpEcnEcho_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[994] + mi := &file_otg_proto_msgTypes[988] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) String() string { +func (x *PatternFlowTcpEcnEcho_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnEcho_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[994] +func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[988] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88620,34 +89318,34 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{591, 0} +// Deprecated: Use PatternFlowTcpEcnEcho_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEcho_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{526, 0} } -type PatternFlowGtpExtensionExtensionLength_Choice struct { +type PatternFlowTcpCtlUrg_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { - *x = PatternFlowGtpExtensionExtensionLength_Choice{} +func (x *PatternFlowTcpCtlUrg_Choice) Reset() { + *x = PatternFlowTcpCtlUrg_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[995] + mi := &file_otg_proto_msgTypes[989] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionExtensionLength_Choice) String() string { +func (x *PatternFlowTcpCtlUrg_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLength_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlUrg_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[995] +func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[989] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88658,34 +89356,34 @@ func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{594, 0} +// Deprecated: Use PatternFlowTcpCtlUrg_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrg_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{529, 0} } -type PatternFlowGtpExtensionContents_Choice struct { +type PatternFlowTcpCtlAck_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionContents_Choice) Reset() { - *x = PatternFlowGtpExtensionContents_Choice{} +func (x *PatternFlowTcpCtlAck_Choice) Reset() { + *x = PatternFlowTcpCtlAck_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[996] + mi := &file_otg_proto_msgTypes[990] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionContents_Choice) String() string { +func (x *PatternFlowTcpCtlAck_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContents_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlAck_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[996] +func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[990] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88696,34 +89394,34 @@ func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContents_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContents_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{597, 0} +// Deprecated: Use PatternFlowTcpCtlAck_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAck_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{532, 0} } -type PatternFlowGtpExtensionNextExtensionHeader_Choice struct { +type PatternFlowTcpCtlPsh_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeader_Choice{} +func (x *PatternFlowTcpCtlPsh_Choice) Reset() { + *x = PatternFlowTcpCtlPsh_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[997] + mi := &file_otg_proto_msgTypes[991] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) String() string { +func (x *PatternFlowTcpCtlPsh_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlPsh_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[997] +func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[991] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88734,34 +89432,34 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{600, 0} +// Deprecated: Use PatternFlowTcpCtlPsh_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPsh_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{535, 0} } -type PatternFlowGtpv2Version_Choice struct { +type PatternFlowTcpCtlRst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Version_Choice) Reset() { - *x = PatternFlowGtpv2Version_Choice{} +func (x *PatternFlowTcpCtlRst_Choice) Reset() { + *x = PatternFlowTcpCtlRst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[998] + mi := &file_otg_proto_msgTypes[992] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Version_Choice) String() string { +func (x *PatternFlowTcpCtlRst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Version_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlRst_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[998] +func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[992] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88772,34 +89470,34 @@ func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{603, 0} +// Deprecated: Use PatternFlowTcpCtlRst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{538, 0} } -type PatternFlowGtpv2PiggybackingFlag_Choice struct { +type PatternFlowTcpCtlSyn_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { - *x = PatternFlowGtpv2PiggybackingFlag_Choice{} +func (x *PatternFlowTcpCtlSyn_Choice) Reset() { + *x = PatternFlowTcpCtlSyn_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[999] + mi := &file_otg_proto_msgTypes[993] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) String() string { +func (x *PatternFlowTcpCtlSyn_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlSyn_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[999] +func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[993] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88810,34 +89508,34 @@ func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{606, 0} +// Deprecated: Use PatternFlowTcpCtlSyn_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSyn_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{541, 0} } -type PatternFlowGtpv2TeidFlag_Choice struct { +type PatternFlowTcpCtlFin_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { - *x = PatternFlowGtpv2TeidFlag_Choice{} +func (x *PatternFlowTcpCtlFin_Choice) Reset() { + *x = PatternFlowTcpCtlFin_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1000] + mi := &file_otg_proto_msgTypes[994] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2TeidFlag_Choice) String() string { +func (x *PatternFlowTcpCtlFin_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlFin_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1000] +func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[994] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88848,34 +89546,34 @@ func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{609, 0} +// Deprecated: Use PatternFlowTcpCtlFin_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFin_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{544, 0} } -type PatternFlowGtpv2Spare1_Choice struct { +type PatternFlowTcpWindow_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Spare1_Choice) Reset() { - *x = PatternFlowGtpv2Spare1_Choice{} +func (x *PatternFlowTcpWindow_Choice) Reset() { + *x = PatternFlowTcpWindow_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1001] + mi := &file_otg_proto_msgTypes[995] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare1_Choice) String() string { +func (x *PatternFlowTcpWindow_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1_Choice) ProtoMessage() {} +func (*PatternFlowTcpWindow_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1001] +func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[995] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88886,34 +89584,34 @@ func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{612, 0} +// Deprecated: Use PatternFlowTcpWindow_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindow_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{547, 0} } -type PatternFlowGtpv2MessageType_Choice struct { +type PatternFlowUdpSrcPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2MessageType_Choice) Reset() { - *x = PatternFlowGtpv2MessageType_Choice{} +func (x *PatternFlowUdpSrcPort_Choice) Reset() { + *x = PatternFlowUdpSrcPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1002] + mi := &file_otg_proto_msgTypes[996] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageType_Choice) String() string { +func (x *PatternFlowUdpSrcPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageType_Choice) ProtoMessage() {} +func (*PatternFlowUdpSrcPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1002] +func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[996] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88924,34 +89622,34 @@ func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{615, 0} +// Deprecated: Use PatternFlowUdpSrcPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{550, 0} } -type PatternFlowGtpv2MessageLength_Choice struct { +type PatternFlowUdpDstPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { - *x = PatternFlowGtpv2MessageLength_Choice{} +func (x *PatternFlowUdpDstPort_Choice) Reset() { + *x = PatternFlowUdpDstPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1003] + mi := &file_otg_proto_msgTypes[997] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageLength_Choice) String() string { +func (x *PatternFlowUdpDstPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLength_Choice) ProtoMessage() {} +func (*PatternFlowUdpDstPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1003] +func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[997] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -88962,34 +89660,34 @@ func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{618, 0} +// Deprecated: Use PatternFlowUdpDstPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{553, 0} } -type PatternFlowGtpv2Teid_Choice struct { +type PatternFlowUdpLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Teid_Choice) Reset() { - *x = PatternFlowGtpv2Teid_Choice{} +func (x *PatternFlowUdpLength_Choice) Reset() { + *x = PatternFlowUdpLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1004] + mi := &file_otg_proto_msgTypes[998] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Teid_Choice) String() string { +func (x *PatternFlowUdpLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Teid_Choice) ProtoMessage() {} +func (*PatternFlowUdpLength_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1004] +func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[998] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89000,34 +89698,34 @@ func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Teid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Teid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{621, 0} +// Deprecated: Use PatternFlowUdpLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{556, 0} } -type PatternFlowGtpv2SequenceNumber_Choice struct { +type PatternFlowUdpChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { - *x = PatternFlowGtpv2SequenceNumber_Choice{} +func (x *PatternFlowUdpChecksum_Choice) Reset() { + *x = PatternFlowUdpChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1005] + mi := &file_otg_proto_msgTypes[999] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2SequenceNumber_Choice) String() string { +func (x *PatternFlowUdpChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowUdpChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1005] +func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[999] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89038,34 +89736,34 @@ func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{624, 0} +// Deprecated: Use PatternFlowUdpChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{557, 0} } -type PatternFlowGtpv2Spare2_Choice struct { +type PatternFlowUdpChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Spare2_Choice) Reset() { - *x = PatternFlowGtpv2Spare2_Choice{} +func (x *PatternFlowUdpChecksum_Generated) Reset() { + *x = PatternFlowUdpChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1006] + mi := &file_otg_proto_msgTypes[1000] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare2_Choice) String() string { +func (x *PatternFlowUdpChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2_Choice) ProtoMessage() {} +func (*PatternFlowUdpChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1006] +func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1000] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89076,34 +89774,34 @@ func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{627, 0} +// Deprecated: Use PatternFlowUdpChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{557, 1} } -type PatternFlowArpHardwareType_Choice struct { +type PatternFlowGreChecksumPresent_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpHardwareType_Choice) Reset() { - *x = PatternFlowArpHardwareType_Choice{} +func (x *PatternFlowGreChecksumPresent_Choice) Reset() { + *x = PatternFlowGreChecksumPresent_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1007] + mi := &file_otg_proto_msgTypes[1001] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareType_Choice) String() string { +func (x *PatternFlowGreChecksumPresent_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareType_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksumPresent_Choice) ProtoMessage() {} -func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1007] +func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1001] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89114,34 +89812,34 @@ func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{630, 0} +// Deprecated: Use PatternFlowGreChecksumPresent_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresent_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{560, 0} } -type PatternFlowArpProtocolType_Choice struct { +type PatternFlowGreReserved0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpProtocolType_Choice) Reset() { - *x = PatternFlowArpProtocolType_Choice{} +func (x *PatternFlowGreReserved0_Choice) Reset() { + *x = PatternFlowGreReserved0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1008] + mi := &file_otg_proto_msgTypes[1002] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolType_Choice) String() string { +func (x *PatternFlowGreReserved0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowGreReserved0_Choice) ProtoMessage() {} -func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1008] +func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1002] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89152,34 +89850,34 @@ func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{633, 0} +// Deprecated: Use PatternFlowGreReserved0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{563, 0} } -type PatternFlowArpHardwareLength_Choice struct { +type PatternFlowGreVersion_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpHardwareLength_Choice) Reset() { - *x = PatternFlowArpHardwareLength_Choice{} +func (x *PatternFlowGreVersion_Choice) Reset() { + *x = PatternFlowGreVersion_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1009] + mi := &file_otg_proto_msgTypes[1003] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareLength_Choice) String() string { +func (x *PatternFlowGreVersion_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLength_Choice) ProtoMessage() {} +func (*PatternFlowGreVersion_Choice) ProtoMessage() {} -func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1009] +func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1003] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89190,34 +89888,34 @@ func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{636, 0} +// Deprecated: Use PatternFlowGreVersion_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersion_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{566, 0} } -type PatternFlowArpProtocolLength_Choice struct { +type PatternFlowGreProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpProtocolLength_Choice) Reset() { - *x = PatternFlowArpProtocolLength_Choice{} +func (x *PatternFlowGreProtocol_Choice) Reset() { + *x = PatternFlowGreProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1010] + mi := &file_otg_proto_msgTypes[1004] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolLength_Choice) String() string { +func (x *PatternFlowGreProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLength_Choice) ProtoMessage() {} +func (*PatternFlowGreProtocol_Choice) ProtoMessage() {} -func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1010] +func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1004] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89228,34 +89926,34 @@ func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{639, 0} +// Deprecated: Use PatternFlowGreProtocol_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{569, 0} } -type PatternFlowArpOperation_Choice struct { +type PatternFlowGreChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpOperation_Choice) Reset() { - *x = PatternFlowArpOperation_Choice{} +func (x *PatternFlowGreChecksum_Choice) Reset() { + *x = PatternFlowGreChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1011] + mi := &file_otg_proto_msgTypes[1005] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpOperation_Choice) String() string { +func (x *PatternFlowGreChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperation_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1011] +func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1005] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89266,34 +89964,34 @@ func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperation_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperation_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{642, 0} +// Deprecated: Use PatternFlowGreChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{570, 0} } -type PatternFlowArpSenderHardwareAddr_Choice struct { +type PatternFlowGreChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { - *x = PatternFlowArpSenderHardwareAddr_Choice{} +func (x *PatternFlowGreChecksum_Generated) Reset() { + *x = PatternFlowGreChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1012] + mi := &file_otg_proto_msgTypes[1006] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderHardwareAddr_Choice) String() string { +func (x *PatternFlowGreChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddr_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1012] +func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1006] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89304,34 +90002,34 @@ func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{645, 0} +// Deprecated: Use PatternFlowGreChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{570, 1} } -type PatternFlowArpSenderProtocolAddr_Choice struct { +type PatternFlowGreReserved1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { - *x = PatternFlowArpSenderProtocolAddr_Choice{} +func (x *PatternFlowGreReserved1_Choice) Reset() { + *x = PatternFlowGreReserved1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1013] + mi := &file_otg_proto_msgTypes[1007] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderProtocolAddr_Choice) String() string { +func (x *PatternFlowGreReserved1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddr_Choice) ProtoMessage() {} +func (*PatternFlowGreReserved1_Choice) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1013] +func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1007] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89342,34 +90040,34 @@ func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{648, 0} +// Deprecated: Use PatternFlowGreReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{573, 0} } -type PatternFlowArpTargetHardwareAddr_Choice struct { +type PatternFlowGtpv1Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpTargetHardwareAddr_Choice) Reset() { - *x = PatternFlowArpTargetHardwareAddr_Choice{} +func (x *PatternFlowGtpv1Version_Choice) Reset() { + *x = PatternFlowGtpv1Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1014] + mi := &file_otg_proto_msgTypes[1008] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetHardwareAddr_Choice) String() string { +func (x *PatternFlowGtpv1Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddr_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Version_Choice) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1014] +func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1008] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89380,34 +90078,34 @@ func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{651, 0} +// Deprecated: Use PatternFlowGtpv1Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{576, 0} } -type PatternFlowArpTargetProtocolAddr_Choice struct { +type PatternFlowGtpv1ProtocolType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpTargetProtocolAddr_Choice) Reset() { - *x = PatternFlowArpTargetProtocolAddr_Choice{} +func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { + *x = PatternFlowGtpv1ProtocolType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1015] + mi := &file_otg_proto_msgTypes[1009] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetProtocolAddr_Choice) String() string { +func (x *PatternFlowGtpv1ProtocolType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddr_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolType_Choice) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1015] +func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1009] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89418,35 +90116,35 @@ func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{654, 0} +// Deprecated: Use PatternFlowGtpv1ProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{579, 0} } -type PatternFlowIcmpEchoType_Choice struct { +type PatternFlowGtpv1Reserved_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoType_Choice) Reset() { - *x = PatternFlowIcmpEchoType_Choice{} +func (x *PatternFlowGtpv1Reserved_Choice) Reset() { + *x = PatternFlowGtpv1Reserved_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1016] + mi := &file_otg_proto_msgTypes[1010] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoType_Choice) String() string { +func (x *PatternFlowGtpv1Reserved_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoType_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Reserved_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1016] - if protoimpl.UnsafeEnabled && x != nil { +func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1010] + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -89456,34 +90154,34 @@ func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{657, 0} +// Deprecated: Use PatternFlowGtpv1Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{582, 0} } -type PatternFlowIcmpEchoCode_Choice struct { +type PatternFlowGtpv1EFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoCode_Choice) Reset() { - *x = PatternFlowIcmpEchoCode_Choice{} +func (x *PatternFlowGtpv1EFlag_Choice) Reset() { + *x = PatternFlowGtpv1EFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1017] + mi := &file_otg_proto_msgTypes[1011] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoCode_Choice) String() string { +func (x *PatternFlowGtpv1EFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCode_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1EFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1017] +func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1011] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89494,34 +90192,34 @@ func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{660, 0} +// Deprecated: Use PatternFlowGtpv1EFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{585, 0} } -type PatternFlowIcmpEchoChecksum_Choice struct { +type PatternFlowGtpv1SFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoChecksum_Choice) Reset() { - *x = PatternFlowIcmpEchoChecksum_Choice{} +func (x *PatternFlowGtpv1SFlag_Choice) Reset() { + *x = PatternFlowGtpv1SFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1018] + mi := &file_otg_proto_msgTypes[1012] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoChecksum_Choice) String() string { +func (x *PatternFlowGtpv1SFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1SFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1018] +func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1012] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89532,34 +90230,34 @@ func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661, 0} +// Deprecated: Use PatternFlowGtpv1SFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{588, 0} } -type PatternFlowIcmpEchoChecksum_Generated struct { +type PatternFlowGtpv1PnFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoChecksum_Generated) Reset() { - *x = PatternFlowIcmpEchoChecksum_Generated{} +func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { + *x = PatternFlowGtpv1PnFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1019] + mi := &file_otg_proto_msgTypes[1013] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoChecksum_Generated) String() string { +func (x *PatternFlowGtpv1PnFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1019] +func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1013] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89570,34 +90268,34 @@ func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661, 1} +// Deprecated: Use PatternFlowGtpv1PnFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{591, 0} } -type PatternFlowIcmpEchoIdentifier_Choice struct { +type PatternFlowGtpv1MessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoIdentifier_Choice) Reset() { - *x = PatternFlowIcmpEchoIdentifier_Choice{} +func (x *PatternFlowGtpv1MessageType_Choice) Reset() { + *x = PatternFlowGtpv1MessageType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1020] + mi := &file_otg_proto_msgTypes[1014] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifier_Choice) String() string { +func (x *PatternFlowGtpv1MessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1MessageType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1020] +func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1014] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89608,34 +90306,34 @@ func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{664, 0} +// Deprecated: Use PatternFlowGtpv1MessageType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{594, 0} } -type PatternFlowIcmpEchoSequenceNumber_Choice struct { +type PatternFlowGtpv1MessageLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpEchoSequenceNumber_Choice{} +func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { + *x = PatternFlowGtpv1MessageLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1021] + mi := &file_otg_proto_msgTypes[1015] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpv1MessageLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLength_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1021] +func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1015] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89646,34 +90344,34 @@ func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{667, 0} +// Deprecated: Use PatternFlowGtpv1MessageLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{597, 0} } -type PatternFlowIcmpCommonChecksum_Choice struct { +type PatternFlowGtpv1Teid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpCommonChecksum_Choice) Reset() { - *x = PatternFlowIcmpCommonChecksum_Choice{} +func (x *PatternFlowGtpv1Teid_Choice) Reset() { + *x = PatternFlowGtpv1Teid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1022] + mi := &file_otg_proto_msgTypes[1016] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpCommonChecksum_Choice) String() string { +func (x *PatternFlowGtpv1Teid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpCommonChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Teid_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1022] +func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1016] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89684,34 +90382,34 @@ func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpCommonChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668, 0} +// Deprecated: Use PatternFlowGtpv1Teid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Teid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{600, 0} } -type PatternFlowIcmpCommonChecksum_Generated struct { +type PatternFlowGtpv1SquenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpCommonChecksum_Generated) Reset() { - *x = PatternFlowIcmpCommonChecksum_Generated{} +func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { + *x = PatternFlowGtpv1SquenceNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1023] + mi := &file_otg_proto_msgTypes[1017] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpCommonChecksum_Generated) String() string { +func (x *PatternFlowGtpv1SquenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpCommonChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1023] +func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1017] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89722,34 +90420,34 @@ func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpCommonChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668, 1} +// Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{603, 0} } -type PatternFlowIcmpNextFieldsIdentifier_Choice struct { +type PatternFlowGtpv1NPduNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifier_Choice{} +func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { + *x = PatternFlowGtpv1NPduNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1024] + mi := &file_otg_proto_msgTypes[1018] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) String() string { +func (x *PatternFlowGtpv1NPduNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumber_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1024] +func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1018] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89760,34 +90458,34 @@ func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{671, 0} +// Deprecated: Use PatternFlowGtpv1NPduNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{606, 0} } -type PatternFlowIcmpNextFieldsSequenceNumber_Choice struct { +type PatternFlowGtpv1NextExtensionHeaderType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumber_Choice{} +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1025] + mi := &file_otg_proto_msgTypes[1019] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1025] +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1019] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89798,34 +90496,34 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{674, 0} +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{609, 0} } -type PatternFlowIcmpv6EchoType_Choice struct { +type PatternFlowGtpExtensionExtensionLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoType_Choice) Reset() { - *x = PatternFlowIcmpv6EchoType_Choice{} +func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { + *x = PatternFlowGtpExtensionExtensionLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1026] + mi := &file_otg_proto_msgTypes[1020] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoType_Choice) String() string { +func (x *PatternFlowGtpExtensionExtensionLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoType_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLength_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1026] +func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1020] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89836,34 +90534,34 @@ func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{677, 0} +// Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{612, 0} } -type PatternFlowIcmpv6EchoCode_Choice struct { +type PatternFlowGtpExtensionContents_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoCode_Choice) Reset() { - *x = PatternFlowIcmpv6EchoCode_Choice{} +func (x *PatternFlowGtpExtensionContents_Choice) Reset() { + *x = PatternFlowGtpExtensionContents_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1027] + mi := &file_otg_proto_msgTypes[1021] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCode_Choice) String() string { +func (x *PatternFlowGtpExtensionContents_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCode_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionContents_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1027] +func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1021] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89874,34 +90572,34 @@ func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{680, 0} +// Deprecated: Use PatternFlowGtpExtensionContents_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContents_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{615, 0} } -type PatternFlowIcmpv6EchoIdentifier_Choice struct { +type PatternFlowGtpExtensionNextExtensionHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) Reset() { - *x = PatternFlowIcmpv6EchoIdentifier_Choice{} +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1028] + mi := &file_otg_proto_msgTypes[1022] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1028] +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1022] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89912,34 +90610,34 @@ func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{683, 0} +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{618, 0} } -type PatternFlowIcmpv6EchoSequenceNumber_Choice struct { +type PatternFlowGtpv2Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumber_Choice{} +func (x *PatternFlowGtpv2Version_Choice) Reset() { + *x = PatternFlowGtpv2Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1029] + mi := &file_otg_proto_msgTypes[1023] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpv2Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Version_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1029] +func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1023] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89950,34 +90648,34 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{686, 0} +// Deprecated: Use PatternFlowGtpv2Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{621, 0} } -type PatternFlowIcmpv6EchoChecksum_Choice struct { +type PatternFlowGtpv2PiggybackingFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoChecksum_Choice) Reset() { - *x = PatternFlowIcmpv6EchoChecksum_Choice{} +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { + *x = PatternFlowGtpv2PiggybackingFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1030] + mi := &file_otg_proto_msgTypes[1024] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoChecksum_Choice) String() string { +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1030] +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1024] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89988,34 +90686,34 @@ func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 0} +// Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{624, 0} } -type PatternFlowIcmpv6EchoChecksum_Generated struct { +type PatternFlowGtpv2TeidFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoChecksum_Generated) Reset() { - *x = PatternFlowIcmpv6EchoChecksum_Generated{} +func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { + *x = PatternFlowGtpv2TeidFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1031] + mi := &file_otg_proto_msgTypes[1025] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoChecksum_Generated) String() string { +func (x *PatternFlowGtpv2TeidFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1031] +func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1025] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90026,34 +90724,34 @@ func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 1} +// Deprecated: Use PatternFlowGtpv2TeidFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{627, 0} } -type PatternFlowIcmpv6CommonChecksum_Choice struct { +type PatternFlowGtpv2Spare1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6CommonChecksum_Choice) Reset() { - *x = PatternFlowIcmpv6CommonChecksum_Choice{} +func (x *PatternFlowGtpv2Spare1_Choice) Reset() { + *x = PatternFlowGtpv2Spare1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1032] + mi := &file_otg_proto_msgTypes[1026] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6CommonChecksum_Choice) String() string { +func (x *PatternFlowGtpv2Spare1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6CommonChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1032] +func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1026] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90064,34 +90762,34 @@ func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688, 0} +// Deprecated: Use PatternFlowGtpv2Spare1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{630, 0} } -type PatternFlowIcmpv6CommonChecksum_Generated struct { +type PatternFlowGtpv2MessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6CommonChecksum_Generated) Reset() { - *x = PatternFlowIcmpv6CommonChecksum_Generated{} +func (x *PatternFlowGtpv2MessageType_Choice) Reset() { + *x = PatternFlowGtpv2MessageType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1033] + mi := &file_otg_proto_msgTypes[1027] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6CommonChecksum_Generated) String() string { +func (x *PatternFlowGtpv2MessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6CommonChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv2MessageType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1033] +func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1027] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90102,34 +90800,34 @@ func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688, 1} +// Deprecated: Use PatternFlowGtpv2MessageType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{633, 0} } -type PatternFlowPppAddress_Choice struct { +type PatternFlowGtpv2MessageLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppAddress_Choice) Reset() { - *x = PatternFlowPppAddress_Choice{} +func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { + *x = PatternFlowGtpv2MessageLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1034] + mi := &file_otg_proto_msgTypes[1028] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddress_Choice) String() string { +func (x *PatternFlowGtpv2MessageLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddress_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLength_Choice) ProtoMessage() {} -func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1034] +func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1028] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90140,34 +90838,34 @@ func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddress_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddress_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{691, 0} +// Deprecated: Use PatternFlowGtpv2MessageLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{636, 0} } -type PatternFlowPppControl_Choice struct { +type PatternFlowGtpv2Teid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppControl_Choice) Reset() { - *x = PatternFlowPppControl_Choice{} +func (x *PatternFlowGtpv2Teid_Choice) Reset() { + *x = PatternFlowGtpv2Teid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1035] + mi := &file_otg_proto_msgTypes[1029] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControl_Choice) String() string { +func (x *PatternFlowGtpv2Teid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControl_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Teid_Choice) ProtoMessage() {} -func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1035] +func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1029] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90178,34 +90876,34 @@ func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControl_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControl_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694, 0} +// Deprecated: Use PatternFlowGtpv2Teid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Teid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{639, 0} } -type PatternFlowPppProtocolType_Choice struct { +type PatternFlowGtpv2SequenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppProtocolType_Choice) Reset() { - *x = PatternFlowPppProtocolType_Choice{} +func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { + *x = PatternFlowGtpv2SequenceNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1036] + mi := &file_otg_proto_msgTypes[1030] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolType_Choice) String() string { +func (x *PatternFlowGtpv2SequenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1036] +func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1030] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90216,34 +90914,34 @@ func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697, 0} +// Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{642, 0} } -type PatternFlowIgmpv1Version_Choice struct { +type PatternFlowGtpv2Spare2_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Version_Choice) Reset() { - *x = PatternFlowIgmpv1Version_Choice{} +func (x *PatternFlowGtpv2Spare2_Choice) Reset() { + *x = PatternFlowGtpv2Spare2_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1037] + mi := &file_otg_proto_msgTypes[1031] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Version_Choice) String() string { +func (x *PatternFlowGtpv2Spare2_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Version_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1037] +func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1031] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90254,34 +90952,34 @@ func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700, 0} +// Deprecated: Use PatternFlowGtpv2Spare2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{645, 0} } -type PatternFlowIgmpv1Type_Choice struct { +type PatternFlowArpHardwareType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Type_Choice) Reset() { - *x = PatternFlowIgmpv1Type_Choice{} +func (x *PatternFlowArpHardwareType_Choice) Reset() { + *x = PatternFlowArpHardwareType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1038] + mi := &file_otg_proto_msgTypes[1032] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Type_Choice) String() string { +func (x *PatternFlowArpHardwareType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Type_Choice) ProtoMessage() {} +func (*PatternFlowArpHardwareType_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1038] +func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1032] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90292,34 +90990,34 @@ func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Type_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Type_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{703, 0} +// Deprecated: Use PatternFlowArpHardwareType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{648, 0} } -type PatternFlowIgmpv1Unused_Choice struct { +type PatternFlowArpProtocolType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Unused_Choice) Reset() { - *x = PatternFlowIgmpv1Unused_Choice{} +func (x *PatternFlowArpProtocolType_Choice) Reset() { + *x = PatternFlowArpProtocolType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1039] + mi := &file_otg_proto_msgTypes[1033] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Unused_Choice) String() string { +func (x *PatternFlowArpProtocolType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Unused_Choice) ProtoMessage() {} +func (*PatternFlowArpProtocolType_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1039] +func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1033] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90330,34 +91028,34 @@ func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Unused_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Unused_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{706, 0} +// Deprecated: Use PatternFlowArpProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{651, 0} } -type PatternFlowIgmpv1Checksum_Choice struct { +type PatternFlowArpHardwareLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Checksum_Choice) Reset() { - *x = PatternFlowIgmpv1Checksum_Choice{} +func (x *PatternFlowArpHardwareLength_Choice) Reset() { + *x = PatternFlowArpHardwareLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1040] + mi := &file_otg_proto_msgTypes[1034] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Checksum_Choice) String() string { +func (x *PatternFlowArpHardwareLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum_Choice) ProtoMessage() {} +func (*PatternFlowArpHardwareLength_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1040] +func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1034] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90368,19 +91066,247 @@ func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Checksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 0} +// Deprecated: Use PatternFlowArpHardwareLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{654, 0} } -type PatternFlowIgmpv1Checksum_Generated struct { +type PatternFlowArpProtocolLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { - *x = PatternFlowIgmpv1Checksum_Generated{} +func (x *PatternFlowArpProtocolLength_Choice) Reset() { + *x = PatternFlowArpProtocolLength_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1035] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpProtocolLength_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpProtocolLength_Choice) ProtoMessage() {} + +func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1035] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpProtocolLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{657, 0} +} + +type PatternFlowArpOperation_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpOperation_Choice) Reset() { + *x = PatternFlowArpOperation_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1036] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpOperation_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpOperation_Choice) ProtoMessage() {} + +func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1036] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpOperation_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperation_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{660, 0} +} + +type PatternFlowArpSenderHardwareAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { + *x = PatternFlowArpSenderHardwareAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1037] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpSenderHardwareAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1037] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{663, 0} +} + +type PatternFlowArpSenderProtocolAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { + *x = PatternFlowArpSenderProtocolAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1038] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpSenderProtocolAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1038] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpSenderProtocolAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{666, 0} +} + +type PatternFlowArpTargetHardwareAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) Reset() { + *x = PatternFlowArpTargetHardwareAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1039] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpTargetHardwareAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1039] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpTargetHardwareAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{669, 0} +} + +type PatternFlowArpTargetProtocolAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) Reset() { + *x = PatternFlowArpTargetProtocolAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1040] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpTargetProtocolAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1040] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowArpTargetProtocolAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{672, 0} +} + +type PatternFlowIcmpEchoType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpEchoType_Choice) Reset() { + *x = PatternFlowIcmpEchoType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1041] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90388,13 +91314,13 @@ func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { } } -func (x *PatternFlowIgmpv1Checksum_Generated) String() string { +func (x *PatternFlowIcmpEchoType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum_Generated) ProtoMessage() {} +func (*PatternFlowIcmpEchoType_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1041] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90406,19 +91332,19 @@ func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Checksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 1} +// Deprecated: Use PatternFlowIcmpEchoType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{675, 0} } -type PatternFlowIgmpv1GroupAddress_Choice struct { +type PatternFlowIcmpEchoCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { - *x = PatternFlowIgmpv1GroupAddress_Choice{} +func (x *PatternFlowIcmpEchoCode_Choice) Reset() { + *x = PatternFlowIcmpEchoCode_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1042] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90426,13 +91352,13 @@ func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { } } -func (x *PatternFlowIgmpv1GroupAddress_Choice) String() string { +func (x *PatternFlowIcmpEchoCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddress_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoCode_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1042] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90444,19 +91370,19 @@ func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddress_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddress_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710, 0} +// Deprecated: Use PatternFlowIcmpEchoCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{678, 0} } -type PatternFlowMplsLabel_Choice struct { +type PatternFlowIcmpEchoChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsLabel_Choice) Reset() { - *x = PatternFlowMplsLabel_Choice{} +func (x *PatternFlowIcmpEchoChecksum_Choice) Reset() { + *x = PatternFlowIcmpEchoChecksum_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1043] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90464,13 +91390,13 @@ func (x *PatternFlowMplsLabel_Choice) Reset() { } } -func (x *PatternFlowMplsLabel_Choice) String() string { +func (x *PatternFlowIcmpEchoChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabel_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1043] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90482,19 +91408,19 @@ func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabel_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabel_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713, 0} +// Deprecated: Use PatternFlowIcmpEchoChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{679, 0} } -type PatternFlowMplsTrafficClass_Choice struct { +type PatternFlowIcmpEchoChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsTrafficClass_Choice) Reset() { - *x = PatternFlowMplsTrafficClass_Choice{} +func (x *PatternFlowIcmpEchoChecksum_Generated) Reset() { + *x = PatternFlowIcmpEchoChecksum_Generated{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1044] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90502,13 +91428,13 @@ func (x *PatternFlowMplsTrafficClass_Choice) Reset() { } } -func (x *PatternFlowMplsTrafficClass_Choice) String() string { +func (x *PatternFlowIcmpEchoChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClass_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1044] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90520,19 +91446,19 @@ func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClass_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClass_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716, 0} +// Deprecated: Use PatternFlowIcmpEchoChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{679, 1} } -type PatternFlowMplsBottomOfStack_Choice struct { +type PatternFlowIcmpEchoIdentifier_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { - *x = PatternFlowMplsBottomOfStack_Choice{} +func (x *PatternFlowIcmpEchoIdentifier_Choice) Reset() { + *x = PatternFlowIcmpEchoIdentifier_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1045] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90540,13 +91466,13 @@ func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { } } -func (x *PatternFlowMplsBottomOfStack_Choice) String() string { +func (x *PatternFlowIcmpEchoIdentifier_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStack_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifier_Choice) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1045] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90558,19 +91484,19 @@ func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStack_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStack_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 0} +// Deprecated: Use PatternFlowIcmpEchoIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{682, 0} } -type PatternFlowMplsTimeToLive_Choice struct { +type PatternFlowIcmpEchoSequenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsTimeToLive_Choice) Reset() { - *x = PatternFlowMplsTimeToLive_Choice{} +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpEchoSequenceNumber_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1046] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90578,13 +91504,13 @@ func (x *PatternFlowMplsTimeToLive_Choice) Reset() { } } -func (x *PatternFlowMplsTimeToLive_Choice) String() string { +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLive_Choice) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1046] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90596,2713 +91522,2274 @@ func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLive_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLive_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{722, 0} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{685, 0} } -var File_otg_proto protoreflect.FileDescriptor +type PatternFlowIcmpCommonChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} -var file_otg_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x6f, 0x74, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x6f, 0x74, 0x67, - 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xf0, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x04, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x67, 0x52, 0x04, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x28, - 0x0a, 0x08, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, - 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, - 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, - 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, - 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0b, - 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, - 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x65, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x6f, 0x72, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x31, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x07, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x61, - 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x61, - 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, - 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x61, 0x63, 0x70, 0x22, 0x84, 0x02, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, - 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, - 0x63, 0x70, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x63, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x88, - 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x22, 0x3a, 0x0a, 0x11, 0x4c, 0x61, - 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, - 0x1a, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x67, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xf1, - 0x03, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2f, - 0x0a, 0x11, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x33, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x1a, - 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x54, 0x69, - 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0d, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x20, 0x0a, - 0x1e, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, - 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, - 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, - 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, - 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x22, 0xb9, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, - 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, - 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, - 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, - 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, - 0x75, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x03, 0x52, 0x09, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x4e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x03, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, - 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, - 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, - 0x0a, 0x05, 0x78, 0x38, 0x38, 0x61, 0x38, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, - 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, - 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, - 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, - 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, - 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, - 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, - 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, - 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xcd, - 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, - 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, - 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, - 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, - 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, - 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa5, 0x07, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x31, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, - 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4d, - 0x65, 0x64, 0x69, 0x61, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, - 0x75, 0x6f, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x72, - 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, - 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x04, 0x52, 0x11, 0x69, 0x65, 0x65, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x05, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, - 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, - 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x0f, 0x61, 0x75, - 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x3e, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x07, - 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x95, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x8b, - 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x01, 0x12, 0x14, - 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, - 0x70, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, - 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x73, - 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, - 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, - 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, - 0x5f, 0x32, 0x35, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, - 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x08, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x35, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x09, - 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x32, 0x30, - 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x5f, 0x34, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0c, 0x1a, 0x42, 0x0a, 0x05, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, - 0x0a, 0x06, 0x63, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, - 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x10, 0x03, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, - 0x75, 0x6f, 0x75, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, - 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x89, 0x04, - 0x0a, 0x15, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, - 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x31, 0x30, 0x30, 0x30, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, - 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x31, 0x30, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, - 0x6d, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, - 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x04, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x48, - 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x05, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x73, 0x46, 0x65, 0x63, 0x88, 0x01, 0x01, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, - 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, - 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, - 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x22, 0x89, 0x03, 0x0a, 0x11, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, - 0x2e, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, - 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, - 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x48, - 0x02, 0x52, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x88, 0x01, - 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x48, 0x03, 0x52, 0x09, - 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x88, 0x01, 0x01, 0x1a, 0x45, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x11, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, - 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, - 0x78, 0x10, 0x02, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, - 0x5f, 0x31, 0x71, 0x62, 0x62, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, - 0x30, 0x32, 0x5f, 0x33, 0x78, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, - 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x22, 0xeb, 0x03, 0x0a, 0x11, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, 0x20, - 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x66, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, 0x66, - 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x03, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, - 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x70, 0x66, 0x63, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, - 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x23, - 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, - 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, - 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xcc, 0x02, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x21, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x2d, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x63, 0x61, 0x70, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x63, 0x61, 0x70, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xce, 0x03, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, - 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, - 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, - 0x76, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, 0x48, 0x04, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x59, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, - 0x61, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x04, 0x12, 0x08, - 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x62, 0x69, 0x74, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, - 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6d, - 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x01, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, - 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, - 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, - 0x69, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xf6, 0x07, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x30, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, - 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, - 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x09, 0x52, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0b, - 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0d, 0x52, - 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xa2, - 0x04, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x30, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x3b, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, - 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, 0x52, 0x0a, 0x6e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x09, - 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x48, 0x06, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x64, - 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x07, 0x52, 0x03, 0x64, - 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x64, 0x73, 0x74, 0x22, 0xa7, 0x03, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, - 0x0a, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, - 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, - 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x2b, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, - 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, - 0x02, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x48, 0x03, - 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x73, - 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x67, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0x4f, 0x0a, - 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, - 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xf0, - 0x03, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, - 0x32, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x48, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, - 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, - 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, - 0x61, 0x73, 0x69, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x22, 0x4e, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, - 0x69, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x69, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x69, - 0x64, 0x22, 0x81, 0x08, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x02, 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x3d, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x03, 0x52, - 0x0a, 0x6c, 0x31, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, - 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x04, 0x52, 0x0a, - 0x6c, 0x32, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, - 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x70, - 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x52, 0x12, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x0e, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x61, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x6c, 0x67, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x72, - 0x6c, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x49, 0x0a, 0x0b, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x1a, 0x4d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x08, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x61, - 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x62, 0x0a, 0x06, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x12, - 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x04, 0x6d, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, - 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, - 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x4c, 0x69, - 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x12, 0x36, 0x0a, 0x14, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x78, - 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x56, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x48, - 0x04, 0x52, 0x12, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x74, 0x68, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x22, 0x95, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x6e, - 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x30, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x70, 0x62, 0x30, 0x88, 0x01, 0x01, 0x12, - 0x15, 0x0a, 0x03, 0x70, 0x62, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, - 0x70, 0x62, 0x31, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x32, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x70, 0x62, 0x32, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x70, 0x62, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x70, 0x62, - 0x33, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x04, 0x52, 0x03, 0x70, 0x62, 0x34, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, - 0x62, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x03, 0x70, 0x62, 0x35, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x06, 0x52, 0x03, 0x70, 0x62, 0x36, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x37, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x03, 0x70, 0x62, 0x37, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x31, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x33, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x34, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x35, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x37, - 0x22, 0xf3, 0x01, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, - 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, - 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, - 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, - 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x15, 0x49, 0x73, 0x69, 0x73, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, - 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x75, 0x74, - 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, - 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x41, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, - 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x33, 0x77, 0x61, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x70, 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, - 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x15, 0x70, 0x32, 0x70, 0x48, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, - 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, - 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x75, - 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x18, 0x0a, - 0x16, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, - 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x32, 0x70, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xde, 0x03, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, - 0x65, 0x78, 0x74, 0x72, 0x61, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, - 0x0d, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x54, 0x6f, 0x31, 0x88, 0x01, - 0x01, 0x12, 0x30, 0x0a, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, - 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, - 0x0f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x50, 0x6c, 0x75, 0x73, 0x31, - 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x5f, 0x34, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x34, 0x30, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x07, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x38, 0x30, 0x88, 0x01, 0x01, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, - 0x5f, 0x31, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, - 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x09, 0x49, 0x73, 0x69, 0x73, 0x42, - 0x61, 0x73, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x54, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x65, 0x61, 0x72, - 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x4c, - 0x73, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, - 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xb2, 0x05, 0x0a, - 0x0c, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x35, 0x0a, - 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, - 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, 0x65, 0x61, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x65, 0x61, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x61, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2d, - 0x0a, 0x10, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x73, 0x70, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x0c, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x6c, 0x73, 0x70, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0c, - 0x70, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x0d, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x73, 0x6e, 0x70, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, 0x61, 0x78, - 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x06, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4c, 0x73, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x45, 0x0a, 0x1d, 0x6c, 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, - 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x19, 0x6c, 0x73, 0x70, 0x4d, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, - 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, - 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x73, 0x70, 0x5f, - 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, - 0x74, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x61, - 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x01, 0x52, 0x08, 0x61, - 0x72, 0x65, 0x61, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x02, 0x52, 0x0a, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, - 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, - 0x74, 0x68, 0x22, 0xe9, 0x01, 0x0a, 0x16, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x12, 0x46, 0x0a, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, - 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, - 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, - 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xaf, - 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, - 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, - 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x22, 0x99, 0x01, 0x0a, 0x0e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, - 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x99, 0x01, 0x0a, - 0x0e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x9a, 0x01, 0x0a, 0x0f, 0x4d, 0x41, 0x43, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xaf, 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, - 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, - 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, - 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, - 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xaa, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, - 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x9f, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x93, - 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x62, 0x61, 0x64, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, - 0x23, 0x0a, 0x1f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x33, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, - 0x22, 0xb3, 0x03, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, - 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, - 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, - 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, - 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbd, 0x02, 0x0a, 0x07, 0x53, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x2d, 0x0a, 0x29, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, - 0x20, 0x0a, 0x1c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x73, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, - 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x69, - 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, - 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, - 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, - 0x29, 0x0a, 0x25, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, - 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xe5, 0x04, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0xeb, 0x03, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, - 0x22, 0xdf, 0x03, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x6d, 0x61, - 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x31, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x75, 0x6e, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, - 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, - 0x33, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, - 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, - 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, - 0x12, 0x26, 0x0a, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x68, 0x6f, 0x70, - 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, - 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x30, 0x10, 0x0a, 0x12, 0x23, 0x0a, - 0x1f, 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x70, 0x61, 0x74, 0x68, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x31, - 0x10, 0x0b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x1b, - 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0xec, 0x03, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, - 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x82, 0x03, - 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xf6, 0x02, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, - 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, - 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x32, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x33, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x72, - 0x65, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, - 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x36, 0x10, 0x06, 0x12, 0x32, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, - 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x6f, 0x75, 0x74, 0x5f, - 0x6f, 0x66, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x23, 0x0a, - 0x1f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, - 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, - 0x10, 0x09, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x63, - 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x22, 0x8d, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, - 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, - 0x2e, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, - 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x01, 0x52, 0x08, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x48, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x18, 0x6c, 0x65, 0x61, - 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, - 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x10, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, - 0x76, 0x34, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, - 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, - 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x69, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, - 0x10, 0x02, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, - 0x64, 0x74, 0x68, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x74, 0x77, 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, - 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, - 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x66, 0x45, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, - 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, - 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, - 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, - 0x08, 0x65, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, - 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, - 0x12, 0x0e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, - 0x5d, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2a, 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0xd1, - 0x04, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, - 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, - 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x03, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, - 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, - 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, - 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x0c, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, - 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, - 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, - 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x22, 0x8f, 0x04, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x40, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbc, 0x01, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, - 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x1b, 0x0a, - 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x70, - 0x61, 0x71, 0x75, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x10, 0x05, - 0x12, 0x2a, 0x0a, 0x26, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x06, 0x1a, 0x87, 0x01, 0x0a, - 0x07, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, 0x02, 0x12, - 0x16, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x53, 0x65, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xbe, 0x01, 0x0a, 0x09, 0x41, - 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, +func (x *PatternFlowIcmpCommonChecksum_Choice) Reset() { + *x = PatternFlowIcmpCommonChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1047] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpCommonChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpCommonChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1047] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpCommonChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{686, 0} +} + +type PatternFlowIcmpCommonChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpCommonChecksum_Generated) Reset() { + *x = PatternFlowIcmpCommonChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1048] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpCommonChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpCommonChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1048] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpCommonChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{686, 1} +} + +type PatternFlowIcmpNextFieldsIdentifier_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifier_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1049] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1049] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{689, 0} +} + +type PatternFlowIcmpNextFieldsSequenceNumber_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumber_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1050] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1050] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{692, 0} +} + +type PatternFlowIcmpv6EchoType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoType_Choice) Reset() { + *x = PatternFlowIcmpv6EchoType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1051] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoType_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1051] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{695, 0} +} + +type PatternFlowIcmpv6EchoCode_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoCode_Choice) Reset() { + *x = PatternFlowIcmpv6EchoCode_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1052] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoCode_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoCode_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1052] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{698, 0} +} + +type PatternFlowIcmpv6EchoIdentifier_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) Reset() { + *x = PatternFlowIcmpv6EchoIdentifier_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1053] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoIdentifier_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1053] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{701, 0} +} + +type PatternFlowIcmpv6EchoSequenceNumber_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumber_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1054] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1054] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{704, 0} +} + +type PatternFlowIcmpv6EchoChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) Reset() { + *x = PatternFlowIcmpv6EchoChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1055] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1055] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{705, 0} +} + +type PatternFlowIcmpv6EchoChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) Reset() { + *x = PatternFlowIcmpv6EchoChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1056] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1056] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{705, 1} +} + +type PatternFlowIcmpv6CommonChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) Reset() { + *x = PatternFlowIcmpv6CommonChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1057] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6CommonChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1057] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{706, 0} +} + +type PatternFlowIcmpv6CommonChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) Reset() { + *x = PatternFlowIcmpv6CommonChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1058] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6CommonChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1058] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{706, 1} +} + +type PatternFlowPppAddress_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppAddress_Choice) Reset() { + *x = PatternFlowPppAddress_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1059] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppAddress_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppAddress_Choice) ProtoMessage() {} + +func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1059] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowPppAddress_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddress_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{709, 0} +} + +type PatternFlowPppControl_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppControl_Choice) Reset() { + *x = PatternFlowPppControl_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1060] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppControl_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppControl_Choice) ProtoMessage() {} + +func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1060] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowPppControl_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControl_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{712, 0} +} + +type PatternFlowPppProtocolType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppProtocolType_Choice) Reset() { + *x = PatternFlowPppProtocolType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1061] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppProtocolType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppProtocolType_Choice) ProtoMessage() {} + +func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1061] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowPppProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{715, 0} +} + +type PatternFlowIgmpv1Version_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Version_Choice) Reset() { + *x = PatternFlowIgmpv1Version_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1062] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Version_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Version_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1062] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{718, 0} +} + +type PatternFlowIgmpv1Type_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Type_Choice) Reset() { + *x = PatternFlowIgmpv1Type_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1063] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Type_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Type_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1063] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Type_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Type_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{721, 0} +} + +type PatternFlowIgmpv1Unused_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Unused_Choice) Reset() { + *x = PatternFlowIgmpv1Unused_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1064] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Unused_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Unused_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1064] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Unused_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Unused_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{724, 0} +} + +type PatternFlowIgmpv1Checksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Checksum_Choice) Reset() { + *x = PatternFlowIgmpv1Checksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1065] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Checksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Checksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1065] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Checksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{725, 0} +} + +type PatternFlowIgmpv1Checksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { + *x = PatternFlowIgmpv1Checksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1066] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Checksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Checksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1066] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1Checksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{725, 1} +} + +type PatternFlowIgmpv1GroupAddress_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { + *x = PatternFlowIgmpv1GroupAddress_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1067] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1GroupAddress_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1067] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowIgmpv1GroupAddress_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddress_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{728, 0} +} + +type PatternFlowMplsLabel_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsLabel_Choice) Reset() { + *x = PatternFlowMplsLabel_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1068] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsLabel_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsLabel_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1068] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowMplsLabel_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabel_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{731, 0} +} + +type PatternFlowMplsTrafficClass_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsTrafficClass_Choice) Reset() { + *x = PatternFlowMplsTrafficClass_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1069] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsTrafficClass_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsTrafficClass_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1069] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowMplsTrafficClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{734, 0} +} + +type PatternFlowMplsBottomOfStack_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { + *x = PatternFlowMplsBottomOfStack_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1070] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsBottomOfStack_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsBottomOfStack_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1070] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowMplsBottomOfStack_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStack_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{737, 0} +} + +type PatternFlowMplsTimeToLive_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsTimeToLive_Choice) Reset() { + *x = PatternFlowMplsTimeToLive_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1071] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsTimeToLive_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsTimeToLive_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1071] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowMplsTimeToLive_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLive_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{740, 0} +} + +var File_otg_proto protoreflect.FileDescriptor + +var file_otg_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x6f, 0x74, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x6f, 0x74, 0x67, + 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0xf0, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x04, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x67, 0x52, 0x04, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x28, + 0x0a, 0x08, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, + 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, + 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, + 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x04, + 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0b, + 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, + 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x48, 0x0a, 0x04, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x65, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x31, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x07, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x61, + 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x61, + 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, + 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, + 0x61, 0x63, 0x70, 0x22, 0x84, 0x02, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, + 0x63, 0x70, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x88, + 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x22, 0x3a, 0x0a, 0x11, 0x4c, 0x61, + 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, + 0x1a, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x67, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xf1, + 0x03, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2f, + 0x0a, 0x11, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x41, + 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x1a, + 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x54, 0x69, + 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x54, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0d, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x20, 0x0a, + 0x1e, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, + 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, + 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, + 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, + 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x22, 0xb9, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, + 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, + 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, + 0x75, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, + 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x03, 0x52, 0x09, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x4e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x02, + 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x03, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, + 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, + 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x78, 0x38, 0x38, 0x61, 0x38, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, + 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, + 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, + 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, + 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, + 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, + 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, + 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xcd, + 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x3f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, + 0x6d, 0x61, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x6e, + 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, + 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, + 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, + 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x10, 0x01, 0x12, - 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, - 0x71, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, - 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, - 0x18, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x10, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, - 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, - 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, - 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, - 0x76, 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, - 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x34, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, - 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, - 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x22, 0xed, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x50, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, - 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, - 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, - 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, - 0x63, 0x6d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x54, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, - 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb4, 0x05, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x43, 0x4d, - 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x6d, 0x61, 0x63, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x32, 0x76, - 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x32, 0x76, 0x6e, - 0x69, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x88, 0x01, - 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, - 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x06, 0x61, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xbd, 0x02, - 0x0a, 0x15, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x64, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x2e, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x16, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, - 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, - 0x12, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x64, 0x49, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x72, 0x64, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x51, 0x0a, 0x06, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, - 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, - 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x64, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xdb, 0x01, - 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x07, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x51, 0x0a, 0x06, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa5, 0x07, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x31, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, + 0x75, 0x6f, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x04, 0x52, 0x11, 0x69, 0x65, 0x65, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x05, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, + 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, + 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x06, 0x52, 0x0f, 0x61, 0x75, + 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x3e, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x07, + 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x95, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x8b, + 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x01, 0x12, 0x14, + 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, + 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, + 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x67, 0x62, + 0x70, 0x73, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, + 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x5f, 0x32, 0x35, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x08, 0x12, 0x11, 0x0a, + 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x35, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x09, + 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x67, 0x62, + 0x70, 0x73, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x32, 0x30, + 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x5f, 0x34, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0c, 0x1a, 0x42, 0x0a, 0x05, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x63, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, + 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x10, 0x03, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, + 0x75, 0x6f, 0x75, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, + 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0x89, 0x04, + 0x0a, 0x15, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, + 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x31, 0x30, 0x30, 0x30, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, + 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x31, 0x30, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, + 0x6d, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, + 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x04, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x48, + 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x05, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x73, 0x46, 0x65, 0x63, 0x88, 0x01, 0x01, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, + 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, + 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x22, 0x89, 0x03, 0x0a, 0x11, 0x4c, 0x61, + 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, + 0x2e, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x3f, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, + 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, + 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x48, + 0x02, 0x52, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x48, 0x03, 0x52, 0x09, + 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x88, 0x01, 0x01, 0x1a, 0x45, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x11, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, + 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, + 0x78, 0x10, 0x02, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, + 0x5f, 0x31, 0x71, 0x62, 0x62, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, + 0x30, 0x32, 0x5f, 0x33, 0x78, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, + 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x22, 0xeb, 0x03, 0x0a, 0x11, 0x4c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, 0x20, + 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x66, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, 0x66, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x03, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, + 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x33, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x70, 0x66, 0x63, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, + 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, + 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, + 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xcc, 0x02, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x21, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x2d, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x63, 0x61, 0x70, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x63, 0x61, 0x70, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xce, 0x03, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, + 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, + 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, + 0x76, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, 0x48, 0x04, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, + 0x76, 0x36, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x59, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, + 0x61, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x04, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x62, 0x69, 0x74, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6d, + 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x01, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x22, 0xf0, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, + 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x03, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, + 0x69, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xf6, 0x07, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x30, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, + 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, + 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x09, 0x52, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0b, + 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x0d, 0x52, + 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xa2, + 0x04, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x30, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x3b, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, + 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x04, 0x52, 0x0a, 0x6e, + 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x09, + 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x48, 0x06, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x64, + 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x07, 0x52, 0x03, 0x64, + 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x64, 0x73, 0x74, 0x22, 0xa7, 0x03, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, + 0x0a, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x48, 0x01, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, + 0x02, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x28, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x48, 0x03, + 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x73, + 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x67, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0x4f, 0x0a, + 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, + 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xf0, + 0x03, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, + 0x32, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x48, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, + 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, + 0x61, 0x73, 0x69, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x22, 0x4e, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, + 0x69, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x69, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x69, + 0x64, 0x22, 0x81, 0x08, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x02, 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x03, 0x52, + 0x0a, 0x6c, 0x31, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, + 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x04, 0x52, 0x0a, + 0x6c, 0x32, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, + 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x70, + 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x52, 0x12, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x0e, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x05, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x6c, 0x67, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x72, + 0x6c, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x49, 0x0a, 0x0b, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x1a, 0x4d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x08, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x61, + 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x62, 0x0a, 0x06, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x12, + 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x04, 0x6d, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, + 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0x9c, 0x03, 0x0a, 0x0b, 0x4c, 0x69, + 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x12, 0x36, 0x0a, 0x14, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x78, + 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x56, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x48, + 0x04, 0x52, 0x12, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x74, 0x68, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x22, 0x95, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x6e, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x30, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x70, 0x62, 0x30, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x70, 0x62, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, + 0x70, 0x62, 0x31, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x32, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x70, 0x62, 0x32, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, + 0x03, 0x70, 0x62, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x70, 0x62, + 0x33, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x03, 0x70, 0x62, 0x34, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, + 0x62, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x03, 0x70, 0x62, 0x35, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x06, 0x52, 0x03, 0x70, 0x62, 0x36, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x37, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x03, 0x70, 0x62, 0x37, 0x88, 0x01, 0x01, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x31, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x33, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x34, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x35, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x37, + 0x22, 0xf3, 0x01, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, + 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, + 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, + 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, + 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x15, 0x49, 0x73, 0x69, 0x73, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, + 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x75, 0x74, + 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, + 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, + 0x75, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x33, 0x77, 0x61, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x70, 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x15, 0x70, 0x32, 0x70, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, + 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, + 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x32, 0x70, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xde, 0x03, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, + 0x0d, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x54, 0x6f, 0x31, 0x88, 0x01, + 0x01, 0x12, 0x30, 0x0a, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, + 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x0f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x50, 0x6c, 0x75, 0x73, 0x31, + 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x5f, 0x34, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x34, 0x30, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x07, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x38, 0x30, 0x88, 0x01, 0x01, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, + 0x5f, 0x31, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, + 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x09, 0x49, 0x73, 0x69, 0x73, 0x42, + 0x61, 0x73, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x54, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x65, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x4c, + 0x73, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, + 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xb2, 0x05, 0x0a, + 0x0c, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x35, 0x0a, + 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, 0x65, 0x61, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x65, 0x61, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0d, 0x61, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2d, + 0x0a, 0x10, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x73, 0x70, 0x52, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x0c, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x6c, 0x73, 0x70, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0c, + 0x70, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0d, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x73, 0x6e, 0x70, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, 0x61, 0x78, + 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x06, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4c, 0x73, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x45, 0x0a, 0x1d, 0x6c, 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, + 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x19, 0x6c, 0x73, 0x70, 0x4d, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, + 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, + 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, + 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x73, 0x70, 0x5f, + 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, + 0x74, 0x22, 0xfe, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x61, + 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x01, 0x52, 0x08, 0x61, + 0x72, 0x65, 0x61, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x48, 0x02, 0x52, 0x0a, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, + 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, + 0x74, 0x68, 0x22, 0xe9, 0x01, 0x0a, 0x16, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x12, 0x46, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x61, 0x75, 0x74, + 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, + 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, - 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, - 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x0b, - 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x68, - 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, - 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x6b, - 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x64, 0x35, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x06, 0x6d, 0x64, 0x35, - 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, - 0x64, 0x35, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x9a, 0x0d, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x43, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, - 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, - 0x52, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x05, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, - 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x07, 0x52, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x6e, 0x56, - 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, - 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, - 0x52, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x1a, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, - 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, - 0x17, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, - 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x10, 0x69, 0x70, 0x76, 0x34, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x70, 0x6c, - 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6d, 0x64, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0d, 0x52, 0x07, 0x69, 0x70, 0x76, - 0x34, 0x4d, 0x64, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, - 0x70, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0e, 0x52, 0x14, 0x69, 0x70, 0x76, 0x34, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x0f, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, - 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, - 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x12, - 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x12, 0x52, 0x10, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x13, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x14, 0x52, 0x07, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x64, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x16, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x15, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, - 0x16, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, - 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, - 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, - 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x17, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x70, 0x6c, 0x73, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, - 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, - 0x70, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x64, 0x74, 0x42, - 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x42, 0x1a, 0x0a, 0x18, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x5f, - 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, - 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x49, 0x70, 0x76, 0x34, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x49, 0x70, 0x76, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x94, 0x07, - 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, + 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xaf, + 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, + 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, + 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, + 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x22, 0x99, 0x01, 0x0a, 0x0e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x99, 0x01, 0x0a, + 0x0e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x9a, 0x01, 0x0a, 0x0f, 0x4d, 0x41, 0x43, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xaf, 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, + 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x63, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, + 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, + 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, + 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x72, 0x46, + 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xaa, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x9f, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x93, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x2e, 0x0a, 0x2a, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, + 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x62, 0x61, 0x64, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, + 0x23, 0x0a, 0x1f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x33, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0xb3, 0x03, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, + 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, + 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, + 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, + 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, + 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbd, 0x02, 0x0a, 0x07, 0x53, + 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xb1, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x2d, 0x0a, 0x29, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, + 0x20, 0x0a, 0x1c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x73, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, + 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x69, + 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, + 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, + 0x29, 0x0a, 0x25, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, + 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, + 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xe5, 0x04, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0xeb, 0x03, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0xdf, 0x03, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x6d, 0x61, + 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x31, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x75, 0x6e, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, + 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x33, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, + 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, + 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, + 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, + 0x12, 0x26, 0x0a, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x68, 0x6f, 0x70, + 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, + 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x30, 0x10, 0x0a, 0x12, 0x23, 0x0a, + 0x1f, 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x31, + 0x10, 0x0b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x1b, + 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, + 0xec, 0x03, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, + 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x82, 0x03, + 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xf6, 0x02, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x2c, 0x0a, 0x28, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, + 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, + 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x32, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x33, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, + 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x36, 0x10, 0x06, 0x12, 0x32, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x6f, 0x75, 0x74, 0x5f, + 0x6f, 0x66, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x23, 0x0a, + 0x1f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, + 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, + 0x10, 0x09, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x63, + 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, + 0x6f, 0x64, 0x65, 0x22, 0x8d, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, + 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, + 0x2e, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x01, 0x52, 0x08, 0x61, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x48, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x18, 0x6c, 0x65, 0x61, + 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, - 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, - 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x22, 0x36, 0x0a, 0x0a, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0x94, 0x07, 0x0a, - 0x0f, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, - 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, - 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x22, 0xca, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, - 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, - 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, - 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x48, 0x08, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, - 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, - 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, - 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, - 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x22, 0xa6, 0x07, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, - 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, 0x52, 0x0d, 0x62, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, - 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x10, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, - 0x12, 0x5c, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x50, - 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, - 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, - 0x12, 0x79, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, - 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0d, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, - 0x74, 0x6c, 0x76, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, - 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x1b, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, - 0x69, 0x6c, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0d, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x2b, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, - 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, - 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x12, 0x5c, 0x0a, 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x4f, - 0x63, 0x74, 0x65, 0x74, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, - 0x69, 0x70, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x73, 0x46, - 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x1a, 0x5b, 0x0a, 0x0e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, - 0x0a, 0x6e, 0x6f, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x12, 0x0a, - 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x10, - 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x03, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, - 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x73, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x4d, 0x0a, 0x17, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x24, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, - 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x12, 0x88, 0x01, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, - 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, - 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, - 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, - 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, - 0x9d, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x03, - 0x12, 0x17, 0x0a, 0x13, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x64, 0x6f, 0x5f, - 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x05, 0x42, - 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xa9, - 0x01, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xd0, 0x08, 0x0a, 0x0e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, - 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x01, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, - 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x43, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x44, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x05, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, - 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x47, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x07, 0x52, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x48, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x08, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x0a, - 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4b, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xab, 0x01, 0x0a, 0x0b, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x64, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, - 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x68, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, - 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, - 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x96, 0x01, - 0x0a, 0x10, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, - 0x02, 0x74, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x63, 0x88, - 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x02, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x74, 0x74, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, - 0x03, 0x5f, 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xf5, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x62, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6e, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, 0x6e, - 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x22, 0x0a, 0x0a, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, - 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, - 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, - 0x5f, 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xed, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, - 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, - 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x01, - 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x02, - 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, - 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x48, 0x02, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0x82, 0x02, - 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, - 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, - 0x64, 0x48, 0x02, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, - 0x69, 0x64, 0x22, 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, - 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, - 0x93, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x03, 0x52, 0x09, - 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, - 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, - 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, - 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, - 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, - 0x69, 0x64, 0x22, 0xab, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x73, 0x72, 0x76, - 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, - 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x02, 0x52, 0x17, - 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, - 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x22, 0xbf, 0x04, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, - 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, - 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, - 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, - 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, - 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, - 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, - 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, - 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, - 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x05, - 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x73, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, - 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x22, 0x96, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, - 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x03, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, - 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, - 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xc9, 0x08, 0x0a, 0x0f, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, - 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, - 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, - 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, - 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x08, 0x52, 0x06, 0x61, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, - 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0e, - 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x63, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x54, 0x6c, 0x76, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, - 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x07, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, - 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, - 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, - 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x48, 0x02, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x48, 0x03, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, - 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, - 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, - 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, - 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, - 0x74, 0x6c, 0x76, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, - 0x0a, 0x23, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, - 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x67, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x4c, 0x6c, 0x67, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x6c, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, - 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xe9, 0x08, 0x0a, 0x09, 0x42, 0x67, - 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, - 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, - 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, - 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x73, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, - 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x48, 0x03, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x63, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, - 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x18, 0x6c, 0x65, 0x61, 0x72, 0x6e, - 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, - 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x34, - 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, - 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x36, - 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x47, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x48, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x69, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, 0x10, 0x02, - 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, - 0x68, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x77, - 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, - 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x8b, 0x05, 0x0a, 0x13, 0x42, - 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, - 0x63, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, - 0x52, 0x0e, 0x63, 0x6f, 0x70, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, - 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x6d, 0x61, - 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x73, 0x50, - 0x65, 0x72, 0x53, 0x72, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x05, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x06, 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, - 0x68, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x19, 0x0a, - 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, - 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, + 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, + 0x0a, 0x10, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, + 0x76, 0x34, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, + 0x0a, 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, + 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, + 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, + 0x10, 0x02, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x74, 0x77, 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, + 0x1d, 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, + 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, + 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, @@ -93329,6484 +93816,6189 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, - 0xcd, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, - 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, - 0x6e, 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, - 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x22, - 0xed, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, - 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, - 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x50, - 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, - 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x36, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, - 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, - 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, - 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, - 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x22, 0x73, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x34, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x36, 0x5f, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, - 0x76, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, - 0x6e, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd2, - 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, - 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x48, 0x01, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x48, 0x02, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, - 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x48, 0x01, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4f, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x48, 0x02, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, - 0x0a, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, - 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, - 0x74, 0x65, 0x70, 0x73, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, - 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, - 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, - 0x65, 0x70, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x36, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, - 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x27, - 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, - 0x6d, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x49, 0x70, 0x76, 0x34, 0x88, - 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, - 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x76, 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, - 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, - 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, - 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, - 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, - 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, - 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0a, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, - 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, - 0x73, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x52, 0x11, 0x6c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcf, 0x05, 0x0a, 0x11, 0x52, 0x73, 0x76, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x12, 0x2f, 0x0a, 0x11, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, - 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x16, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x64, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x73, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, - 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, - 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, - 0x0a, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, - 0x6c, 0x6c, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, - 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, - 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, - 0x19, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, - 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x8c, 0x02, 0x0a, 0x14, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x5f, 0x0a, 0x14, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x70, 0x32, 0x70, - 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x5d, 0x0a, 0x15, 0x70, 0x32, 0x70, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x12, 0x70, 0x32, - 0x70, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, - 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x24, 0x52, 0x73, - 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, - 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x11, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, - 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, - 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x66, - 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x5c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, - 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, - 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x03, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, - 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x78, - 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe8, - 0x05, 0x0a, 0x25, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, - 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, - 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, - 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0b, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, - 0x0a, 0x14, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, - 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x12, - 0x6c, 0x73, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x06, 0x52, 0x10, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x48, 0x07, 0x52, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, - 0x0c, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, - 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x08, 0x52, 0x0b, 0x66, 0x61, 0x73, - 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x65, - 0x72, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x48, 0x09, 0x52, 0x03, 0x65, 0x72, 0x6f, 0x88, 0x01, 0x01, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x73, 0x70, 0x5f, - 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x72, 0x6f, 0x22, 0xd9, 0x06, 0x0a, 0x14, 0x52, 0x73, - 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x12, 0x40, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, - 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, - 0x52, 0x0e, 0x73, 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1c, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x1a, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x6e, - 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x48, 0x09, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, - 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, - 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, - 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x6c, 0x6c, 0x22, 0xf7, 0x02, 0x0a, 0x09, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, - 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x65, - 0x61, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, - 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x12, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x61, 0x6b, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, - 0x6e, 0x69, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xce, 0x04, 0x0a, - 0x0f, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, - 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, - 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, - 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, - 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x03, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, - 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x06, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, - 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x15, 0x6f, 0x6e, 0x65, 0x54, 0x6f, 0x4f, - 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x6c, 0x6c, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, - 0x6e, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x22, 0xd5, 0x02, - 0x0a, 0x07, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x12, 0x58, 0x0a, 0x13, 0x70, 0x72, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, - 0x70, 0x45, 0x72, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x11, 0x70, - 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, - 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x1a, 0x65, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x22, 0x50, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, - 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x5f, 0x69, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc0, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, - 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x61, 0x73, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6f, 0x70, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x2e, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, - 0x52, 0x07, 0x68, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x10, 0x02, 0x1a, 0x39, 0x0a, 0x07, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, - 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xfd, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, - 0x77, 0x12, 0x22, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, - 0x04, 0x74, 0x78, 0x52, 0x78, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, - 0x0a, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x78, 0x52, 0x78, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x78, 0x52, 0x78, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x68, 0x0a, 0x08, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x39, - 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x6d, 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, - 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x22, 0xc0, 0x0a, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, - 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, 0x76, 0x6c, - 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x04, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x05, 0x52, - 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x06, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, - 0x12, 0x32, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x48, 0x07, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x48, 0x08, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x48, 0x09, 0x52, 0x03, 0x74, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, - 0x75, 0x64, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x48, 0x0a, 0x52, 0x03, 0x75, 0x64, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x23, 0x0a, 0x03, 0x67, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x48, 0x0b, 0x52, 0x03, - 0x67, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x48, 0x0c, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x88, 0x01, - 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x48, 0x0d, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, - 0x61, 0x72, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x0e, 0x52, 0x03, 0x61, 0x72, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x48, 0x0f, - 0x52, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x48, 0x10, 0x52, 0x06, 0x69, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x48, 0x11, 0x52, 0x03, 0x70, 0x70, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, - 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x48, 0x12, 0x52, - 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x70, - 0x6c, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x48, 0x13, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x88, - 0x01, 0x01, 0x1a, 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xea, 0x01, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, - 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, - 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, - 0x63, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, - 0x03, 0x67, 0x72, 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, - 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, - 0x61, 0x72, 0x70, 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, - 0x0a, 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, - 0x70, 0x70, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, - 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x64, - 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, - 0x70, 0x76, 0x31, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x32, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x61, 0x72, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, - 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x22, 0x79, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xae, 0x02, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x48, 0x01, - 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, - 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x42, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, - 0x75, 0x65, 0x75, 0x65, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, - 0x22, 0xfe, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, - 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, - 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, - 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, - 0x66, 0x69, 0x48, 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, - 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x70, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, - 0x64, 0x48, 0x03, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, - 0x69, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, - 0x64, 0x22, 0xa7, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, - 0x35, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x03, 0x76, 0x6e, 0x69, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, - 0x48, 0x02, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x03, 0x52, - 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0x9f, 0x09, 0x0a, 0x08, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x01, 0x52, - 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, - 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, - 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, - 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, - 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, - 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, - 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x48, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x48, 0x0b, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x48, 0x0c, 0x52, 0x03, - 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x48, 0x0d, 0x52, 0x03, - 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, - 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xc2, 0x02, - 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, - 0x48, 0x01, 0x52, 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x74, 0x6f, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x48, 0x02, 0x52, 0x03, 0x74, 0x6f, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x73, 0x63, 0x70, 0x48, 0x03, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, - 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x74, - 0x6f, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x10, 0x03, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, - 0x77, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x73, - 0x63, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x12, 0x32, 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x48, 0x00, 0x52, - 0x03, 0x70, 0x68, 0x62, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x63, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x48, 0x01, 0x52, 0x03, 0x65, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x70, 0x68, 0x62, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x63, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x0b, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, - 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, - 0x63, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, - 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0a, - 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, - 0x70, 0x75, 0x74, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, - 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x40, 0x0a, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x48, 0x04, 0x52, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x48, 0x05, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x70, 0x75, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x22, 0xf8, 0x04, - 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, - 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x48, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x68, 0x6f, - 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x05, 0x52, 0x08, 0x68, - 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, - 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, - 0x48, 0x06, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, - 0x48, 0x07, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xbc, 0x09, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, - 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x48, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x48, 0x06, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x32, 0x48, 0x07, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x33, 0x48, 0x08, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, - 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, - 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x48, 0x0a, - 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, - 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x48, 0x0b, 0x52, 0x0b, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x88, 0x01, 0x01, 0x12, 0x4c, - 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x48, 0x0c, 0x52, 0x0b, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, - 0x34, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x35, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xa2, 0x03, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x37, 0x0a, - 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, - 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x4a, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xaa, 0x08, 0x0a, - 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x48, 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, - 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x6b, - 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, - 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, - 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x63, 0x6e, 0x5f, 0x6e, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, - 0x73, 0x48, 0x05, 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x07, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x48, 0x06, 0x52, 0x06, 0x65, 0x63, 0x6e, - 0x43, 0x77, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, - 0x68, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x45, 0x63, 0x68, 0x6f, 0x48, 0x07, 0x52, 0x07, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x88, - 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x48, 0x08, - 0x52, 0x06, 0x63, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, - 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x48, 0x09, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, - 0x6b, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, - 0x48, 0x0a, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x48, 0x0b, 0x52, 0x06, 0x63, 0x74, 0x6c, - 0x52, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, - 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, - 0x79, 0x6e, 0x48, 0x0c, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x48, 0x0d, 0x52, 0x06, 0x63, - 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x48, 0x0e, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, - 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x6e, - 0x75, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x63, - 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x75, - 0x72, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, - 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x73, - 0x79, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xa9, 0x02, 0x0a, 0x07, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, - 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xed, 0x03, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x12, 0x52, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, - 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, - 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x05, - 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x30, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0xd7, 0x08, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, 0x02, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x06, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x03, 0x52, 0x05, 0x65, 0x46, 0x6c, - 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, - 0x67, 0x48, 0x04, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x07, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x05, 0x52, 0x06, 0x70, - 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x06, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x07, - 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x48, 0x08, 0x52, 0x04, 0x74, - 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x48, 0x09, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x0a, 0x52, - 0x0a, 0x6e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x6e, - 0x0a, 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x0b, 0x52, 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, - 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, - 0xdc, 0x02, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x02, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xfe, - 0x05, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x12, 0x3b, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x11, 0x70, 0x69, 0x67, - 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, - 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x01, 0x52, 0x10, 0x70, - 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, - 0x46, 0x6c, 0x61, 0x67, 0x48, 0x02, 0x52, 0x08, 0x74, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, - 0x48, 0x03, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, - 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x48, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, - 0x48, 0x06, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0f, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x07, 0x52, 0x0e, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, - 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x48, 0x08, 0x52, 0x06, 0x73, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, - 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, - 0x72, 0x65, 0x31, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x22, - 0xb8, 0x07, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x12, 0x49, 0x0a, 0x0d, 0x68, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, - 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x4f, 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, - 0x0e, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, - 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x05, 0x52, 0x12, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x48, 0x06, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x5c, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x07, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, - 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, - 0x64, 0x64, 0x72, 0x48, 0x08, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, - 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0xaf, 0x01, 0x0a, 0x08, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x2a, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x48, 0x01, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xa0, 0x03, 0x0a, - 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x35, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, - 0x48, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, - 0x02, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, - 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, - 0xb5, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, 0x38, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, 0x04, 0x65, - 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, - 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xac, 0x03, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, - 0x65, 0x48, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0a, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xf4, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x12, 0x39, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, - 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x03, - 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x3c, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x02, 0x52, - 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x04, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, - 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, - 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, - 0x61, 0x63, 0x6b, 0x48, 0x02, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, - 0x74, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x03, 0x52, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, - 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x22, - 0xa6, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x48, - 0x03, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0c, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x48, 0x04, 0x52, 0x0b, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x59, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, - 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x22, 0x4e, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, - 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, - 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x6d, 0x61, 0x78, 0x22, 0xa9, 0x03, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, - 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, - 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x50, 0x72, 0x65, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, - 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, - 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x6f, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x65, 0x64, 0x22, 0x61, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, - 0x6d, 0x69, 0x78, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, - 0x6d, 0x69, 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6d, - 0x69, 0x78, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, - 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x69, - 0x6d, 0x69, 0x78, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, - 0x65, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, - 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, - 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x02, 0x52, 0x03, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x04, 0x52, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, - 0x62, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x57, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x70, 0x70, 0x73, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, - 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, - 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, - 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, - 0x65, 0x22, 0xdd, 0x03, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, - 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x48, 0x01, 0x52, 0x0c, - 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x3f, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x48, 0x02, 0x52, - 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x29, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x48, - 0x03, 0x52, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x63, - 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, - 0x75, 0x6f, 0x75, 0x73, 0x48, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, - 0x75, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x58, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x66, - 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x09, - 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, - 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, - 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x75, 0x72, - 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, - 0x73, 0x22, 0x64, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, - 0x6f, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, - 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, - 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, - 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, - 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, - 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, - 0x61, 0x70, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, - 0x47, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, - 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, - 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x19, 0x46, 0x6c, - 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, - 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, - 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, - 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, - 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, - 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, - 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x72, 0x78, 0x5f, 0x74, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, - 0x6f, 0x48, 0x02, 0x52, 0x09, 0x72, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x88, 0x01, - 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x48, 0x04, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x52, - 0x0a, 0x16, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x48, 0x05, 0x52, 0x14, 0x70, 0x72, 0x65, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x78, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x22, 0xc6, 0x01, 0x0a, - 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, - 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, - 0x12, 0x0f, 0x0a, 0x0b, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, - 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, - 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, - 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x48, 0x01, 0x52, 0x07, 0x72, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xc1, 0x02, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x78, 0x52, 0x61, 0x74, 0x65, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x18, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, - 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x48, 0x03, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, - 0x6b, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, - 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x22, 0x83, 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, - 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, - 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x87, 0x01, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, - 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x48, 0x00, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, - 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, - 0x6c, 0x22, 0xa3, 0x03, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x36, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, - 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, - 0x48, 0x02, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, - 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, - 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, - 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, - 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, - 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, - 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, - 0x72, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, - 0x6f, 0x72, 0x74, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, - 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6d, - 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, - 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, - 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x4c, 0x6c, 0x64, 0x70, 0x43, - 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0xf4, 0x01, 0x0a, 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x25, - 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x1a, - 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x6f, - 0x77, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, - 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, - 0x3c, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x61, 0x74, - 0x65, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x02, - 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x48, 0x02, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x88, 0x01, 0x01, 0x1a, 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x3c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, - 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x22, - 0xf1, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, - 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x34, - 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x88, 0x01, 0x01, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2a, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xb6, 0x02, 0x0a, - 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x36, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x02, - 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x61, 0x6c, 0x6c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x02, - 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, - 0x6c, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, - 0xa0, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, - 0x10, 0x02, 0x22, 0xc7, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4c, - 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, - 0x74, 0x6f, 0x70, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, - 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x22, 0x81, 0x01, 0x0a, - 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, - 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, - 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x38, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, - 0x64, 0x6d, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, - 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xb4, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, - 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, - 0xbb, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, - 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x76, 0x0a, - 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, - 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xb6, 0x02, - 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, - 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, - 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, - 0x03, 0x62, 0x67, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, - 0x67, 0x70, 0x48, 0x02, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3e, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x62, 0x67, 0x70, 0x22, 0x96, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x34, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, - 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, - 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, - 0xbd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, - 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, - 0xd5, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x43, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, - 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, - 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, - 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, - 0xbd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, - 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, - 0xd5, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x43, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, - 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, - 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, - 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, - 0x8f, 0x03, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6e, - 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, - 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x48, 0x01, 0x52, 0x17, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, - 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x52, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, - 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, - 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x22, 0x8f, 0x08, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, - 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, - 0x01, 0x52, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x12, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, - 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x48, 0x03, 0x52, 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x51, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x05, 0x52, 0x10, - 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x06, - 0x52, 0x17, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x88, 0x01, 0x01, 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0xb2, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x65, 0x61, - 0x73, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x16, - 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x04, - 0x12, 0x16, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x10, 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x65, 0x61, 0x73, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x22, 0x85, 0x01, 0x0a, 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, - 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xee, 0x05, 0x0a, 0x0e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, - 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, 0x62, 0x67, 0x70, - 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x04, - 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x73, - 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x05, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, - 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x06, 0x52, 0x03, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, - 0x61, 0x63, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x07, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, - 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x48, 0x08, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x30, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x09, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, - 0x01, 0x1a, 0x7c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, - 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, - 0x34, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x08, - 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x10, - 0x06, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x6c, - 0x6c, 0x64, 0x70, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x62, 0x67, 0x70, 0x76, 0x34, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, 0x76, 0x36, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x61, - 0x67, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x6c, 0x64, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0xfa, 0x05, 0x0a, - 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x32, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, - 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, - 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, - 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, - 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, - 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x52, 0x0b, 0x6c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, - 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0xba, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, - 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, - 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, - 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, - 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, - 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, - 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, - 0x0c, 0x22, 0x8b, 0x07, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, - 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, - 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, - 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, - 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, - 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, - 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, - 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, - 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x6d, 0x69, 0x74, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, - 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, - 0xf7, 0x02, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, - 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x97, 0x01, 0x0a, - 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x04, - 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x05, 0x12, 0x12, - 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, - 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, - 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, - 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb9, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, - 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, - 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, - 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, - 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, - 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, - 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x0a, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0b, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x0c, 0x52, 0x07, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, - 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, - 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x49, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x6d, 0x69, 0x74, 0x22, 0x3d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, - 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, - 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x64, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x22, 0x9b, 0x04, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x20, - 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x00, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, - 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, 0x52, 0x0a, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x48, 0x08, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, - 0x6f, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xd4, 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x03, 0x73, 0x74, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x33, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, - 0x78, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x74, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, - 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, - 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, - 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x01, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, - 0x65, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, - 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, - 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, - 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, - 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, - 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, - 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, - 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, - 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, - 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, - 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, - 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, - 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, - 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, - 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, - 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, - 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, - 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, - 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, - 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, - 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, - 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, - 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, - 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, - 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, - 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, - 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, - 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, - 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, - 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, - 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x91, - 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, - 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, - 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, - 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, - 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, - 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, - 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, - 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, - 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, - 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, - 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, - 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, - 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, - 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, - 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, - 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, - 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, - 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, - 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, - 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, - 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, - 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xac, 0x06, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, - 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, - 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, - 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, - 0x08, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, - 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, - 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, - 0x0f, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, - 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, - 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, - 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, - 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x16, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, - 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, - 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, - 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x1a, 0x22, 0xcc, 0x0f, 0x0a, 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, - 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x05, 0x52, 0x18, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, - 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, - 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, - 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x08, 0x52, 0x0a, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0e, - 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, - 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, - 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x09, - 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, - 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x0e, 0x52, 0x0c, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, - 0x0d, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x15, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x18, - 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, - 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x0e, 0x6c, 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, - 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, - 0x52, 0x0a, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, - 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x0a, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x18, 0x52, 0x0e, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, - 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, - 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0d, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, - 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, - 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, - 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, - 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, - 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, - 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x22, 0xd4, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, - 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x1a, 0xd5, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, - 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, - 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, - 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, - 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, - 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, - 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, - 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, - 0x48, 0x07, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, - 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, - 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x37, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, - 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, - 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, - 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, - 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, - 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, - 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, - 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6e, 0x67, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, - 0x79, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, - 0x65, 0x79, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0f, 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, - 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, - 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, - 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, - 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, - 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x06, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x53, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, - 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, - 0x52, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, - 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, - 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, - 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, - 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, - 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, - 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, - 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x10, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, - 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, - 0x76, 0x65, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, - 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, - 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, - 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, - 0x73, 0x79, 0x6e, 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, - 0x6e, 0x63, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, - 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, - 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, - 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, - 0x95, 0x02, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x1a, 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, - 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, - 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x06, 0x22, 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, - 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x05, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, - 0x76, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, - 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, - 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, - 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x1a, 0xd5, 0x04, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x22, 0xc5, 0x04, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, - 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, - 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, - 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, - 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, - 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, - 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, - 0x74, 0x78, 0x10, 0x15, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, - 0x16, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, - 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, - 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, - 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, - 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, - 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, - 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, - 0x18, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, - 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, - 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, - 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, - 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, - 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, - 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, - 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, - 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, - 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, - 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, - 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, - 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, - 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, - 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x0b, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, - 0x72, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, - 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, - 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, - 0x74, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, - 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x0a, - 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, - 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, - 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x72, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, - 0x5f, 0x74, 0x78, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, - 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, - 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x5f, 0x74, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x1a, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x1b, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, - 0x1d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1c, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x78, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x5f, 0x74, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, - 0x74, 0x68, 0x52, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, - 0x52, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x5f, 0x75, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, - 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, - 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, - 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, - 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, - 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, - 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x72, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, - 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x74, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, - 0x78, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x74, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, - 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x05, 0x0a, 0x0d, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x0d, - 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x42, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x03, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x04, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, 0x52, 0x0d, 0x6c, 0x6c, 0x64, - 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, - 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x08, 0x72, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, - 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, - 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, - 0x0e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, - 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, - 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x67, 0x70, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x73, 0x76, - 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, - 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, - 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, - 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, - 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, - 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, - 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x24, 0x0a, 0x0e, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, - 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, - 0x0a, 0x14, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, - 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, - 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x1a, 0x4c, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, - 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, - 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, - 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, - 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, - 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, - 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, - 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, + 0x5d, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2a, 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0xd1, + 0x04, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, + 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, + 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, + 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x03, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, + 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, - 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, - 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, - 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xe5, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, - 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, - 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, - 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, - 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, - 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, - 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, - 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, - 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xe5, 0x05, 0x0a, 0x19, 0x42, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, - 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, - 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, - 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, - 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, - 0x72, 0x22, 0xca, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, - 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, - 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, - 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, - 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, - 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, - 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, - 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, - 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0f, 0x69, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x7a, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, - 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x04, 0x0a, - 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, - 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, - 0x73, 0x70, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x64, 0x75, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x66, - 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x02, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x70, 0x64, - 0x75, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x04, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x54, 0x6c, 0x76, 0x73, 0x48, 0x06, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x88, 0x01, - 0x01, 0x1a, 0x3c, 0x0a, 0x07, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, - 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, - 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x64, 0x75, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, - 0x12, 0x4f, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, - 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x73, 0x12, 0x68, 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, - 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, - 0x76, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, - 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, - 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, - 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, - 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, - 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, - 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, - 0x76, 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, - 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, - 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, - 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, - 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, - 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, - 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, - 0x69, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, - 0x4e, 0x0a, 0x18, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, - 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, - 0x56, 0x0a, 0x20, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x65, 0x73, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, - 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, - 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, - 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, - 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, - 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, - 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, - 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x54, 0x6c, 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xe1, - 0x03, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, - 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x04, - 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, - 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x65, 0x73, 0x22, 0xf0, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, - 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, - 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x05, - 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, - 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, - 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, - 0x61, 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, - 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x22, 0xd9, 0x0a, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, - 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, - 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, - 0x52, 0x0d, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x24, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, - 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, - 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, - 0x0a, 0x17, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x0d, 0x52, 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, - 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, - 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, - 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, - 0x61, 0x73, 0x10, 0x07, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, - 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, - 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, - 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, - 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, - 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, - 0x07, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, - 0x01, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, - 0x75, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x22, 0xb3, 0x03, 0x0a, 0x13, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x01, 0x52, 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, - 0x64, 0x67, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, - 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, - 0x6f, 0x63, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, - 0x12, 0x0d, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, - 0x09, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, - 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, - 0x6c, 0x79, 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, - 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, - 0x0a, 0x11, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, - 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x6c, - 0x73, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x03, 0x6c, - 0x73, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x12, 0x27, - 0x0a, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, - 0x6f, 0x52, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x73, 0x70, 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, - 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, - 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, - 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, - 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, - 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, - 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, - 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, - 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, - 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, - 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, - 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x61, 0x73, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, - 0x0e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x9b, 0x04, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, - 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, - 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, - 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, - 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, - 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, - 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, - 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd6, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, - 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, - 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, - 0x70, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, - 0x67, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, - 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8c, 0x04, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x6e, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, + 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, + 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x0c, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, + 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, + 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb4, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, - 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, - 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, + 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, + 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x22, 0x8f, 0x04, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x40, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbc, 0x01, + 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, - 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, - 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, - 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0xa0, 0x04, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, - 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, - 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, - 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, - 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, - 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x52, 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, - 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x12, 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, + 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x1b, 0x0a, + 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, + 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x70, + 0x61, 0x71, 0x75, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x10, 0x05, + 0x12, 0x2a, 0x0a, 0x26, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x06, 0x1a, 0x87, 0x01, 0x0a, + 0x07, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, 0x02, 0x12, + 0x16, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x53, 0x65, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xbe, 0x01, 0x0a, 0x09, 0x41, + 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x10, 0x01, 0x12, + 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, + 0x71, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, + 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, + 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, + 0x18, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x10, + 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, + 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, + 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, + 0x76, 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, + 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x34, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, + 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, + 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x22, 0xed, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, + 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, + 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, + 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, + 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, - 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, - 0x63, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, - 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, - 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, - 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, - 0x70, 0x75, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, - 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, + 0x63, 0x6d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x54, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xb4, 0x05, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x43, 0x4d, + 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x32, 0x76, + 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x32, 0x76, 0x6e, + 0x69, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, + 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x06, 0x61, + 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xbd, 0x02, + 0x0a, 0x15, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x64, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x2e, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x16, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, + 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, + 0x12, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x64, 0x49, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x72, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x51, 0x0a, 0x06, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, + 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, + 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x64, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xdb, 0x01, + 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x07, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, + 0x51, 0x0a, 0x06, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, + 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, + 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x0b, + 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x68, + 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, + 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x6b, + 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, + 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x64, 0x35, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x06, 0x6d, 0x64, 0x35, + 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, + 0x64, 0x35, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0x9a, 0x0d, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x43, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, + 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, + 0x52, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x05, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, + 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x07, 0x52, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x6e, 0x56, + 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, + 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, + 0x52, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x1a, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, + 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, + 0x17, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, + 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x10, 0x69, 0x70, 0x76, 0x34, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x70, 0x6c, + 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6d, 0x64, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0d, 0x52, 0x07, 0x69, 0x70, 0x76, + 0x34, 0x4d, 0x64, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, + 0x70, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0e, 0x52, 0x14, 0x69, 0x70, 0x76, 0x34, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x0f, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, + 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x12, + 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x12, 0x52, 0x10, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x13, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x14, 0x52, 0x07, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x64, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x15, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, + 0x16, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, + 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x17, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x70, 0x6c, 0x73, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, + 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, + 0x70, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x64, 0x74, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x5f, + 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, + 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x49, 0x70, 0x76, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0xe2, 0x07, + 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, + 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, + 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x22, 0x36, 0x0a, 0x0a, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf4, 0x09, 0x0a, 0x14, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, + 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x16, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x78, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x02, 0x52, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, + 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x04, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, + 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x05, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x79, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x48, 0x06, 0x52, 0x19, + 0x6e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, + 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, + 0x65, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0xe7, + 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xdc, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, + 0x18, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, + 0x70, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, + 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, + 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, + 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, + 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, + 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x80, 0x04, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, + 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x71, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x12, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, + 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, + 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0x8c, + 0x04, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x48, 0x02, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbf, 0x01, + 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, + 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, + 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x22, 0x80, 0x04, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x14, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, + 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x48, 0x01, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x79, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, + 0x9b, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x61, + 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xde, 0x03, + 0x0a, 0x28, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, - 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, - 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, - 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, - 0x65, 0x74, 0x61, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, - 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, - 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, - 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, + 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x48, 0x01, 0x52, + 0x0c, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x74, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, + 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x14, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x64, + 0x0a, 0x2f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, + 0x63, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, + 0x61, 0x63, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xc4, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x48, 0x01, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x39, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x3a, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6e, + 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x62, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xed, 0x02, 0x0a, + 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x7a, 0x0a, 0x16, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, + 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x48, 0x01, 0x52, 0x14, + 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xcc, 0x01, 0x0a, + 0x1e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2a, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe2, 0x07, 0x0a, 0x0f, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, + 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, + 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, - 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, - 0x73, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, - 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, - 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x22, 0xca, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, + 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, + 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, + 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, + 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, + 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, + 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, + 0x08, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, + 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, + 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, + 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x07, + 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, + 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x12, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, + 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, + 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x05, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, + 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, + 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, + 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, + 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, + 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0d, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x12, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x5c, + 0x0a, 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, + 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x4f, 0x63, 0x74, 0x65, + 0x74, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x69, 0x70, 0x76, + 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, + 0x5b, 0x0a, 0x0e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x49, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6e, 0x6f, + 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x6f, + 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x02, 0x12, 0x0c, + 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x03, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, + 0x5f, 0x73, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x4d, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x0e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x24, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x12, 0x88, 0x01, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x9d, 0x01, 0x0a, + 0x17, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x65, + 0x6e, 0x6c, 0x70, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, + 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x03, 0x12, 0x17, 0x0a, + 0x13, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, + 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x05, 0x42, 0x1d, 0x0a, 0x1b, + 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xa9, 0x01, 0x0a, 0x12, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xd0, 0x08, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x48, 0x00, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, + 0x01, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x02, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x43, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x44, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, + 0x05, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x47, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x07, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x48, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x48, 0x08, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, + 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x0a, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x4b, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xab, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, + 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, 0x05, 0x12, 0x0a, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, + 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, 0x09, 0x12, 0x0a, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x6a, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x12, + 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, + 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, + 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x74, 0x74, 0x6c, 0x22, 0xf5, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, + 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x62, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6e, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x66, + 0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x09, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x01, 0x0a, 0x19, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x13, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x74, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x03, 0x74, + 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x63, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, + 0x74, 0x6c, 0x22, 0xed, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, + 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x17, 0x73, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, + 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x02, 0x52, 0x09, 0x73, + 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, + 0x02, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, + 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, + 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0x82, 0x02, 0x0a, 0x19, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x02, + 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, + 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, + 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, 0x93, 0x03, 0x0a, + 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x47, + 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, + 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, + 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x03, 0x52, 0x09, 0x73, 0x72, 0x4d, + 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, + 0x69, 0x64, 0x22, 0xea, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x12, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x73, 0x72, 0x5f, + 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, + 0x6c, 0x73, 0x53, 0x69, 0x64, 0x48, 0x01, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x22, + 0xab, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, + 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x02, 0x52, 0x17, 0x73, 0x72, 0x76, + 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xbf, 0x04, + 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, + 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, + 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, + 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, + 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x48, 0x05, 0x52, 0x17, 0x73, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, + 0x96, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, + 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2e, + 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, + 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x71, + 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x48, 0x03, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x73, 0x72, + 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x22, 0xc9, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, + 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x12, + 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, + 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x06, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x07, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x08, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x65, 0x78, 0x74, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x07, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x17, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, + 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x00, + 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, + 0x02, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x03, 0x52, + 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x04, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, + 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x05, 0x52, + 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x88, 0x01, 0x01, 0x12, 0x79, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, + 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x48, 0x06, 0x52, 0x1d, 0x65, + 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x07, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, + 0x74, 0x6c, 0x76, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x42, 0x25, 0x0a, 0x23, 0x5f, + 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, + 0x6c, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xe6, 0x01, + 0x0a, 0x12, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x47, 0x72, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, + 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6c, 0x67, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x6c, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xe9, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x36, + 0x50, 0x65, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, 0x70, 0x6e, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x33, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, + 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x61, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, + 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x63, + 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x18, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x34, 0x5f, + 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x34, 0x53, 0x72, 0x74, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x36, 0x5f, + 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x36, 0x53, 0x72, 0x74, + 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, + 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x48, 0x05, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x62, 0x67, + 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, 0x10, 0x02, 0x1a, 0x3b, 0x0a, + 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x2a, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, + 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x8b, 0x05, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x56, + 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, + 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, + 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x11, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, + 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0e, 0x63, + 0x6f, 0x70, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, + 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, + 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x73, 0x50, 0x65, 0x72, 0x53, + 0x72, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, + 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x05, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, + 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, + 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x64, + 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x42, 0x23, + 0x0a, 0x21, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x84, 0x05, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, + 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, + 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, 0x12, + 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, + 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, 0x69, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x65, 0x73, + 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x22, 0x3a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xcd, 0x01, 0x0a, + 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x12, 0x3b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, + 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x09, 0x65, + 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x48, 0x01, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, + 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x22, 0xed, 0x07, 0x0a, + 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x4e, + 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x62, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x57, + 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, 0x73, 0x69, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, + 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x61, + 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x13, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, + 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x48, 0x03, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, + 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, + 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x61, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x48, 0x04, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xe2, 0x01, 0x0a, + 0x1c, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, + 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x4d, + 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, 0x61, 0x63, 0x49, + 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, + 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x22, 0x73, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x36, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x36, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, + 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x0d, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x29, 0x0a, + 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x76, 0x6e, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x01, + 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x02, 0x52, + 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x22, 0xee, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, + 0x01, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, + 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x48, 0x02, + 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3d, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, + 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, + 0x73, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, + 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x74, + 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, + 0x22, 0xb1, 0x01, 0x0a, 0x36, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, + 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x4d, 0x61, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, + 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, + 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, + 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, + 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, + 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, + 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, + 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, + 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, 0x73, 0x70, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x52, 0x11, 0x6c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcf, 0x05, 0x0a, 0x11, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, + 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x16, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0a, 0x73, 0x65, + 0x6e, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x06, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0d, 0x68, + 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x11, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x1b, 0x0a, + 0x19, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, + 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x6e, 0x64, + 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x8c, 0x02, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5f, 0x0a, + 0x14, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x48, 0x00, 0x52, 0x11, 0x70, 0x32, 0x70, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5d, + 0x0a, 0x15, 0x70, 0x32, 0x70, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x12, 0x70, 0x32, 0x70, 0x49, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x24, 0x52, 0x73, 0x76, 0x70, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, + 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, + 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, + 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x2e, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x46, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x11, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x5c, + 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, + 0x6c, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x03, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe8, 0x05, 0x0a, 0x25, + 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, + 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0b, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6c, + 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x12, 0x6c, 0x73, 0x70, + 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x06, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x48, 0x07, + 0x52, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0c, 0x66, 0x61, + 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, + 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x08, 0x52, 0x0b, 0x66, 0x61, 0x73, 0x74, 0x52, 0x65, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x65, 0x72, 0x6f, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x45, 0x72, 0x6f, 0x48, 0x09, 0x52, 0x03, 0x65, 0x72, 0x6f, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, + 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, + 0x70, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x65, 0x72, 0x6f, 0x22, 0xd9, 0x06, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x40, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, + 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x03, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, + 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0e, 0x73, + 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x45, 0x0a, 0x1c, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x1a, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x6e, 0x6f, 0x64, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x48, 0x09, + 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, + 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, + 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x5f, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1f, 0x0a, + 0x1d, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, + 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, + 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x22, + 0xf7, 0x02, 0x0a, 0x09, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x2f, 0x0a, + 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x65, 0x61, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, + 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xce, 0x04, 0x0a, 0x0f, 0x52, 0x73, + 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, + 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x70, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, + 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, + 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x06, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x19, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x15, 0x6f, 0x6e, 0x65, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x17, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x08, 0x52, 0x15, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, + 0x0a, 0x18, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x07, 0x52, + 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x12, 0x58, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, + 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x49, 0x70, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x11, 0x70, 0x72, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x73, 0x75, + 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x1a, 0x65, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x22, 0x50, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x10, 0x0a, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x10, + 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, + 0x73, 0x65, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xc0, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, + 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, + 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x07, 0x68, + 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x02, 0x1a, 0x39, 0x0a, 0x07, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, 0x02, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, + 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xfd, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, + 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, 0x04, 0x74, 0x78, + 0x52, 0x78, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x65, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, + 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, + 0x52, 0x78, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, + 0x78, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, + 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x68, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x72, + 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, + 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, + 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x04, 0x4d, + 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x6d, 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, + 0x5f, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, + 0xc0, 0x0a, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, 0x08, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x76, 0x6c, + 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x48, 0x04, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x48, 0x06, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, + 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x48, 0x07, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x48, 0x08, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x48, + 0x09, 0x52, 0x03, 0x74, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x75, 0x64, 0x70, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x55, 0x64, 0x70, 0x48, 0x0a, 0x52, 0x03, 0x75, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x03, 0x67, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x48, 0x0b, 0x52, 0x03, 0x67, 0x72, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x48, 0x0c, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x48, 0x0d, 0x52, + 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x61, 0x72, 0x70, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x48, 0x0e, 0x52, 0x03, 0x61, 0x72, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x48, 0x0f, 0x52, 0x04, 0x69, + 0x63, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x48, 0x10, 0x52, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x48, + 0x11, 0x52, 0x03, 0x70, 0x70, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x48, 0x12, 0x52, 0x06, 0x69, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x48, 0x13, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x1a, + 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, + 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, + 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x10, + 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x72, + 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, 0x0c, 0x12, 0x09, + 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x72, 0x70, + 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, 0x0a, 0x0a, 0x06, + 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x10, + 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, 0x12, 0x08, 0x0a, + 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, + 0x6c, 0x61, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x64, 0x70, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x67, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x31, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, + 0x72, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x70, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x22, 0x79, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xae, 0x02, 0x0a, + 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x32, 0x0a, + 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, + 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, + 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x22, 0xfe, 0x01, + 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x63, 0x66, 0x69, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x48, + 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x48, 0x02, 0x52, + 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x48, 0x03, + 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x05, + 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x22, 0xa7, + 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x48, 0x02, 0x52, + 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x03, 0x52, 0x09, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0x9f, 0x09, 0x0a, 0x08, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, - 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0b, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4f, + 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x0e, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, + 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x6d, 0x6f, + 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x48, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x0b, + 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x48, 0x0d, 0x52, 0x03, 0x64, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, + 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x10, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x36, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x48, 0x01, 0x52, + 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x48, 0x02, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, + 0x70, 0x48, 0x03, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, + 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x10, + 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, 0x77, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x22, + 0x86, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x12, 0x32, 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x48, 0x00, 0x52, 0x03, 0x70, 0x68, + 0x62, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x48, 0x01, + 0x52, 0x03, 0x65, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x68, 0x62, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x63, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x63, + 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, + 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 0x48, 0x02, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, + 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, 0x0b, 0x72, 0x65, + 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, + 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x48, + 0x04, 0x52, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x05, 0x52, + 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, + 0x75, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x22, 0xf8, 0x04, 0x0a, 0x08, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x41, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x65, 0x6c, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, + 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x48, 0x06, 0x52, + 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x48, 0x07, 0x52, + 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xbc, 0x09, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, + 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x48, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x30, 0x48, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x31, 0x48, 0x06, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x32, 0x48, 0x07, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, + 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x48, + 0x08, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x48, 0x09, 0x52, + 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, + 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x48, 0x0a, 0x52, 0x0b, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x48, 0x0b, 0x52, 0x0b, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x48, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, + 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x36, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x37, 0x22, 0xa2, 0x03, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x03, 0x64, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, + 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x48, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xaa, 0x08, 0x0a, 0x07, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, + 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x73, 0x65, 0x71, + 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, + 0x43, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x48, 0x05, + 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x63, + 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x48, 0x06, 0x52, 0x06, 0x65, 0x63, 0x6e, 0x43, 0x77, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, + 0x6f, 0x48, 0x07, 0x52, 0x07, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x48, 0x08, 0x52, 0x06, 0x63, + 0x74, 0x6c, 0x55, 0x72, 0x67, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, + 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x41, 0x63, 0x6b, 0x48, 0x09, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x88, 0x01, + 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x48, 0x0a, 0x52, + 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, + 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x48, 0x0b, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x52, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x48, + 0x0c, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, + 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x48, 0x0d, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x46, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x48, 0x0e, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, + 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x71, 0x5f, + 0x6e, 0x75, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, + 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x65, + 0x63, 0x68, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, + 0x72, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xa9, 0x02, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x07, + 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x22, 0xed, 0x03, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x12, 0x52, + 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x05, 0x52, 0x09, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x22, 0xd7, 0x08, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x03, 0x52, 0x05, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x04, + 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x05, 0x52, 0x06, 0x70, 0x6e, 0x46, 0x6c, + 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x06, 0x52, + 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x07, 0x52, 0x0d, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x48, 0x08, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, + 0x09, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x0a, 0x52, 0x0a, 0x6e, 0x50, + 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1a, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x0b, 0x52, + 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x11, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1d, 0x0a, + 0x1b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xdc, 0x02, 0x0a, + 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x02, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xfe, 0x05, 0x0a, 0x09, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x11, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, + 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x01, 0x52, 0x10, 0x70, 0x69, 0x67, 0x67, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x3f, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x48, 0x02, 0x52, 0x08, 0x74, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, + 0x12, 0x38, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x48, 0x03, 0x52, + 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x48, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x48, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x48, 0x06, 0x52, + 0x04, 0x74, 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x07, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x73, + 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x48, 0x08, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, + 0x65, 0x32, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x65, 0x69, 0x64, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x22, 0xb8, 0x07, 0x0a, + 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x12, 0x49, 0x0a, 0x0d, 0x68, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, + 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x0e, 0x68, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x4f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x3f, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x05, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x41, 0x64, 0x64, 0x72, 0x48, 0x06, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x48, 0x07, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, + 0x48, 0x08, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0xaf, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, + 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, + 0x04, 0x65, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, + 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xa0, 0x03, 0x0a, 0x0c, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0a, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xb5, 0x01, 0x0a, + 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, 0x38, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, + 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x65, 0x63, 0x68, 0x6f, 0x22, 0xac, 0x03, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x22, 0xf4, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x12, + 0x39, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, + 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, + 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x0a, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, + 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x06, + 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x02, 0x52, 0x06, 0x75, 0x6e, + 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x48, 0x04, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, + 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, + 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, + 0x48, 0x02, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, + 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x22, 0xa6, 0x03, 0x0a, + 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x48, 0x03, 0x52, 0x06, + 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0c, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x48, 0x04, 0x52, 0x0b, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x59, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, + 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x22, 0x4e, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, + 0x22, 0xa9, 0x03, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x70, + 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x65, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, + 0x02, 0x1a, 0x6f, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, + 0x61, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x6d, 0x69, 0x78, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x6d, 0x69, 0x78, + 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, + 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6d, + 0x69, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x69, 0x6d, 0x69, 0x78, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x19, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x01, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x03, + 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, + 0x04, 0x6d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x57, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x73, + 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, + 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, + 0x08, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0xdd, + 0x03, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x48, 0x02, 0x52, 0x0c, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, + 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, + 0x73, 0x48, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x88, + 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, + 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, + 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x22, 0x64, + 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, + 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0b, 0x6e, + 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x91, 0x01, + 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, + 0x72, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, + 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x48, + 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, + 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, + 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, + 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, + 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x05, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, + 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, + 0x87, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x6f, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0b, 0x72, 0x78, 0x5f, 0x74, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x48, 0x02, + 0x52, 0x09, 0x72, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x04, 0x52, + 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x16, 0x70, + 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x54, 0x61, 0x67, 0x73, 0x48, 0x05, 0x52, 0x14, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, + 0x6f, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x78, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, 0x6c, + 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, 0x4d, 0x6f, 0x64, + 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, + 0x0b, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, + 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, + 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01, + 0x52, 0x07, 0x72, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x78, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, + 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc1, 0x02, + 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x6e, 0x6b, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x18, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x03, 0x52, + 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, + 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x83, + 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, 0x04, + 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x10, 0x06, 0x22, 0x87, 0x01, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0xa3, + 0x03, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0a, + 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, + 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x02, 0x52, + 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x04, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, + 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xbd, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, + 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x4f, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, + 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, + 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, + 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x5c, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, + 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, + 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x01, 0x0a, + 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaa, + 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, + 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x25, 0x0a, 0x07, 0x57, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2b, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x48, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x2c, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, + 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x05, 0x66, + 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x3c, 0x0a, 0x0d, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2b, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x02, 0x0a, 0x0c, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x48, 0x02, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, + 0x01, 0x01, 0x1a, 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x0b, 0x0a, + 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x22, 0xf1, 0x01, 0x0a, + 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2b, + 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, + 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x07, 0x63, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x22, 0xd6, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x48, 0x00, + 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xb6, 0x02, 0x0a, 0x0d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x02, 0x52, 0x04, 0x6c, + 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x6c, + 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, + 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x6c, 0x6c, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, + 0x63, 0x70, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xa0, 0x01, 0x0a, + 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, + 0xc7, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4c, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, + 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x22, 0x81, 0x01, 0x0a, 0x10, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x12, 0x36, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x41, 0x6c, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, 0xa3, 0x01, + 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x10, 0x02, 0x22, 0xbf, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, + 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x48, 0x00, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x2c, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaa, 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, - 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, - 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xb4, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, + 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xbb, 0x01, 0x0a, + 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x76, 0x0a, 0x15, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x0e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x37, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, 0x52, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, + 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, 0x62, 0x67, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x48, + 0x02, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3e, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, + 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x62, 0x67, 0x70, 0x22, 0x96, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3f, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, + 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, + 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xbd, 0x01, 0x0a, + 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, + 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, + 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x43, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, + 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, + 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0xbd, 0x01, 0x0a, + 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x36, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, + 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, + 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x43, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, + 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, + 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, + 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0x8f, 0x03, 0x0a, + 0x11, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, + 0x67, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x4b, + 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x19, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, + 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x01, 0x52, + 0x17, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, + 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x52, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, + 0x12, 0x1d, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, + 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x02, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, + 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x8f, + 0x08, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, + 0x63, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x51, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, 0x65, + 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x03, 0x52, + 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, + 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x05, 0x52, 0x10, 0x68, 0x6f, 0x6c, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x67, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x17, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, + 0x01, 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x6f, + 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x04, 0x12, 0x16, 0x0a, + 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, + 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x65, 0x61, 0x73, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x22, 0x85, 0x01, 0x0a, 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xee, 0x05, 0x0a, 0x0e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x66, + 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x04, 0x52, 0x05, 0x62, + 0x67, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, + 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, 0x6c, 0x61, 0x67, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, + 0x52, 0x03, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x07, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x6c, + 0x64, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x08, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, + 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x09, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x7c, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, + 0x6c, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x10, 0x03, + 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, + 0x73, 0x69, 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x10, 0x06, 0x12, 0x08, + 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, + 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, + 0x70, 0x76, 0x34, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, 0x76, 0x36, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x61, 0x67, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6c, 0x64, 0x70, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0xfa, 0x05, 0x0a, 0x0f, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x32, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, + 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, + 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, 0x69, 0x73, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, + 0x6c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, + 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x32, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xba, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, + 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x03, 0x12, + 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x73, 0x76, + 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0b, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, + 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, + 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0c, 0x22, 0x8b, + 0x07, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x63, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x07, 0x63, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, + 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, + 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, + 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, + 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x29, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, + 0x70, 0x65, 0x64, 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x74, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, + 0x65, 0x64, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, + 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xf7, 0x02, 0x0a, + 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x48, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, + 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, + 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, + 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x12, + 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x10, 0x07, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xb9, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x08, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, + 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, + 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x0b, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x0c, 0x52, 0x07, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, + 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x49, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x74, 0x22, 0x3d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, + 0x65, 0x64, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x10, 0x03, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, + 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, + 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x9b, + 0x04, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, + 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x08, + 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, + 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x6f, 0x0a, 0x0d, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd4, 0x01, + 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, + 0x03, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x73, 0x74, + 0x72, 0x88, 0x01, 0x01, 0x1a, 0x33, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, - 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x73, 0x74, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x5f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x6e, 0x73, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, + 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, + 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, + 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, + 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, + 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, + 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, + 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, + 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, + 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, + 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, + 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, + 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, + 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, + 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, + 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, + 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, + 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, + 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x91, 0x04, 0x0a, 0x13, + 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, + 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, + 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, + 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, + 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, + 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, + 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, + 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, + 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, + 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, + 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, + 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, + 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, + 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, + 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x22, 0xac, 0x06, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, 0x0b, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, + 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, + 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, + 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x14, + 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, + 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, + 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x13, 0x0a, + 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x75, 0x70, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x6c, + 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, + 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x11, 0x12, + 0x20, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x6c, + 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, 0x12, 0x14, 0x0a, + 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x10, 0x16, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, + 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, + 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x1a, 0x22, 0xcc, 0x0f, 0x0a, 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, + 0x0d, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x18, + 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, + 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, + 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, + 0x52, 0x0a, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0e, 0x6c, 0x31, 0x50, + 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x0b, 0x52, 0x0e, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x09, 0x6c, 0x31, 0x4c, + 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, + 0x52, 0x0c, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0d, 0x6c, 0x32, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, + 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, + 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x10, 0x52, 0x15, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, + 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x11, 0x52, 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, + 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x18, 0x6c, 0x32, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x14, 0x52, 0x0e, 0x6c, 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x0a, 0x6c, + 0x32, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, + 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, + 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x17, 0x52, 0x0a, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x0e, + 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x53, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x1a, 0x52, 0x0d, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, + 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, + 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, + 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, + 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, + 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, + 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x63, + 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x22, 0xd4, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, + 0xd5, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, + 0xc5, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, + 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x12, 0x0a, + 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, + 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, 0x61, 0x67, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, + 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x09, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, + 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x5f, 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, + 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x6c, + 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x10, 0x03, 0x12, + 0x0c, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, 0x12, 0x0b, 0x0a, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x79, + 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, + 0x10, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x10, + 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x10, + 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, + 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0b, + 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x10, 0x0c, + 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, + 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0e, 0x12, + 0x14, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x75, 0x6d, 0x10, 0x0f, 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, + 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, + 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, + 0x6c, 0x61, 0x63, 0x70, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x3e, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, + 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0f, + 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, 0x52, 0x0f, 0x73, + 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, + 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x08, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, 0x07, + 0x6f, 0x70, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, + 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4b, 0x65, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x75, + 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x10, + 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, + 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, + 0x02, 0x1a, 0x37, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x2c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, 0x0f, 0x53, 0x79, + 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, + 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, + 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, + 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x95, 0x02, 0x0a, + 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, + 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, + 0x82, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x04, + 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, + 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x10, 0x06, 0x22, 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x02, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x72, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x44, + 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, + 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x05, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x55, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, + 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, + 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, 0x73, 0x76, 0x70, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, + 0x04, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, + 0x04, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, + 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x73, + 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0c, + 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, + 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, + 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, + 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0b, 0x12, + 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, + 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, + 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0f, 0x12, 0x12, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, + 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, + 0x74, 0x78, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x5f, 0x72, 0x78, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x72, 0x78, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, + 0x15, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x16, 0x12, 0x0c, + 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, + 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, 0x0a, 0x0b, 0x73, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, 0x0d, 0x0a, 0x09, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, 0x0a, 0x09, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, 0x1c, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, 0x18, 0x0a, 0x14, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, 0x76, 0x70, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, + 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, + 0x70, 0x4c, 0x73, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, + 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, + 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, + 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, + 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, + 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, + 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0b, + 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, + 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x0d, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x0c, 0x70, 0x61, + 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x10, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x5f, 0x74, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x0a, 0x72, 0x65, 0x73, + 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, + 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x12, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0a, + 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x1b, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, 0x1d, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x1c, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, + 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, 0x74, 0x68, 0x52, + 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x1f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x6f, + 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, + 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x73, 0x70, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, + 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, + 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, + 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x5f, 0x74, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, + 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x74, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x05, 0x0a, 0x0d, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, + 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x01, + 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, + 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, + 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x03, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x04, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x73, + 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, + 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, + 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, + 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x67, + 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x6c, 0x64, + 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x0e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, + 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, + 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, + 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, + 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, + 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, + 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x41, + 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, + 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, + 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, + 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, + 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, + 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, + 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x4c, + 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, + 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, 0xba, 0x02, 0x0a, + 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, + 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, + 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, + 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x70, + 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, + 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, + 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x62, + 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe5, + 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, + 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, + 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, + 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, + 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, + 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xe5, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, + 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, + 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, + 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, + 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x08, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, + 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, + 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, + 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, + 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xca, + 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, + 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, + 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, 0x0a, 0x0f, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x37, + 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, + 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x73, + 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x7a, 0x0a, + 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, + 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x69, 0x73, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, + 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x04, 0x0a, 0x0c, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x73, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, + 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, + 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, + 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x70, 0x64, 0x75, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x04, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, + 0x6c, 0x76, 0x73, 0x48, 0x06, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, + 0x0a, 0x07, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, + 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x6c, + 0x76, 0x73, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, 0x6c, + 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x74, + 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, + 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x4f, 0x0a, + 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, 0x73, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x68, + 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1a, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, + 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x22, + 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, + 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, + 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6f, 0x76, 0x65, + 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x6f, + 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4e, 0x0a, 0x18, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x56, 0x0a, 0x20, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, + 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, + 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, + 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, + 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, + 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x22, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, + 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, + 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xe1, 0x03, 0x0a, 0x17, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, + 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x04, 0x52, 0x10, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x88, + 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, + 0x6e, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, + 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, + 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, + 0xf0, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, + 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, + 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, + 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x05, 0x52, 0x10, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x88, + 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, + 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1a, + 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x72, 0x46, + 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, + 0xd9, 0x0a, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6c, 0x64, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0d, 0x63, + 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x06, 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x07, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x70, 0x6f, + 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x0b, 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x15, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, + 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6c, + 0x76, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, + 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, + 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, + 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, + 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, + 0x07, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, + 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x69, 0x72, + 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, + 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, + 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, + 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, 0x65, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, + 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, 0x75, 0x69, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x03, + 0x0a, 0x13, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, + 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, + 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, + 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, + 0x61, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, 0x6f, 0x63, 0x73, + 0x69, 0x73, 0x5f, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, + 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0d, 0x0a, + 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x09, 0x12, + 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x10, + 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, + 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x73, 0x76, + 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x6c, 0x73, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x03, 0x6c, 0x73, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, + 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x65, + 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x52, 0x04, + 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x73, 0x70, 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, + 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, + 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, + 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x70, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, 0x75, 0x70, 0x54, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, + 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, + 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, + 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, + 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, + 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x06, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x73, + 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x0e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, @@ -99814,7 +100006,7 @@ var file_otg_proto_rawDesc = []byte{ 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -99822,180 +100014,279 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, + 0x9b, 0x04, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, + 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x12, 0x44, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, - 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, - 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, + 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, + 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, + 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, + 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, - 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, + 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, + 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, + 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, + 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, + 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, + 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -100005,364 +100296,337 @@ var file_otg_proto_rawDesc = []byte{ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x04, 0x0a, 0x24, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x53, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd6, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, + 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, + 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, + 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, + 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, + 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, + 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x47, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8c, 0x04, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, + 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, + 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x35, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, @@ -100372,49 +100636,155 @@ var file_otg_proto_rawDesc = []byte{ 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xb4, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, + 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, @@ -100424,150 +100794,818 @@ var file_otg_proto_rawDesc = []byte{ 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, + 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, + 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, + 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x37, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa0, 0x04, + 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, + 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, + 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, + 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x87, 0x01, + 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, + 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x12, 0x40, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, + 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, + 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, + 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, - 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, + 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, + 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x4a, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, + 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, + 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, - 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, - 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, + 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, + 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, + 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, + 0x72, 0x79, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, + 0x61, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, + 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -100577,106 +101615,47 @@ var file_otg_proto_rawDesc = []byte{ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9a, - 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xba, 0x04, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x54, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, @@ -100685,240 +101664,46 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, + 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, - 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -100928,94 +101713,654 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, + 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, + 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, + 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, + 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xaa, 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, + 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, - 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, + 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, + 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, + 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, 0x03, - 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, + 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x12, + 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, + 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, + 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, + 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x04, 0x0a, 0x24, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, @@ -101025,789 +102370,462 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, - 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x45, 0x63, 0x68, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, - 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, - 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, - 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, - 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x50, 0x73, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x52, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, - 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x46, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, - 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, - 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, - 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x30, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, - 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, + 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, + 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, @@ -101817,117 +102835,105 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, - 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, - 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, - 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x2c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xba, 0x04, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, @@ -101938,8 +102944,8 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -101948,7 +102954,7 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, @@ -101956,29 +102962,29 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, - 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, @@ -101988,47 +102994,189 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, - 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, - 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, + 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, + 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, + 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, + 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, + 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, + 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, + 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, @@ -102038,244 +103186,237 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, - 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, - 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, - 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, - 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, - 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, - 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, - 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, - 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, + 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, + 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, + 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, + 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x43, 0x77, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, + 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, + 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x55, 0x72, 0x67, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, @@ -102286,7 +103427,7 @@ var file_otg_proto_rawDesc = []byte{ 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, @@ -102294,249 +103435,370 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, - 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, - 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, - 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x12, 0x42, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, + 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, - 0x04, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, + 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, + 0x73, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, + 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, + 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, + 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, + 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, + 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, @@ -102546,106 +103808,118 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, + 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x33, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x59, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -102656,8 +103930,176 @@ var file_otg_proto_rawDesc = []byte{ 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, + 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, + 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, + 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, @@ -102665,8 +104107,8 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, @@ -102674,27 +104116,27 @@ var file_otg_proto_rawDesc = []byte{ 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, @@ -102704,199 +104146,147 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, - 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, - 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x12, - 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, 0x43, 0x68, 0x6f, + 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, @@ -102906,297 +104296,557 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, + 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, - 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, - 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, + 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, + 0x46, 0x6c, 0x61, 0x67, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, + 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, + 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, - 0x65, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, - 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, - 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, + 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, + 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, + 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, - 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, + 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x04, 0x0a, 0x26, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, + 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x04, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, @@ -103206,99 +104856,54 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xd3, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x59, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, @@ -103309,8 +104914,8 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, @@ -103318,7 +104923,7 @@ var file_otg_proto_rawDesc = []byte{ 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, @@ -103327,27 +104932,280 @@ var file_otg_proto_rawDesc = []byte{ 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, + 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, + 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, + 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, + 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, + 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x46, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, + 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, + 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x12, 0x44, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, + 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, + 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, + 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -103357,156 +105215,97 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, + 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, - 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, - 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, - 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, + 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, @@ -103516,147 +105315,95 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, - 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, - 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, + 0x65, 0x32, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, + 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -103666,309 +105413,770 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xf4, 0x02, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, + 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x83, 0x04, 0x0a, 0x1a, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, + 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, + 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, + 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, + 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, + 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, + 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, + 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, - 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, + 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xf4, 0x02, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, + 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, - 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, - 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, - 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, + 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, + 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, + 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x98, 0x01, 0x0a, + 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb0, 0x04, 0x0a, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, + 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, @@ -103980,7 +106188,7 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, @@ -103989,7 +106197,7 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, @@ -103998,10 +106206,10 @@ var file_otg_proto_rawDesc = []byte{ 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, @@ -104009,16 +106217,16 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -104028,50 +106236,154 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x26, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, + 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, @@ -104081,71 +106393,41 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, - 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x52, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, + 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, + 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, + 0x80, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, @@ -104159,453 +106441,378 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x22, 0x80, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, - 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x6f, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, - 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, - 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xee, 0x02, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, - 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, - 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, - 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, + 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x04, 0x0a, 0x14, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, + 0x74, 0x68, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf9, + 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xea, + 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x19, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, + 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, + 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, - 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -104613,284 +106820,335 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x04, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, + 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, + 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, + 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, + 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, - 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, + 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, + 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, + 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, - 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, - 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, + 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x2d, 0x0a, 0x10, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, - 0x53, 0x70, 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, - 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x70, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x31, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x22, 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0x37, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3e, - 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, - 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x22, 0x41, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, - 0x69, 0x6e, 0x67, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, - 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x18, 0x53, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, + 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, + 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, + 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, + 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, + 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x07, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, + 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x37, 0x0a, 0x10, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3e, 0x0a, 0x14, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x16, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, + 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, - 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x32, 0xdf, 0x04, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, - 0x3a, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x15, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x47, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, - 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x32, 0xdf, 0x04, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x09, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6f, 0x74, 0x67, 0x3b, 0x6f, - 0x74, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6f, 0x74, 0x67, 0x3b, 0x6f, 0x74, 0x67, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -104905,8 +107163,8 @@ func file_otg_proto_rawDescGZIP() []byte { return file_otg_proto_rawDescData } -var file_otg_proto_enumTypes = make([]protoimpl.EnumInfo, 305) -var file_otg_proto_msgTypes = make([]protoimpl.MessageInfo, 1047) +var file_otg_proto_enumTypes = make([]protoimpl.EnumInfo, 312) +var file_otg_proto_msgTypes = make([]protoimpl.MessageInfo, 1072) var file_otg_proto_goTypes = []interface{}{ (LagProtocol_Choice_Enum)(0), // 0: otg.LagProtocol.Choice.Enum (LagPortLacp_ActorActivity_Enum)(0), // 1: otg.LagPortLacp.ActorActivity.Enum @@ -104946,2627 +107204,2685 @@ var file_otg_proto_goTypes = []interface{}{ (BgpRouteTarget_RtType_Enum)(0), // 35: otg.BgpRouteTarget.RtType.Enum (BgpV4RouteRange_NextHopMode_Enum)(0), // 36: otg.BgpV4RouteRange.NextHopMode.Enum (BgpV4RouteRange_NextHopAddressType_Enum)(0), // 37: otg.BgpV4RouteRange.NextHopAddressType.Enum - (BgpV6RouteRange_NextHopMode_Enum)(0), // 38: otg.BgpV6RouteRange.NextHopMode.Enum - (BgpV6RouteRange_NextHopAddressType_Enum)(0), // 39: otg.BgpV6RouteRange.NextHopAddressType.Enum - (BgpSrteV4Policy_NextHopMode_Enum)(0), // 40: otg.BgpSrteV4Policy.NextHopMode.Enum - (BgpSrteV4Policy_NextHopAddressType_Enum)(0), // 41: otg.BgpSrteV4Policy.NextHopAddressType.Enum - (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum)(0), // 42: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum - (BgpSrteBindingSubTlv_BindingSidType_Enum)(0), // 43: otg.BgpSrteBindingSubTlv.BindingSidType.Enum - (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum)(0), // 44: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum - (BgpSrteSegment_SegmentType_Enum)(0), // 45: otg.BgpSrteSegment.SegmentType.Enum - (BgpSrteV6Policy_NextHopMode_Enum)(0), // 46: otg.BgpSrteV6Policy.NextHopMode.Enum - (BgpSrteV6Policy_NextHopAddressType_Enum)(0), // 47: otg.BgpSrteV6Policy.NextHopAddressType.Enum - (BgpV6Peer_AsType_Enum)(0), // 48: otg.BgpV6Peer.AsType.Enum - (BgpV6Peer_AsNumberWidth_Enum)(0), // 49: otg.BgpV6Peer.AsNumberWidth.Enum - (BgpV6EthernetSegment_ActiveMode_Enum)(0), // 50: otg.BgpV6EthernetSegment.ActiveMode.Enum - (BgpV6EvpnEvis_Choice_Enum)(0), // 51: otg.BgpV6EvpnEvis.Choice.Enum - (BgpV6EviVxlan_ReplicationType_Enum)(0), // 52: otg.BgpV6EviVxlan.ReplicationType.Enum - (VxlanV4TunnelDestinationIPMode_Choice_Enum)(0), // 53: otg.VxlanV4TunnelDestinationIPMode.Choice.Enum - (VxlanV6TunnelDestinationIPMode_Choice_Enum)(0), // 54: otg.VxlanV6TunnelDestinationIPMode.Choice.Enum - (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum)(0), // 55: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum - (RsvpEro_PrependNeighborIp_Enum)(0), // 56: otg.RsvpEro.PrependNeighborIp.Enum - (RsvpEroSubobject_Type_Enum)(0), // 57: otg.RsvpEroSubobject.Type.Enum - (RsvpEroSubobject_HopType_Enum)(0), // 58: otg.RsvpEroSubobject.HopType.Enum - (FlowTxRx_Choice_Enum)(0), // 59: otg.FlowTxRx.Choice.Enum - (FlowRouter_Mode_Enum)(0), // 60: otg.FlowRouter.Mode.Enum - (FlowHeader_Choice_Enum)(0), // 61: otg.FlowHeader.Choice.Enum - (FlowIpv4Priority_Choice_Enum)(0), // 62: otg.FlowIpv4Priority.Choice.Enum - (FlowIcmp_Choice_Enum)(0), // 63: otg.FlowIcmp.Choice.Enum - (FlowIcmpv6_Choice_Enum)(0), // 64: otg.FlowIcmpv6.Choice.Enum - (FlowSize_Choice_Enum)(0), // 65: otg.FlowSize.Choice.Enum - (FlowSizeWeightPairs_Choice_Enum)(0), // 66: otg.FlowSizeWeightPairs.Choice.Enum - (FlowSizeWeightPairs_Predefined_Enum)(0), // 67: otg.FlowSizeWeightPairs.Predefined.Enum - (FlowRate_Choice_Enum)(0), // 68: otg.FlowRate.Choice.Enum - (FlowDuration_Choice_Enum)(0), // 69: otg.FlowDuration.Choice.Enum - (FlowDelay_Choice_Enum)(0), // 70: otg.FlowDelay.Choice.Enum - (FlowDurationInterBurstGap_Choice_Enum)(0), // 71: otg.FlowDurationInterBurstGap.Choice.Enum - (FlowLatencyMetrics_Mode_Enum)(0), // 72: otg.FlowLatencyMetrics.Mode.Enum - (FlowRxTxRatio_Choice_Enum)(0), // 73: otg.FlowRxTxRatio.Choice.Enum - (EventRequest_Type_Enum)(0), // 74: otg.EventRequest.Type.Enum - (LldpConnection_Choice_Enum)(0), // 75: otg.LldpConnection.Choice.Enum - (LldpChassisId_Choice_Enum)(0), // 76: otg.LldpChassisId.Choice.Enum - (LldpPortId_Choice_Enum)(0), // 77: otg.LldpPortId.Choice.Enum - (LldpChassisMacSubType_Choice_Enum)(0), // 78: otg.LldpChassisMacSubType.Choice.Enum - (LldpPortInterfaceNameSubType_Choice_Enum)(0), // 79: otg.LldpPortInterfaceNameSubType.Choice.Enum - (LldpSystemName_Choice_Enum)(0), // 80: otg.LldpSystemName.Choice.Enum - (Error_Kind_Enum)(0), // 81: otg.Error.Kind.Enum - (ConfigUpdate_Choice_Enum)(0), // 82: otg.ConfigUpdate.Choice.Enum - (FlowsUpdate_PropertyNames_Enum)(0), // 83: otg.FlowsUpdate.PropertyNames.Enum - (ControlState_Choice_Enum)(0), // 84: otg.ControlState.Choice.Enum - (StatePort_Choice_Enum)(0), // 85: otg.StatePort.Choice.Enum - (StateTraffic_Choice_Enum)(0), // 86: otg.StateTraffic.Choice.Enum - (StateProtocol_Choice_Enum)(0), // 87: otg.StateProtocol.Choice.Enum - (StatePortLink_State_Enum)(0), // 88: otg.StatePortLink.State.Enum - (StatePortCapture_State_Enum)(0), // 89: otg.StatePortCapture.State.Enum - (StateTrafficFlowTransmit_State_Enum)(0), // 90: otg.StateTrafficFlowTransmit.State.Enum - (StateProtocolAll_State_Enum)(0), // 91: otg.StateProtocolAll.State.Enum - (StateProtocolRoute_State_Enum)(0), // 92: otg.StateProtocolRoute.State.Enum - (StateProtocolLacp_Choice_Enum)(0), // 93: otg.StateProtocolLacp.Choice.Enum - (StateProtocolLacpAdmin_State_Enum)(0), // 94: otg.StateProtocolLacpAdmin.State.Enum - (ControlAction_Choice_Enum)(0), // 95: otg.ControlAction.Choice.Enum - (ActionResponse_Choice_Enum)(0), // 96: otg.ActionResponse.Choice.Enum - (ActionProtocol_Choice_Enum)(0), // 97: otg.ActionProtocol.Choice.Enum - (ActionResponseProtocol_Choice_Enum)(0), // 98: otg.ActionResponseProtocol.Choice.Enum - (ActionProtocolIpv4_Choice_Enum)(0), // 99: otg.ActionProtocolIpv4.Choice.Enum - (ActionResponseProtocolIpv4_Choice_Enum)(0), // 100: otg.ActionResponseProtocolIpv4.Choice.Enum - (ActionResponseProtocolIpv4PingResponse_Result_Enum)(0), // 101: otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - (ActionProtocolIpv6_Choice_Enum)(0), // 102: otg.ActionProtocolIpv6.Choice.Enum - (ActionResponseProtocolIpv6_Choice_Enum)(0), // 103: otg.ActionResponseProtocolIpv6.Choice.Enum - (ActionResponseProtocolIpv6PingResponse_Result_Enum)(0), // 104: otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - (ActionProtocolBgp_Choice_Enum)(0), // 105: otg.ActionProtocolBgp.Choice.Enum - (ActionProtocolBgpNotification_Choice_Enum)(0), // 106: otg.ActionProtocolBgpNotification.Choice.Enum - (MetricsRequest_Choice_Enum)(0), // 107: otg.MetricsRequest.Choice.Enum - (MetricsResponse_Choice_Enum)(0), // 108: otg.MetricsResponse.Choice.Enum - (PortMetricsRequest_ColumnNames_Enum)(0), // 109: otg.PortMetricsRequest.ColumnNames.Enum - (PortMetric_Link_Enum)(0), // 110: otg.PortMetric.Link.Enum - (PortMetric_Capture_Enum)(0), // 111: otg.PortMetric.Capture.Enum - (PortMetric_Transmit_Enum)(0), // 112: otg.PortMetric.Transmit.Enum - (FlowMetricsRequest_MetricNames_Enum)(0), // 113: otg.FlowMetricsRequest.MetricNames.Enum - (FlowTaggedMetricsFilter_MetricNames_Enum)(0), // 114: otg.FlowTaggedMetricsFilter.MetricNames.Enum - (FlowMetric_Transmit_Enum)(0), // 115: otg.FlowMetric.Transmit.Enum - (FlowMetricTagValue_Choice_Enum)(0), // 116: otg.FlowMetricTagValue.Choice.Enum - (Bgpv4MetricsRequest_ColumnNames_Enum)(0), // 117: otg.Bgpv4MetricsRequest.ColumnNames.Enum - (Bgpv4Metric_SessionState_Enum)(0), // 118: otg.Bgpv4Metric.SessionState.Enum - (Bgpv4Metric_FsmState_Enum)(0), // 119: otg.Bgpv4Metric.FsmState.Enum - (Bgpv6MetricsRequest_ColumnNames_Enum)(0), // 120: otg.Bgpv6MetricsRequest.ColumnNames.Enum - (Bgpv6Metric_SessionState_Enum)(0), // 121: otg.Bgpv6Metric.SessionState.Enum - (Bgpv6Metric_FsmState_Enum)(0), // 122: otg.Bgpv6Metric.FsmState.Enum - (IsisMetricsRequest_ColumnNames_Enum)(0), // 123: otg.IsisMetricsRequest.ColumnNames.Enum - (LagMetricsRequest_ColumnNames_Enum)(0), // 124: otg.LagMetricsRequest.ColumnNames.Enum - (LagMetric_OperStatus_Enum)(0), // 125: otg.LagMetric.OperStatus.Enum - (LacpMetricsRequest_ColumnNames_Enum)(0), // 126: otg.LacpMetricsRequest.ColumnNames.Enum - (LacpMetric_Activity_Enum)(0), // 127: otg.LacpMetric.Activity.Enum - (LacpMetric_Timeout_Enum)(0), // 128: otg.LacpMetric.Timeout.Enum - (LacpMetric_Synchronization_Enum)(0), // 129: otg.LacpMetric.Synchronization.Enum - (LldpMetricsRequest_ColumnNames_Enum)(0), // 130: otg.LldpMetricsRequest.ColumnNames.Enum - (RsvpMetricsRequest_ColumnNames_Enum)(0), // 131: otg.RsvpMetricsRequest.ColumnNames.Enum - (StatesRequest_Choice_Enum)(0), // 132: otg.StatesRequest.Choice.Enum - (StatesResponse_Choice_Enum)(0), // 133: otg.StatesResponse.Choice.Enum - (BgpPrefixStateRequest_PrefixFilters_Enum)(0), // 134: otg.BgpPrefixStateRequest.PrefixFilters.Enum - (BgpPrefixIpv4UnicastFilter_Origin_Enum)(0), // 135: otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - (BgpPrefixIpv6UnicastFilter_Origin_Enum)(0), // 136: otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - (BgpPrefixIpv4UnicastState_Origin_Enum)(0), // 137: otg.BgpPrefixIpv4UnicastState.Origin.Enum - (BgpPrefixIpv6UnicastState_Origin_Enum)(0), // 138: otg.BgpPrefixIpv6UnicastState.Origin.Enum - (ResultBgpCommunity_Type_Enum)(0), // 139: otg.ResultBgpCommunity.Type.Enum - (ResultBgpAsPathSegment_Type_Enum)(0), // 140: otg.ResultBgpAsPathSegment.Type.Enum - (IsisLspState_PduType_Enum)(0), // 141: otg.IsisLspState.PduType.Enum - (IsisLspV4Prefix_RedistributionType_Enum)(0), // 142: otg.IsisLspV4Prefix.RedistributionType.Enum - (IsisLspV4Prefix_OriginType_Enum)(0), // 143: otg.IsisLspV4Prefix.OriginType.Enum - (IsisLspExtendedV4Prefix_RedistributionType_Enum)(0), // 144: otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - (IsisLspV6Prefix_RedistributionType_Enum)(0), // 145: otg.IsisLspV6Prefix.RedistributionType.Enum - (IsisLspV6Prefix_OriginType_Enum)(0), // 146: otg.IsisLspV6Prefix.OriginType.Enum - (LldpNeighborsState_ChassisIdType_Enum)(0), // 147: otg.LldpNeighborsState.ChassisIdType.Enum - (LldpNeighborsState_PortIdType_Enum)(0), // 148: otg.LldpNeighborsState.PortIdType.Enum - (LldpCapabilityState_CapabilityName_Enum)(0), // 149: otg.LldpCapabilityState.CapabilityName.Enum - (RsvpLspState_SessionStatus_Enum)(0), // 150: otg.RsvpLspState.SessionStatus.Enum - (RsvpLspState_LastFlapReason_Enum)(0), // 151: otg.RsvpLspState.LastFlapReason.Enum - (RsvpLspIpv4Ero_Type_Enum)(0), // 152: otg.RsvpLspIpv4Ero.Type.Enum - (PatternFlowEthernetDst_Choice_Enum)(0), // 153: otg.PatternFlowEthernetDst.Choice.Enum - (PatternFlowEthernetSrc_Choice_Enum)(0), // 154: otg.PatternFlowEthernetSrc.Choice.Enum - (PatternFlowEthernetEtherType_Choice_Enum)(0), // 155: otg.PatternFlowEthernetEtherType.Choice.Enum - (PatternFlowEthernetPfcQueue_Choice_Enum)(0), // 156: otg.PatternFlowEthernetPfcQueue.Choice.Enum - (PatternFlowVlanPriority_Choice_Enum)(0), // 157: otg.PatternFlowVlanPriority.Choice.Enum - (PatternFlowVlanCfi_Choice_Enum)(0), // 158: otg.PatternFlowVlanCfi.Choice.Enum - (PatternFlowVlanId_Choice_Enum)(0), // 159: otg.PatternFlowVlanId.Choice.Enum - (PatternFlowVlanTpid_Choice_Enum)(0), // 160: otg.PatternFlowVlanTpid.Choice.Enum - (PatternFlowVxlanFlags_Choice_Enum)(0), // 161: otg.PatternFlowVxlanFlags.Choice.Enum - (PatternFlowVxlanReserved0_Choice_Enum)(0), // 162: otg.PatternFlowVxlanReserved0.Choice.Enum - (PatternFlowVxlanVni_Choice_Enum)(0), // 163: otg.PatternFlowVxlanVni.Choice.Enum - (PatternFlowVxlanReserved1_Choice_Enum)(0), // 164: otg.PatternFlowVxlanReserved1.Choice.Enum - (PatternFlowIpv4Version_Choice_Enum)(0), // 165: otg.PatternFlowIpv4Version.Choice.Enum - (PatternFlowIpv4HeaderLength_Choice_Enum)(0), // 166: otg.PatternFlowIpv4HeaderLength.Choice.Enum - (PatternFlowIpv4TotalLength_Choice_Enum)(0), // 167: otg.PatternFlowIpv4TotalLength.Choice.Enum - (PatternFlowIpv4Identification_Choice_Enum)(0), // 168: otg.PatternFlowIpv4Identification.Choice.Enum - (PatternFlowIpv4Reserved_Choice_Enum)(0), // 169: otg.PatternFlowIpv4Reserved.Choice.Enum - (PatternFlowIpv4DontFragment_Choice_Enum)(0), // 170: otg.PatternFlowIpv4DontFragment.Choice.Enum - (PatternFlowIpv4MoreFragments_Choice_Enum)(0), // 171: otg.PatternFlowIpv4MoreFragments.Choice.Enum - (PatternFlowIpv4FragmentOffset_Choice_Enum)(0), // 172: otg.PatternFlowIpv4FragmentOffset.Choice.Enum - (PatternFlowIpv4TimeToLive_Choice_Enum)(0), // 173: otg.PatternFlowIpv4TimeToLive.Choice.Enum - (PatternFlowIpv4Protocol_Choice_Enum)(0), // 174: otg.PatternFlowIpv4Protocol.Choice.Enum - (PatternFlowIpv4HeaderChecksum_Choice_Enum)(0), // 175: otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - (PatternFlowIpv4HeaderChecksum_Generated_Enum)(0), // 176: otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - (PatternFlowIpv4Src_Choice_Enum)(0), // 177: otg.PatternFlowIpv4Src.Choice.Enum - (PatternFlowIpv4Dst_Choice_Enum)(0), // 178: otg.PatternFlowIpv4Dst.Choice.Enum - (PatternFlowIpv4PriorityRaw_Choice_Enum)(0), // 179: otg.PatternFlowIpv4PriorityRaw.Choice.Enum - (PatternFlowIpv4DscpPhb_Choice_Enum)(0), // 180: otg.PatternFlowIpv4DscpPhb.Choice.Enum - (PatternFlowIpv4DscpEcn_Choice_Enum)(0), // 181: otg.PatternFlowIpv4DscpEcn.Choice.Enum - (PatternFlowIpv4TosPrecedence_Choice_Enum)(0), // 182: otg.PatternFlowIpv4TosPrecedence.Choice.Enum - (PatternFlowIpv4TosDelay_Choice_Enum)(0), // 183: otg.PatternFlowIpv4TosDelay.Choice.Enum - (PatternFlowIpv4TosThroughput_Choice_Enum)(0), // 184: otg.PatternFlowIpv4TosThroughput.Choice.Enum - (PatternFlowIpv4TosReliability_Choice_Enum)(0), // 185: otg.PatternFlowIpv4TosReliability.Choice.Enum - (PatternFlowIpv4TosMonetary_Choice_Enum)(0), // 186: otg.PatternFlowIpv4TosMonetary.Choice.Enum - (PatternFlowIpv4TosUnused_Choice_Enum)(0), // 187: otg.PatternFlowIpv4TosUnused.Choice.Enum - (PatternFlowIpv6Version_Choice_Enum)(0), // 188: otg.PatternFlowIpv6Version.Choice.Enum - (PatternFlowIpv6TrafficClass_Choice_Enum)(0), // 189: otg.PatternFlowIpv6TrafficClass.Choice.Enum - (PatternFlowIpv6FlowLabel_Choice_Enum)(0), // 190: otg.PatternFlowIpv6FlowLabel.Choice.Enum - (PatternFlowIpv6PayloadLength_Choice_Enum)(0), // 191: otg.PatternFlowIpv6PayloadLength.Choice.Enum - (PatternFlowIpv6NextHeader_Choice_Enum)(0), // 192: otg.PatternFlowIpv6NextHeader.Choice.Enum - (PatternFlowIpv6HopLimit_Choice_Enum)(0), // 193: otg.PatternFlowIpv6HopLimit.Choice.Enum - (PatternFlowIpv6Src_Choice_Enum)(0), // 194: otg.PatternFlowIpv6Src.Choice.Enum - (PatternFlowIpv6Dst_Choice_Enum)(0), // 195: otg.PatternFlowIpv6Dst.Choice.Enum - (PatternFlowPfcPauseDst_Choice_Enum)(0), // 196: otg.PatternFlowPfcPauseDst.Choice.Enum - (PatternFlowPfcPauseSrc_Choice_Enum)(0), // 197: otg.PatternFlowPfcPauseSrc.Choice.Enum - (PatternFlowPfcPauseEtherType_Choice_Enum)(0), // 198: otg.PatternFlowPfcPauseEtherType.Choice.Enum - (PatternFlowPfcPauseControlOpCode_Choice_Enum)(0), // 199: otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - (PatternFlowPfcPauseClassEnableVector_Choice_Enum)(0), // 200: otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - (PatternFlowPfcPausePauseClass0_Choice_Enum)(0), // 201: otg.PatternFlowPfcPausePauseClass0.Choice.Enum - (PatternFlowPfcPausePauseClass1_Choice_Enum)(0), // 202: otg.PatternFlowPfcPausePauseClass1.Choice.Enum - (PatternFlowPfcPausePauseClass2_Choice_Enum)(0), // 203: otg.PatternFlowPfcPausePauseClass2.Choice.Enum - (PatternFlowPfcPausePauseClass3_Choice_Enum)(0), // 204: otg.PatternFlowPfcPausePauseClass3.Choice.Enum - (PatternFlowPfcPausePauseClass4_Choice_Enum)(0), // 205: otg.PatternFlowPfcPausePauseClass4.Choice.Enum - (PatternFlowPfcPausePauseClass5_Choice_Enum)(0), // 206: otg.PatternFlowPfcPausePauseClass5.Choice.Enum - (PatternFlowPfcPausePauseClass6_Choice_Enum)(0), // 207: otg.PatternFlowPfcPausePauseClass6.Choice.Enum - (PatternFlowPfcPausePauseClass7_Choice_Enum)(0), // 208: otg.PatternFlowPfcPausePauseClass7.Choice.Enum - (PatternFlowEthernetPauseDst_Choice_Enum)(0), // 209: otg.PatternFlowEthernetPauseDst.Choice.Enum - (PatternFlowEthernetPauseSrc_Choice_Enum)(0), // 210: otg.PatternFlowEthernetPauseSrc.Choice.Enum - (PatternFlowEthernetPauseEtherType_Choice_Enum)(0), // 211: otg.PatternFlowEthernetPauseEtherType.Choice.Enum - (PatternFlowEthernetPauseControlOpCode_Choice_Enum)(0), // 212: otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - (PatternFlowEthernetPauseTime_Choice_Enum)(0), // 213: otg.PatternFlowEthernetPauseTime.Choice.Enum - (PatternFlowTcpSrcPort_Choice_Enum)(0), // 214: otg.PatternFlowTcpSrcPort.Choice.Enum - (PatternFlowTcpDstPort_Choice_Enum)(0), // 215: otg.PatternFlowTcpDstPort.Choice.Enum - (PatternFlowTcpSeqNum_Choice_Enum)(0), // 216: otg.PatternFlowTcpSeqNum.Choice.Enum - (PatternFlowTcpAckNum_Choice_Enum)(0), // 217: otg.PatternFlowTcpAckNum.Choice.Enum - (PatternFlowTcpDataOffset_Choice_Enum)(0), // 218: otg.PatternFlowTcpDataOffset.Choice.Enum - (PatternFlowTcpEcnNs_Choice_Enum)(0), // 219: otg.PatternFlowTcpEcnNs.Choice.Enum - (PatternFlowTcpEcnCwr_Choice_Enum)(0), // 220: otg.PatternFlowTcpEcnCwr.Choice.Enum - (PatternFlowTcpEcnEcho_Choice_Enum)(0), // 221: otg.PatternFlowTcpEcnEcho.Choice.Enum - (PatternFlowTcpCtlUrg_Choice_Enum)(0), // 222: otg.PatternFlowTcpCtlUrg.Choice.Enum - (PatternFlowTcpCtlAck_Choice_Enum)(0), // 223: otg.PatternFlowTcpCtlAck.Choice.Enum - (PatternFlowTcpCtlPsh_Choice_Enum)(0), // 224: otg.PatternFlowTcpCtlPsh.Choice.Enum - (PatternFlowTcpCtlRst_Choice_Enum)(0), // 225: otg.PatternFlowTcpCtlRst.Choice.Enum - (PatternFlowTcpCtlSyn_Choice_Enum)(0), // 226: otg.PatternFlowTcpCtlSyn.Choice.Enum - (PatternFlowTcpCtlFin_Choice_Enum)(0), // 227: otg.PatternFlowTcpCtlFin.Choice.Enum - (PatternFlowTcpWindow_Choice_Enum)(0), // 228: otg.PatternFlowTcpWindow.Choice.Enum - (PatternFlowUdpSrcPort_Choice_Enum)(0), // 229: otg.PatternFlowUdpSrcPort.Choice.Enum - (PatternFlowUdpDstPort_Choice_Enum)(0), // 230: otg.PatternFlowUdpDstPort.Choice.Enum - (PatternFlowUdpLength_Choice_Enum)(0), // 231: otg.PatternFlowUdpLength.Choice.Enum - (PatternFlowUdpChecksum_Choice_Enum)(0), // 232: otg.PatternFlowUdpChecksum.Choice.Enum - (PatternFlowUdpChecksum_Generated_Enum)(0), // 233: otg.PatternFlowUdpChecksum.Generated.Enum - (PatternFlowGreChecksumPresent_Choice_Enum)(0), // 234: otg.PatternFlowGreChecksumPresent.Choice.Enum - (PatternFlowGreReserved0_Choice_Enum)(0), // 235: otg.PatternFlowGreReserved0.Choice.Enum - (PatternFlowGreVersion_Choice_Enum)(0), // 236: otg.PatternFlowGreVersion.Choice.Enum - (PatternFlowGreProtocol_Choice_Enum)(0), // 237: otg.PatternFlowGreProtocol.Choice.Enum - (PatternFlowGreChecksum_Choice_Enum)(0), // 238: otg.PatternFlowGreChecksum.Choice.Enum - (PatternFlowGreChecksum_Generated_Enum)(0), // 239: otg.PatternFlowGreChecksum.Generated.Enum - (PatternFlowGreReserved1_Choice_Enum)(0), // 240: otg.PatternFlowGreReserved1.Choice.Enum - (PatternFlowGtpv1Version_Choice_Enum)(0), // 241: otg.PatternFlowGtpv1Version.Choice.Enum - (PatternFlowGtpv1ProtocolType_Choice_Enum)(0), // 242: otg.PatternFlowGtpv1ProtocolType.Choice.Enum - (PatternFlowGtpv1Reserved_Choice_Enum)(0), // 243: otg.PatternFlowGtpv1Reserved.Choice.Enum - (PatternFlowGtpv1EFlag_Choice_Enum)(0), // 244: otg.PatternFlowGtpv1EFlag.Choice.Enum - (PatternFlowGtpv1SFlag_Choice_Enum)(0), // 245: otg.PatternFlowGtpv1SFlag.Choice.Enum - (PatternFlowGtpv1PnFlag_Choice_Enum)(0), // 246: otg.PatternFlowGtpv1PnFlag.Choice.Enum - (PatternFlowGtpv1MessageType_Choice_Enum)(0), // 247: otg.PatternFlowGtpv1MessageType.Choice.Enum - (PatternFlowGtpv1MessageLength_Choice_Enum)(0), // 248: otg.PatternFlowGtpv1MessageLength.Choice.Enum - (PatternFlowGtpv1Teid_Choice_Enum)(0), // 249: otg.PatternFlowGtpv1Teid.Choice.Enum - (PatternFlowGtpv1SquenceNumber_Choice_Enum)(0), // 250: otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - (PatternFlowGtpv1NPduNumber_Choice_Enum)(0), // 251: otg.PatternFlowGtpv1NPduNumber.Choice.Enum - (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum)(0), // 252: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - (PatternFlowGtpExtensionExtensionLength_Choice_Enum)(0), // 253: otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - (PatternFlowGtpExtensionContents_Choice_Enum)(0), // 254: otg.PatternFlowGtpExtensionContents.Choice.Enum - (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum)(0), // 255: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - (PatternFlowGtpv2Version_Choice_Enum)(0), // 256: otg.PatternFlowGtpv2Version.Choice.Enum - (PatternFlowGtpv2PiggybackingFlag_Choice_Enum)(0), // 257: otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - (PatternFlowGtpv2TeidFlag_Choice_Enum)(0), // 258: otg.PatternFlowGtpv2TeidFlag.Choice.Enum - (PatternFlowGtpv2Spare1_Choice_Enum)(0), // 259: otg.PatternFlowGtpv2Spare1.Choice.Enum - (PatternFlowGtpv2MessageType_Choice_Enum)(0), // 260: otg.PatternFlowGtpv2MessageType.Choice.Enum - (PatternFlowGtpv2MessageLength_Choice_Enum)(0), // 261: otg.PatternFlowGtpv2MessageLength.Choice.Enum - (PatternFlowGtpv2Teid_Choice_Enum)(0), // 262: otg.PatternFlowGtpv2Teid.Choice.Enum - (PatternFlowGtpv2SequenceNumber_Choice_Enum)(0), // 263: otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - (PatternFlowGtpv2Spare2_Choice_Enum)(0), // 264: otg.PatternFlowGtpv2Spare2.Choice.Enum - (PatternFlowArpHardwareType_Choice_Enum)(0), // 265: otg.PatternFlowArpHardwareType.Choice.Enum - (PatternFlowArpProtocolType_Choice_Enum)(0), // 266: otg.PatternFlowArpProtocolType.Choice.Enum - (PatternFlowArpHardwareLength_Choice_Enum)(0), // 267: otg.PatternFlowArpHardwareLength.Choice.Enum - (PatternFlowArpProtocolLength_Choice_Enum)(0), // 268: otg.PatternFlowArpProtocolLength.Choice.Enum - (PatternFlowArpOperation_Choice_Enum)(0), // 269: otg.PatternFlowArpOperation.Choice.Enum - (PatternFlowArpSenderHardwareAddr_Choice_Enum)(0), // 270: otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - (PatternFlowArpSenderProtocolAddr_Choice_Enum)(0), // 271: otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - (PatternFlowArpTargetHardwareAddr_Choice_Enum)(0), // 272: otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - (PatternFlowArpTargetProtocolAddr_Choice_Enum)(0), // 273: otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - (PatternFlowIcmpEchoType_Choice_Enum)(0), // 274: otg.PatternFlowIcmpEchoType.Choice.Enum - (PatternFlowIcmpEchoCode_Choice_Enum)(0), // 275: otg.PatternFlowIcmpEchoCode.Choice.Enum - (PatternFlowIcmpEchoChecksum_Choice_Enum)(0), // 276: otg.PatternFlowIcmpEchoChecksum.Choice.Enum - (PatternFlowIcmpEchoChecksum_Generated_Enum)(0), // 277: otg.PatternFlowIcmpEchoChecksum.Generated.Enum - (PatternFlowIcmpEchoIdentifier_Choice_Enum)(0), // 278: otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - (PatternFlowIcmpEchoSequenceNumber_Choice_Enum)(0), // 279: otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - (PatternFlowIcmpCommonChecksum_Choice_Enum)(0), // 280: otg.PatternFlowIcmpCommonChecksum.Choice.Enum - (PatternFlowIcmpCommonChecksum_Generated_Enum)(0), // 281: otg.PatternFlowIcmpCommonChecksum.Generated.Enum - (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum)(0), // 282: otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum)(0), // 283: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - (PatternFlowIcmpv6EchoType_Choice_Enum)(0), // 284: otg.PatternFlowIcmpv6EchoType.Choice.Enum - (PatternFlowIcmpv6EchoCode_Choice_Enum)(0), // 285: otg.PatternFlowIcmpv6EchoCode.Choice.Enum - (PatternFlowIcmpv6EchoIdentifier_Choice_Enum)(0), // 286: otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum)(0), // 287: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - (PatternFlowIcmpv6EchoChecksum_Choice_Enum)(0), // 288: otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - (PatternFlowIcmpv6EchoChecksum_Generated_Enum)(0), // 289: otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - (PatternFlowIcmpv6CommonChecksum_Choice_Enum)(0), // 290: otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - (PatternFlowIcmpv6CommonChecksum_Generated_Enum)(0), // 291: otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - (PatternFlowPppAddress_Choice_Enum)(0), // 292: otg.PatternFlowPppAddress.Choice.Enum - (PatternFlowPppControl_Choice_Enum)(0), // 293: otg.PatternFlowPppControl.Choice.Enum - (PatternFlowPppProtocolType_Choice_Enum)(0), // 294: otg.PatternFlowPppProtocolType.Choice.Enum - (PatternFlowIgmpv1Version_Choice_Enum)(0), // 295: otg.PatternFlowIgmpv1Version.Choice.Enum - (PatternFlowIgmpv1Type_Choice_Enum)(0), // 296: otg.PatternFlowIgmpv1Type.Choice.Enum - (PatternFlowIgmpv1Unused_Choice_Enum)(0), // 297: otg.PatternFlowIgmpv1Unused.Choice.Enum - (PatternFlowIgmpv1Checksum_Choice_Enum)(0), // 298: otg.PatternFlowIgmpv1Checksum.Choice.Enum - (PatternFlowIgmpv1Checksum_Generated_Enum)(0), // 299: otg.PatternFlowIgmpv1Checksum.Generated.Enum - (PatternFlowIgmpv1GroupAddress_Choice_Enum)(0), // 300: otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - (PatternFlowMplsLabel_Choice_Enum)(0), // 301: otg.PatternFlowMplsLabel.Choice.Enum - (PatternFlowMplsTrafficClass_Choice_Enum)(0), // 302: otg.PatternFlowMplsTrafficClass.Choice.Enum - (PatternFlowMplsBottomOfStack_Choice_Enum)(0), // 303: otg.PatternFlowMplsBottomOfStack.Choice.Enum - (PatternFlowMplsTimeToLive_Choice_Enum)(0), // 304: otg.PatternFlowMplsTimeToLive.Choice.Enum - (*Config)(nil), // 305: otg.Config - (*ConfigOptions)(nil), // 306: otg.ConfigOptions - (*Port)(nil), // 307: otg.Port - (*PortOptions)(nil), // 308: otg.PortOptions - (*Lag)(nil), // 309: otg.Lag - (*LagPort)(nil), // 310: otg.LagPort - (*LagProtocol)(nil), // 311: otg.LagProtocol - (*LagProtocolStatic)(nil), // 312: otg.LagProtocolStatic - (*LagProtocolLacp)(nil), // 313: otg.LagProtocolLacp - (*LagPortLacp)(nil), // 314: otg.LagPortLacp - (*DeviceEthernetBase)(nil), // 315: otg.DeviceEthernetBase - (*DeviceEthernet)(nil), // 316: otg.DeviceEthernet - (*EthernetConnection)(nil), // 317: otg.EthernetConnection - (*DeviceVlan)(nil), // 318: otg.DeviceVlan - (*DeviceIpv4)(nil), // 319: otg.DeviceIpv4 - (*DeviceIpv4Loopback)(nil), // 320: otg.DeviceIpv4Loopback - (*DeviceIpv4GatewayMAC)(nil), // 321: otg.DeviceIpv4GatewayMAC - (*DeviceIpv6)(nil), // 322: otg.DeviceIpv6 - (*DeviceIpv6Loopback)(nil), // 323: otg.DeviceIpv6Loopback - (*DeviceIpv6GatewayMAC)(nil), // 324: otg.DeviceIpv6GatewayMAC - (*Layer1)(nil), // 325: otg.Layer1 - (*Layer1AutoNegotiation)(nil), // 326: otg.Layer1AutoNegotiation - (*Layer1FlowControl)(nil), // 327: otg.Layer1FlowControl - (*Layer1Ieee8023X)(nil), // 328: otg.Layer1Ieee8023x - (*Layer1Ieee8021Qbb)(nil), // 329: otg.Layer1Ieee8021qbb - (*Capture)(nil), // 330: otg.Capture - (*CaptureFilter)(nil), // 331: otg.CaptureFilter - (*CaptureCustom)(nil), // 332: otg.CaptureCustom - (*CaptureField)(nil), // 333: otg.CaptureField - (*CaptureEthernet)(nil), // 334: otg.CaptureEthernet - (*CaptureVlan)(nil), // 335: otg.CaptureVlan - (*CaptureIpv4)(nil), // 336: otg.CaptureIpv4 - (*CaptureIpv6)(nil), // 337: otg.CaptureIpv6 - (*Device)(nil), // 338: otg.Device - (*ProtocolOptions)(nil), // 339: otg.ProtocolOptions - (*DeviceIsisRouter)(nil), // 340: otg.DeviceIsisRouter - (*DeviceIsisMultiInstance)(nil), // 341: otg.DeviceIsisMultiInstance - (*IsisInterface)(nil), // 342: otg.IsisInterface - (*IsisInterfaceLevel)(nil), // 343: otg.IsisInterfaceLevel - (*IsisMT)(nil), // 344: otg.IsisMT - (*LinkStateTE)(nil), // 345: otg.LinkStateTE - (*LinkStatepriorityBandwidths)(nil), // 346: otg.LinkStatepriorityBandwidths - (*IsisInterfaceAuthentication)(nil), // 347: otg.IsisInterfaceAuthentication - (*IsisInterfaceAdvanced)(nil), // 348: otg.IsisInterfaceAdvanced - (*IsisInterfaceLinkProtection)(nil), // 349: otg.IsisInterfaceLinkProtection - (*IsisBasic)(nil), // 350: otg.IsisBasic - (*IsisAdvanced)(nil), // 351: otg.IsisAdvanced - (*IsisAuthentication)(nil), // 352: otg.IsisAuthentication - (*IsisAuthenticationBase)(nil), // 353: otg.IsisAuthenticationBase - (*IsisV4RouteRange)(nil), // 354: otg.IsisV4RouteRange - (*V4RouteAddress)(nil), // 355: otg.V4RouteAddress - (*V6RouteAddress)(nil), // 356: otg.V6RouteAddress - (*MACRouteAddress)(nil), // 357: otg.MACRouteAddress - (*IsisV6RouteRange)(nil), // 358: otg.IsisV6RouteRange - (*DeviceBgpRouter)(nil), // 359: otg.DeviceBgpRouter - (*DeviceBgpMessageHeaderError)(nil), // 360: otg.DeviceBgpMessageHeaderError - (*DeviceBgpOpenMessageError)(nil), // 361: otg.DeviceBgpOpenMessageError - (*DeviceBgpUpdateMessageError)(nil), // 362: otg.DeviceBgpUpdateMessageError - (*DeviceBgpHoldTimerExpired)(nil), // 363: otg.DeviceBgpHoldTimerExpired - (*DeviceBgpFiniteStateMachineError)(nil), // 364: otg.DeviceBgpFiniteStateMachineError - (*DeviceBgpCeaseError)(nil), // 365: otg.DeviceBgpCeaseError - (*DeviceBgpCustomError)(nil), // 366: otg.DeviceBgpCustomError - (*BgpV4Peer)(nil), // 367: otg.BgpV4Peer - (*BgpV4Interface)(nil), // 368: otg.BgpV4Interface - (*BgpV4EthernetSegment)(nil), // 369: otg.BgpV4EthernetSegment - (*BgpEthernetSegmentDfElection)(nil), // 370: otg.BgpEthernetSegmentDfElection - (*BgpRouteAdvanced)(nil), // 371: otg.BgpRouteAdvanced - (*BgpCommunity)(nil), // 372: otg.BgpCommunity - (*BgpExtCommunity)(nil), // 373: otg.BgpExtCommunity - (*BgpAsPath)(nil), // 374: otg.BgpAsPath - (*BgpAsPathSegment)(nil), // 375: otg.BgpAsPathSegment - (*BgpV4EvpnEvis)(nil), // 376: otg.BgpV4EvpnEvis - (*BgpV4EviVxlan)(nil), // 377: otg.BgpV4EviVxlan - (*BgpV4EviVxlanBroadcastDomain)(nil), // 378: otg.BgpV4EviVxlanBroadcastDomain - (*BgpCMacIpRange)(nil), // 379: otg.BgpCMacIpRange - (*BgpRouteDistinguisher)(nil), // 380: otg.BgpRouteDistinguisher - (*BgpRouteTarget)(nil), // 381: otg.BgpRouteTarget - (*BgpAdvanced)(nil), // 382: otg.BgpAdvanced - (*BgpCapability)(nil), // 383: otg.BgpCapability - (*BgpLearnedInformationFilter)(nil), // 384: otg.BgpLearnedInformationFilter - (*BgpV4RouteRange)(nil), // 385: otg.BgpV4RouteRange - (*BgpAddPath)(nil), // 386: otg.BgpAddPath - (*BgpV6RouteRange)(nil), // 387: otg.BgpV6RouteRange - (*BgpSrteV4Policy)(nil), // 388: otg.BgpSrteV4Policy - (*BgpSrteV4TunnelTlv)(nil), // 389: otg.BgpSrteV4TunnelTlv - (*BgpSrteRemoteEndpointSubTlv)(nil), // 390: otg.BgpSrteRemoteEndpointSubTlv - (*BgpSrteColorSubTlv)(nil), // 391: otg.BgpSrteColorSubTlv - (*BgpSrteBindingSubTlv)(nil), // 392: otg.BgpSrteBindingSubTlv - (*BgpSrtePreferenceSubTlv)(nil), // 393: otg.BgpSrtePreferenceSubTlv - (*BgpSrtePolicyPrioritySubTlv)(nil), // 394: otg.BgpSrtePolicyPrioritySubTlv - (*BgpSrtePolicyNameSubTlv)(nil), // 395: otg.BgpSrtePolicyNameSubTlv - (*BgpSrteExplicitNullLabelPolicySubTlv)(nil), // 396: otg.BgpSrteExplicitNullLabelPolicySubTlv - (*BgpSrteSegmentList)(nil), // 397: otg.BgpSrteSegmentList - (*BgpSrteSegment)(nil), // 398: otg.BgpSrteSegment - (*BgpSrteSrMplsSid)(nil), // 399: otg.BgpSrteSrMplsSid - (*BgpSrteSRv6SIDEndpointBehaviorAndStructure)(nil), // 400: otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - (*BgpSrteSegmentATypeSubTlv)(nil), // 401: otg.BgpSrteSegmentATypeSubTlv - (*BgpSrteSegmentBTypeSubTlv)(nil), // 402: otg.BgpSrteSegmentBTypeSubTlv - (*BgpSrteSegmentCTypeSubTlv)(nil), // 403: otg.BgpSrteSegmentCTypeSubTlv - (*BgpSrteSegmentDTypeSubTlv)(nil), // 404: otg.BgpSrteSegmentDTypeSubTlv - (*BgpSrteSegmentETypeSubTlv)(nil), // 405: otg.BgpSrteSegmentETypeSubTlv - (*BgpSrteSegmentFTypeSubTlv)(nil), // 406: otg.BgpSrteSegmentFTypeSubTlv - (*BgpSrteSegmentGTypeSubTlv)(nil), // 407: otg.BgpSrteSegmentGTypeSubTlv - (*BgpSrteSegmentHTypeSubTlv)(nil), // 408: otg.BgpSrteSegmentHTypeSubTlv - (*BgpSrteSegmentITypeSubTlv)(nil), // 409: otg.BgpSrteSegmentITypeSubTlv - (*BgpSrteSegmentJTypeSubTlv)(nil), // 410: otg.BgpSrteSegmentJTypeSubTlv - (*BgpSrteSegmentKTypeSubTlv)(nil), // 411: otg.BgpSrteSegmentKTypeSubTlv - (*BgpSrteV6Policy)(nil), // 412: otg.BgpSrteV6Policy - (*BgpSrteV6TunnelTlv)(nil), // 413: otg.BgpSrteV6TunnelTlv - (*BgpGracefulRestart)(nil), // 414: otg.BgpGracefulRestart - (*BgpV6Peer)(nil), // 415: otg.BgpV6Peer - (*BgpV6Interface)(nil), // 416: otg.BgpV6Interface - (*BgpV6SegmentRouting)(nil), // 417: otg.BgpV6SegmentRouting - (*BgpV6EthernetSegment)(nil), // 418: otg.BgpV6EthernetSegment - (*BgpV6EvpnEvis)(nil), // 419: otg.BgpV6EvpnEvis - (*BgpV6EviVxlan)(nil), // 420: otg.BgpV6EviVxlan - (*BgpV6EviVxlanBroadcastDomain)(nil), // 421: otg.BgpV6EviVxlanBroadcastDomain - (*DeviceVxlan)(nil), // 422: otg.DeviceVxlan - (*VxlanV4Tunnel)(nil), // 423: otg.VxlanV4Tunnel - (*VxlanV6Tunnel)(nil), // 424: otg.VxlanV6Tunnel - (*VxlanV4TunnelDestinationIPMode)(nil), // 425: otg.VxlanV4TunnelDestinationIPMode - (*VxlanV6TunnelDestinationIPMode)(nil), // 426: otg.VxlanV6TunnelDestinationIPMode - (*VxlanV4TunnelDestinationIPModeUnicast)(nil), // 427: otg.VxlanV4TunnelDestinationIPModeUnicast - (*VxlanV6TunnelDestinationIPModeUnicast)(nil), // 428: otg.VxlanV6TunnelDestinationIPModeUnicast - (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache)(nil), // 429: otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - (*VxlanV4TunnelDestinationIPModeUnicastVtep)(nil), // 430: otg.VxlanV4TunnelDestinationIPModeUnicastVtep - (*VxlanV6TunnelDestinationIPModeUnicastVtep)(nil), // 431: otg.VxlanV6TunnelDestinationIPModeUnicastVtep - (*VxlanV4TunnelDestinationIPModeMulticast)(nil), // 432: otg.VxlanV4TunnelDestinationIPModeMulticast - (*VxlanV6TunnelDestinationIPModeMulticast)(nil), // 433: otg.VxlanV6TunnelDestinationIPModeMulticast - (*DeviceRsvp)(nil), // 434: otg.DeviceRsvp - (*RsvpIpv4Interface)(nil), // 435: otg.RsvpIpv4Interface - (*RsvpLspIpv4Interface)(nil), // 436: otg.RsvpLspIpv4Interface - (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp)(nil), // 437: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp - (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp)(nil), // 438: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp - (*RsvpSessionAttribute)(nil), // 439: otg.RsvpSessionAttribute - (*RsvpResourceAffinities)(nil), // 440: otg.RsvpResourceAffinities - (*RsvpTspec)(nil), // 441: otg.RsvpTspec - (*RsvpFastReroute)(nil), // 442: otg.RsvpFastReroute - (*RsvpEro)(nil), // 443: otg.RsvpEro - (*RsvpEroSubobject)(nil), // 444: otg.RsvpEroSubobject - (*Flow)(nil), // 445: otg.Flow - (*FlowTxRx)(nil), // 446: otg.FlowTxRx - (*FlowPort)(nil), // 447: otg.FlowPort - (*FlowRouter)(nil), // 448: otg.FlowRouter - (*FlowHeader)(nil), // 449: otg.FlowHeader - (*FlowCustom)(nil), // 450: otg.FlowCustom - (*FlowCustomMetricTag)(nil), // 451: otg.FlowCustomMetricTag - (*FlowEthernet)(nil), // 452: otg.FlowEthernet - (*FlowVlan)(nil), // 453: otg.FlowVlan - (*FlowVxlan)(nil), // 454: otg.FlowVxlan - (*FlowIpv4)(nil), // 455: otg.FlowIpv4 - (*FlowIpv4Priority)(nil), // 456: otg.FlowIpv4Priority - (*FlowIpv4Dscp)(nil), // 457: otg.FlowIpv4Dscp - (*FlowIpv4Tos)(nil), // 458: otg.FlowIpv4Tos - (*FlowIpv6)(nil), // 459: otg.FlowIpv6 - (*FlowPfcPause)(nil), // 460: otg.FlowPfcPause - (*FlowEthernetPause)(nil), // 461: otg.FlowEthernetPause - (*FlowTcp)(nil), // 462: otg.FlowTcp - (*FlowUdp)(nil), // 463: otg.FlowUdp - (*FlowGre)(nil), // 464: otg.FlowGre - (*FlowGtpv1)(nil), // 465: otg.FlowGtpv1 - (*FlowGtpExtension)(nil), // 466: otg.FlowGtpExtension - (*FlowGtpv2)(nil), // 467: otg.FlowGtpv2 - (*FlowArp)(nil), // 468: otg.FlowArp - (*FlowIcmp)(nil), // 469: otg.FlowIcmp - (*FlowIcmpEcho)(nil), // 470: otg.FlowIcmpEcho - (*FlowIcmpv6)(nil), // 471: otg.FlowIcmpv6 - (*FlowIcmpv6Echo)(nil), // 472: otg.FlowIcmpv6Echo - (*FlowPpp)(nil), // 473: otg.FlowPpp - (*FlowIgmpv1)(nil), // 474: otg.FlowIgmpv1 - (*FlowMpls)(nil), // 475: otg.FlowMpls - (*FlowSize)(nil), // 476: otg.FlowSize - (*FlowSizeIncrement)(nil), // 477: otg.FlowSizeIncrement - (*FlowSizeRandom)(nil), // 478: otg.FlowSizeRandom - (*FlowSizeWeightPairs)(nil), // 479: otg.FlowSizeWeightPairs - (*FlowSizeWeightPairsCustom)(nil), // 480: otg.FlowSizeWeightPairsCustom - (*FlowRate)(nil), // 481: otg.FlowRate - (*FlowDuration)(nil), // 482: otg.FlowDuration - (*FlowContinuous)(nil), // 483: otg.FlowContinuous - (*FlowDelay)(nil), // 484: otg.FlowDelay - (*FlowFixedPackets)(nil), // 485: otg.FlowFixedPackets - (*FlowFixedSeconds)(nil), // 486: otg.FlowFixedSeconds - (*FlowBurst)(nil), // 487: otg.FlowBurst - (*FlowDurationInterBurstGap)(nil), // 488: otg.FlowDurationInterBurstGap - (*FlowMetrics)(nil), // 489: otg.FlowMetrics - (*FlowLatencyMetrics)(nil), // 490: otg.FlowLatencyMetrics - (*FlowPredefinedTags)(nil), // 491: otg.FlowPredefinedTags - (*FlowRxTxRatio)(nil), // 492: otg.FlowRxTxRatio - (*FlowRxTxRatioRxCount)(nil), // 493: otg.FlowRxTxRatioRxCount - (*Event)(nil), // 494: otg.Event - (*EventRxRateThreshold)(nil), // 495: otg.EventRxRateThreshold - (*EventLink)(nil), // 496: otg.EventLink - (*EventRouteAdvertiseWithdraw)(nil), // 497: otg.EventRouteAdvertiseWithdraw - (*EventRequest)(nil), // 498: otg.EventRequest - (*EventSubscription)(nil), // 499: otg.EventSubscription - (*Lldp)(nil), // 500: otg.Lldp - (*LldpConnection)(nil), // 501: otg.LldpConnection - (*LldpChassisId)(nil), // 502: otg.LldpChassisId - (*LldpPortId)(nil), // 503: otg.LldpPortId - (*LldpChassisMacSubType)(nil), // 504: otg.LldpChassisMacSubType - (*LldpPortInterfaceNameSubType)(nil), // 505: otg.LldpPortInterfaceNameSubType - (*LldpSystemName)(nil), // 506: otg.LldpSystemName - (*Error)(nil), // 507: otg.Error - (*Warning)(nil), // 508: otg.Warning - (*ConfigUpdate)(nil), // 509: otg.ConfigUpdate - (*FlowsUpdate)(nil), // 510: otg.FlowsUpdate - (*ControlState)(nil), // 511: otg.ControlState - (*StatePort)(nil), // 512: otg.StatePort - (*StateTraffic)(nil), // 513: otg.StateTraffic - (*StateProtocol)(nil), // 514: otg.StateProtocol - (*StatePortLink)(nil), // 515: otg.StatePortLink - (*StatePortCapture)(nil), // 516: otg.StatePortCapture - (*StateTrafficFlowTransmit)(nil), // 517: otg.StateTrafficFlowTransmit - (*StateProtocolAll)(nil), // 518: otg.StateProtocolAll - (*StateProtocolRoute)(nil), // 519: otg.StateProtocolRoute - (*StateProtocolLacp)(nil), // 520: otg.StateProtocolLacp - (*StateProtocolLacpAdmin)(nil), // 521: otg.StateProtocolLacpAdmin - (*ControlAction)(nil), // 522: otg.ControlAction - (*ControlActionResponse)(nil), // 523: otg.ControlActionResponse - (*ActionResponse)(nil), // 524: otg.ActionResponse - (*ActionProtocol)(nil), // 525: otg.ActionProtocol - (*ActionResponseProtocol)(nil), // 526: otg.ActionResponseProtocol - (*ActionProtocolIpv4)(nil), // 527: otg.ActionProtocolIpv4 - (*ActionResponseProtocolIpv4)(nil), // 528: otg.ActionResponseProtocolIpv4 - (*ActionProtocolIpv4Ping)(nil), // 529: otg.ActionProtocolIpv4Ping - (*ActionProtocolIpv4PingRequest)(nil), // 530: otg.ActionProtocolIpv4PingRequest - (*ActionResponseProtocolIpv4Ping)(nil), // 531: otg.ActionResponseProtocolIpv4Ping - (*ActionResponseProtocolIpv4PingResponse)(nil), // 532: otg.ActionResponseProtocolIpv4PingResponse - (*ActionProtocolIpv6)(nil), // 533: otg.ActionProtocolIpv6 - (*ActionResponseProtocolIpv6)(nil), // 534: otg.ActionResponseProtocolIpv6 - (*ActionProtocolIpv6Ping)(nil), // 535: otg.ActionProtocolIpv6Ping - (*ActionProtocolIpv6PingRequest)(nil), // 536: otg.ActionProtocolIpv6PingRequest - (*ActionResponseProtocolIpv6Ping)(nil), // 537: otg.ActionResponseProtocolIpv6Ping - (*ActionResponseProtocolIpv6PingResponse)(nil), // 538: otg.ActionResponseProtocolIpv6PingResponse - (*ActionProtocolBgp)(nil), // 539: otg.ActionProtocolBgp - (*ActionProtocolBgpNotification)(nil), // 540: otg.ActionProtocolBgpNotification - (*ActionProtocolBgpInitiateGracefulRestart)(nil), // 541: otg.ActionProtocolBgpInitiateGracefulRestart - (*MetricsRequest)(nil), // 542: otg.MetricsRequest - (*MetricsResponse)(nil), // 543: otg.MetricsResponse - (*PortMetricsRequest)(nil), // 544: otg.PortMetricsRequest - (*PortMetric)(nil), // 545: otg.PortMetric - (*FlowMetricsRequest)(nil), // 546: otg.FlowMetricsRequest - (*FlowTaggedMetricsFilter)(nil), // 547: otg.FlowTaggedMetricsFilter - (*FlowMetricTagFilter)(nil), // 548: otg.FlowMetricTagFilter - (*FlowMetric)(nil), // 549: otg.FlowMetric - (*FlowTaggedMetric)(nil), // 550: otg.FlowTaggedMetric - (*FlowMetricTag)(nil), // 551: otg.FlowMetricTag - (*FlowMetricTagValue)(nil), // 552: otg.FlowMetricTagValue - (*MetricTimestamp)(nil), // 553: otg.MetricTimestamp - (*MetricLatency)(nil), // 554: otg.MetricLatency - (*Bgpv4MetricsRequest)(nil), // 555: otg.Bgpv4MetricsRequest - (*Bgpv4Metric)(nil), // 556: otg.Bgpv4Metric - (*Bgpv6MetricsRequest)(nil), // 557: otg.Bgpv6MetricsRequest - (*Bgpv6Metric)(nil), // 558: otg.Bgpv6Metric - (*IsisMetricsRequest)(nil), // 559: otg.IsisMetricsRequest - (*IsisMetric)(nil), // 560: otg.IsisMetric - (*LagMetricsRequest)(nil), // 561: otg.LagMetricsRequest - (*LagMetric)(nil), // 562: otg.LagMetric - (*LacpMetricsRequest)(nil), // 563: otg.LacpMetricsRequest - (*LacpMetric)(nil), // 564: otg.LacpMetric - (*LldpMetricsRequest)(nil), // 565: otg.LldpMetricsRequest - (*LldpMetric)(nil), // 566: otg.LldpMetric - (*RsvpMetricsRequest)(nil), // 567: otg.RsvpMetricsRequest - (*RsvpMetric)(nil), // 568: otg.RsvpMetric - (*StatesRequest)(nil), // 569: otg.StatesRequest - (*StatesResponse)(nil), // 570: otg.StatesResponse - (*Neighborsv4StatesRequest)(nil), // 571: otg.Neighborsv4StatesRequest - (*Neighborsv4State)(nil), // 572: otg.Neighborsv4State - (*Neighborsv6StatesRequest)(nil), // 573: otg.Neighborsv6StatesRequest - (*Neighborsv6State)(nil), // 574: otg.Neighborsv6State - (*BgpPrefixStateRequest)(nil), // 575: otg.BgpPrefixStateRequest - (*BgpPrefixIpv4UnicastFilter)(nil), // 576: otg.BgpPrefixIpv4UnicastFilter - (*BgpPrefixIpv6UnicastFilter)(nil), // 577: otg.BgpPrefixIpv6UnicastFilter - (*BgpPrefixesState)(nil), // 578: otg.BgpPrefixesState - (*BgpPrefixIpv4UnicastState)(nil), // 579: otg.BgpPrefixIpv4UnicastState - (*BgpPrefixIpv6UnicastState)(nil), // 580: otg.BgpPrefixIpv6UnicastState - (*ResultBgpCommunity)(nil), // 581: otg.ResultBgpCommunity - (*ResultBgpAsPath)(nil), // 582: otg.ResultBgpAsPath - (*ResultBgpAsPathSegment)(nil), // 583: otg.ResultBgpAsPathSegment - (*IsisLspsStateRequest)(nil), // 584: otg.IsisLspsStateRequest - (*IsisLspsState)(nil), // 585: otg.IsisLspsState - (*IsisLspState)(nil), // 586: otg.IsisLspState - (*IsisLspTlvs)(nil), // 587: otg.IsisLspTlvs - (*IsisLspHostname)(nil), // 588: otg.IsisLspHostname - (*IsisLspFlags)(nil), // 589: otg.IsisLspFlags - (*IsisLspIsReachabilityTlv)(nil), // 590: otg.IsisLspIsReachabilityTlv - (*IsisLspExtendedIsReachabilityTlv)(nil), // 591: otg.IsisLspExtendedIsReachabilityTlv - (*IsisLspneighbor)(nil), // 592: otg.IsisLspneighbor - (*IsisLspIpv4InternalReachabilityTlv)(nil), // 593: otg.IsisLspIpv4InternalReachabilityTlv - (*IsisLspIpv4ExternalReachabilityTlv)(nil), // 594: otg.IsisLspIpv4ExternalReachabilityTlv - (*IsisLspV4Prefix)(nil), // 595: otg.IsisLspV4Prefix - (*IsisLspExtendedIpv4ReachabilityTlv)(nil), // 596: otg.IsisLspExtendedIpv4ReachabilityTlv - (*IsisLspExtendedV4Prefix)(nil), // 597: otg.IsisLspExtendedV4Prefix - (*IsisLspIpv6ReachabilityTlv)(nil), // 598: otg.IsisLspIpv6ReachabilityTlv - (*IsisLspV6Prefix)(nil), // 599: otg.IsisLspV6Prefix - (*IsisLspPrefixAttributes)(nil), // 600: otg.IsisLspPrefixAttributes - (*LldpNeighborsStateRequest)(nil), // 601: otg.LldpNeighborsStateRequest - (*LldpNeighborsState)(nil), // 602: otg.LldpNeighborsState - (*LldpCustomTLVState)(nil), // 603: otg.LldpCustomTLVState - (*LldpCapabilityState)(nil), // 604: otg.LldpCapabilityState - (*RsvpLspsStateRequest)(nil), // 605: otg.RsvpLspsStateRequest - (*RsvpLspsState)(nil), // 606: otg.RsvpLspsState - (*RsvpIPv4LspState)(nil), // 607: otg.RsvpIPv4LspState - (*RsvpLspState)(nil), // 608: otg.RsvpLspState - (*RsvpLspIpv4Rro)(nil), // 609: otg.RsvpLspIpv4Rro - (*RsvpLspIpv4Ero)(nil), // 610: otg.RsvpLspIpv4Ero - (*CaptureRequest)(nil), // 611: otg.CaptureRequest - (*PatternFlowEthernetDstCounter)(nil), // 612: otg.PatternFlowEthernetDstCounter - (*PatternFlowEthernetDstMetricTag)(nil), // 613: otg.PatternFlowEthernetDstMetricTag - (*PatternFlowEthernetDst)(nil), // 614: otg.PatternFlowEthernetDst - (*PatternFlowEthernetSrcCounter)(nil), // 615: otg.PatternFlowEthernetSrcCounter - (*PatternFlowEthernetSrcMetricTag)(nil), // 616: otg.PatternFlowEthernetSrcMetricTag - (*PatternFlowEthernetSrc)(nil), // 617: otg.PatternFlowEthernetSrc - (*PatternFlowEthernetEtherTypeCounter)(nil), // 618: otg.PatternFlowEthernetEtherTypeCounter - (*PatternFlowEthernetEtherTypeMetricTag)(nil), // 619: otg.PatternFlowEthernetEtherTypeMetricTag - (*PatternFlowEthernetEtherType)(nil), // 620: otg.PatternFlowEthernetEtherType - (*PatternFlowEthernetPfcQueueCounter)(nil), // 621: otg.PatternFlowEthernetPfcQueueCounter - (*PatternFlowEthernetPfcQueueMetricTag)(nil), // 622: otg.PatternFlowEthernetPfcQueueMetricTag - (*PatternFlowEthernetPfcQueue)(nil), // 623: otg.PatternFlowEthernetPfcQueue - (*PatternFlowVlanPriorityCounter)(nil), // 624: otg.PatternFlowVlanPriorityCounter - (*PatternFlowVlanPriorityMetricTag)(nil), // 625: otg.PatternFlowVlanPriorityMetricTag - (*PatternFlowVlanPriority)(nil), // 626: otg.PatternFlowVlanPriority - (*PatternFlowVlanCfiCounter)(nil), // 627: otg.PatternFlowVlanCfiCounter - (*PatternFlowVlanCfiMetricTag)(nil), // 628: otg.PatternFlowVlanCfiMetricTag - (*PatternFlowVlanCfi)(nil), // 629: otg.PatternFlowVlanCfi - (*PatternFlowVlanIdCounter)(nil), // 630: otg.PatternFlowVlanIdCounter - (*PatternFlowVlanIdMetricTag)(nil), // 631: otg.PatternFlowVlanIdMetricTag - (*PatternFlowVlanId)(nil), // 632: otg.PatternFlowVlanId - (*PatternFlowVlanTpidCounter)(nil), // 633: otg.PatternFlowVlanTpidCounter - (*PatternFlowVlanTpidMetricTag)(nil), // 634: otg.PatternFlowVlanTpidMetricTag - (*PatternFlowVlanTpid)(nil), // 635: otg.PatternFlowVlanTpid - (*PatternFlowVxlanFlagsCounter)(nil), // 636: otg.PatternFlowVxlanFlagsCounter - (*PatternFlowVxlanFlagsMetricTag)(nil), // 637: otg.PatternFlowVxlanFlagsMetricTag - (*PatternFlowVxlanFlags)(nil), // 638: otg.PatternFlowVxlanFlags - (*PatternFlowVxlanReserved0Counter)(nil), // 639: otg.PatternFlowVxlanReserved0Counter - (*PatternFlowVxlanReserved0MetricTag)(nil), // 640: otg.PatternFlowVxlanReserved0MetricTag - (*PatternFlowVxlanReserved0)(nil), // 641: otg.PatternFlowVxlanReserved0 - (*PatternFlowVxlanVniCounter)(nil), // 642: otg.PatternFlowVxlanVniCounter - (*PatternFlowVxlanVniMetricTag)(nil), // 643: otg.PatternFlowVxlanVniMetricTag - (*PatternFlowVxlanVni)(nil), // 644: otg.PatternFlowVxlanVni - (*PatternFlowVxlanReserved1Counter)(nil), // 645: otg.PatternFlowVxlanReserved1Counter - (*PatternFlowVxlanReserved1MetricTag)(nil), // 646: otg.PatternFlowVxlanReserved1MetricTag - (*PatternFlowVxlanReserved1)(nil), // 647: otg.PatternFlowVxlanReserved1 - (*PatternFlowIpv4VersionCounter)(nil), // 648: otg.PatternFlowIpv4VersionCounter - (*PatternFlowIpv4VersionMetricTag)(nil), // 649: otg.PatternFlowIpv4VersionMetricTag - (*PatternFlowIpv4Version)(nil), // 650: otg.PatternFlowIpv4Version - (*PatternFlowIpv4HeaderLengthCounter)(nil), // 651: otg.PatternFlowIpv4HeaderLengthCounter - (*PatternFlowIpv4HeaderLengthMetricTag)(nil), // 652: otg.PatternFlowIpv4HeaderLengthMetricTag - (*PatternFlowIpv4HeaderLength)(nil), // 653: otg.PatternFlowIpv4HeaderLength - (*PatternFlowIpv4TotalLengthCounter)(nil), // 654: otg.PatternFlowIpv4TotalLengthCounter - (*PatternFlowIpv4TotalLengthMetricTag)(nil), // 655: otg.PatternFlowIpv4TotalLengthMetricTag - (*PatternFlowIpv4TotalLength)(nil), // 656: otg.PatternFlowIpv4TotalLength - (*PatternFlowIpv4IdentificationCounter)(nil), // 657: otg.PatternFlowIpv4IdentificationCounter - (*PatternFlowIpv4IdentificationMetricTag)(nil), // 658: otg.PatternFlowIpv4IdentificationMetricTag - (*PatternFlowIpv4Identification)(nil), // 659: otg.PatternFlowIpv4Identification - (*PatternFlowIpv4ReservedCounter)(nil), // 660: otg.PatternFlowIpv4ReservedCounter - (*PatternFlowIpv4ReservedMetricTag)(nil), // 661: otg.PatternFlowIpv4ReservedMetricTag - (*PatternFlowIpv4Reserved)(nil), // 662: otg.PatternFlowIpv4Reserved - (*PatternFlowIpv4DontFragmentCounter)(nil), // 663: otg.PatternFlowIpv4DontFragmentCounter - (*PatternFlowIpv4DontFragmentMetricTag)(nil), // 664: otg.PatternFlowIpv4DontFragmentMetricTag - (*PatternFlowIpv4DontFragment)(nil), // 665: otg.PatternFlowIpv4DontFragment - (*PatternFlowIpv4MoreFragmentsCounter)(nil), // 666: otg.PatternFlowIpv4MoreFragmentsCounter - (*PatternFlowIpv4MoreFragmentsMetricTag)(nil), // 667: otg.PatternFlowIpv4MoreFragmentsMetricTag - (*PatternFlowIpv4MoreFragments)(nil), // 668: otg.PatternFlowIpv4MoreFragments - (*PatternFlowIpv4FragmentOffsetCounter)(nil), // 669: otg.PatternFlowIpv4FragmentOffsetCounter - (*PatternFlowIpv4FragmentOffsetMetricTag)(nil), // 670: otg.PatternFlowIpv4FragmentOffsetMetricTag - (*PatternFlowIpv4FragmentOffset)(nil), // 671: otg.PatternFlowIpv4FragmentOffset - (*PatternFlowIpv4TimeToLiveCounter)(nil), // 672: otg.PatternFlowIpv4TimeToLiveCounter - (*PatternFlowIpv4TimeToLiveMetricTag)(nil), // 673: otg.PatternFlowIpv4TimeToLiveMetricTag - (*PatternFlowIpv4TimeToLive)(nil), // 674: otg.PatternFlowIpv4TimeToLive - (*PatternFlowIpv4ProtocolCounter)(nil), // 675: otg.PatternFlowIpv4ProtocolCounter - (*PatternFlowIpv4ProtocolMetricTag)(nil), // 676: otg.PatternFlowIpv4ProtocolMetricTag - (*PatternFlowIpv4Protocol)(nil), // 677: otg.PatternFlowIpv4Protocol - (*PatternFlowIpv4HeaderChecksum)(nil), // 678: otg.PatternFlowIpv4HeaderChecksum - (*PatternFlowIpv4SrcCounter)(nil), // 679: otg.PatternFlowIpv4SrcCounter - (*PatternFlowIpv4SrcMetricTag)(nil), // 680: otg.PatternFlowIpv4SrcMetricTag - (*PatternFlowIpv4Src)(nil), // 681: otg.PatternFlowIpv4Src - (*PatternFlowIpv4DstCounter)(nil), // 682: otg.PatternFlowIpv4DstCounter - (*PatternFlowIpv4DstMetricTag)(nil), // 683: otg.PatternFlowIpv4DstMetricTag - (*PatternFlowIpv4Dst)(nil), // 684: otg.PatternFlowIpv4Dst - (*PatternFlowIpv4PriorityRawCounter)(nil), // 685: otg.PatternFlowIpv4PriorityRawCounter - (*PatternFlowIpv4PriorityRawMetricTag)(nil), // 686: otg.PatternFlowIpv4PriorityRawMetricTag - (*PatternFlowIpv4PriorityRaw)(nil), // 687: otg.PatternFlowIpv4PriorityRaw - (*PatternFlowIpv4DscpPhbCounter)(nil), // 688: otg.PatternFlowIpv4DscpPhbCounter - (*PatternFlowIpv4DscpPhbMetricTag)(nil), // 689: otg.PatternFlowIpv4DscpPhbMetricTag - (*PatternFlowIpv4DscpPhb)(nil), // 690: otg.PatternFlowIpv4DscpPhb - (*PatternFlowIpv4DscpEcnCounter)(nil), // 691: otg.PatternFlowIpv4DscpEcnCounter - (*PatternFlowIpv4DscpEcnMetricTag)(nil), // 692: otg.PatternFlowIpv4DscpEcnMetricTag - (*PatternFlowIpv4DscpEcn)(nil), // 693: otg.PatternFlowIpv4DscpEcn - (*PatternFlowIpv4TosPrecedenceCounter)(nil), // 694: otg.PatternFlowIpv4TosPrecedenceCounter - (*PatternFlowIpv4TosPrecedenceMetricTag)(nil), // 695: otg.PatternFlowIpv4TosPrecedenceMetricTag - (*PatternFlowIpv4TosPrecedence)(nil), // 696: otg.PatternFlowIpv4TosPrecedence - (*PatternFlowIpv4TosDelayCounter)(nil), // 697: otg.PatternFlowIpv4TosDelayCounter - (*PatternFlowIpv4TosDelayMetricTag)(nil), // 698: otg.PatternFlowIpv4TosDelayMetricTag - (*PatternFlowIpv4TosDelay)(nil), // 699: otg.PatternFlowIpv4TosDelay - (*PatternFlowIpv4TosThroughputCounter)(nil), // 700: otg.PatternFlowIpv4TosThroughputCounter - (*PatternFlowIpv4TosThroughputMetricTag)(nil), // 701: otg.PatternFlowIpv4TosThroughputMetricTag - (*PatternFlowIpv4TosThroughput)(nil), // 702: otg.PatternFlowIpv4TosThroughput - (*PatternFlowIpv4TosReliabilityCounter)(nil), // 703: otg.PatternFlowIpv4TosReliabilityCounter - (*PatternFlowIpv4TosReliabilityMetricTag)(nil), // 704: otg.PatternFlowIpv4TosReliabilityMetricTag - (*PatternFlowIpv4TosReliability)(nil), // 705: otg.PatternFlowIpv4TosReliability - (*PatternFlowIpv4TosMonetaryCounter)(nil), // 706: otg.PatternFlowIpv4TosMonetaryCounter - (*PatternFlowIpv4TosMonetaryMetricTag)(nil), // 707: otg.PatternFlowIpv4TosMonetaryMetricTag - (*PatternFlowIpv4TosMonetary)(nil), // 708: otg.PatternFlowIpv4TosMonetary - (*PatternFlowIpv4TosUnusedCounter)(nil), // 709: otg.PatternFlowIpv4TosUnusedCounter - (*PatternFlowIpv4TosUnusedMetricTag)(nil), // 710: otg.PatternFlowIpv4TosUnusedMetricTag - (*PatternFlowIpv4TosUnused)(nil), // 711: otg.PatternFlowIpv4TosUnused - (*PatternFlowIpv6VersionCounter)(nil), // 712: otg.PatternFlowIpv6VersionCounter - (*PatternFlowIpv6VersionMetricTag)(nil), // 713: otg.PatternFlowIpv6VersionMetricTag - (*PatternFlowIpv6Version)(nil), // 714: otg.PatternFlowIpv6Version - (*PatternFlowIpv6TrafficClassCounter)(nil), // 715: otg.PatternFlowIpv6TrafficClassCounter - (*PatternFlowIpv6TrafficClassMetricTag)(nil), // 716: otg.PatternFlowIpv6TrafficClassMetricTag - (*PatternFlowIpv6TrafficClass)(nil), // 717: otg.PatternFlowIpv6TrafficClass - (*PatternFlowIpv6FlowLabelCounter)(nil), // 718: otg.PatternFlowIpv6FlowLabelCounter - (*PatternFlowIpv6FlowLabelMetricTag)(nil), // 719: otg.PatternFlowIpv6FlowLabelMetricTag - (*PatternFlowIpv6FlowLabel)(nil), // 720: otg.PatternFlowIpv6FlowLabel - (*PatternFlowIpv6PayloadLengthCounter)(nil), // 721: otg.PatternFlowIpv6PayloadLengthCounter - (*PatternFlowIpv6PayloadLengthMetricTag)(nil), // 722: otg.PatternFlowIpv6PayloadLengthMetricTag - (*PatternFlowIpv6PayloadLength)(nil), // 723: otg.PatternFlowIpv6PayloadLength - (*PatternFlowIpv6NextHeaderCounter)(nil), // 724: otg.PatternFlowIpv6NextHeaderCounter - (*PatternFlowIpv6NextHeaderMetricTag)(nil), // 725: otg.PatternFlowIpv6NextHeaderMetricTag - (*PatternFlowIpv6NextHeader)(nil), // 726: otg.PatternFlowIpv6NextHeader - (*PatternFlowIpv6HopLimitCounter)(nil), // 727: otg.PatternFlowIpv6HopLimitCounter - (*PatternFlowIpv6HopLimitMetricTag)(nil), // 728: otg.PatternFlowIpv6HopLimitMetricTag - (*PatternFlowIpv6HopLimit)(nil), // 729: otg.PatternFlowIpv6HopLimit - (*PatternFlowIpv6SrcCounter)(nil), // 730: otg.PatternFlowIpv6SrcCounter - (*PatternFlowIpv6SrcMetricTag)(nil), // 731: otg.PatternFlowIpv6SrcMetricTag - (*PatternFlowIpv6Src)(nil), // 732: otg.PatternFlowIpv6Src - (*PatternFlowIpv6DstCounter)(nil), // 733: otg.PatternFlowIpv6DstCounter - (*PatternFlowIpv6DstMetricTag)(nil), // 734: otg.PatternFlowIpv6DstMetricTag - (*PatternFlowIpv6Dst)(nil), // 735: otg.PatternFlowIpv6Dst - (*PatternFlowPfcPauseDstCounter)(nil), // 736: otg.PatternFlowPfcPauseDstCounter - (*PatternFlowPfcPauseDstMetricTag)(nil), // 737: otg.PatternFlowPfcPauseDstMetricTag - (*PatternFlowPfcPauseDst)(nil), // 738: otg.PatternFlowPfcPauseDst - (*PatternFlowPfcPauseSrcCounter)(nil), // 739: otg.PatternFlowPfcPauseSrcCounter - (*PatternFlowPfcPauseSrcMetricTag)(nil), // 740: otg.PatternFlowPfcPauseSrcMetricTag - (*PatternFlowPfcPauseSrc)(nil), // 741: otg.PatternFlowPfcPauseSrc - (*PatternFlowPfcPauseEtherTypeCounter)(nil), // 742: otg.PatternFlowPfcPauseEtherTypeCounter - (*PatternFlowPfcPauseEtherTypeMetricTag)(nil), // 743: otg.PatternFlowPfcPauseEtherTypeMetricTag - (*PatternFlowPfcPauseEtherType)(nil), // 744: otg.PatternFlowPfcPauseEtherType - (*PatternFlowPfcPauseControlOpCodeCounter)(nil), // 745: otg.PatternFlowPfcPauseControlOpCodeCounter - (*PatternFlowPfcPauseControlOpCodeMetricTag)(nil), // 746: otg.PatternFlowPfcPauseControlOpCodeMetricTag - (*PatternFlowPfcPauseControlOpCode)(nil), // 747: otg.PatternFlowPfcPauseControlOpCode - (*PatternFlowPfcPauseClassEnableVectorCounter)(nil), // 748: otg.PatternFlowPfcPauseClassEnableVectorCounter - (*PatternFlowPfcPauseClassEnableVectorMetricTag)(nil), // 749: otg.PatternFlowPfcPauseClassEnableVectorMetricTag - (*PatternFlowPfcPauseClassEnableVector)(nil), // 750: otg.PatternFlowPfcPauseClassEnableVector - (*PatternFlowPfcPausePauseClass0Counter)(nil), // 751: otg.PatternFlowPfcPausePauseClass0Counter - (*PatternFlowPfcPausePauseClass0MetricTag)(nil), // 752: otg.PatternFlowPfcPausePauseClass0MetricTag - (*PatternFlowPfcPausePauseClass0)(nil), // 753: otg.PatternFlowPfcPausePauseClass0 - (*PatternFlowPfcPausePauseClass1Counter)(nil), // 754: otg.PatternFlowPfcPausePauseClass1Counter - (*PatternFlowPfcPausePauseClass1MetricTag)(nil), // 755: otg.PatternFlowPfcPausePauseClass1MetricTag - (*PatternFlowPfcPausePauseClass1)(nil), // 756: otg.PatternFlowPfcPausePauseClass1 - (*PatternFlowPfcPausePauseClass2Counter)(nil), // 757: otg.PatternFlowPfcPausePauseClass2Counter - (*PatternFlowPfcPausePauseClass2MetricTag)(nil), // 758: otg.PatternFlowPfcPausePauseClass2MetricTag - (*PatternFlowPfcPausePauseClass2)(nil), // 759: otg.PatternFlowPfcPausePauseClass2 - (*PatternFlowPfcPausePauseClass3Counter)(nil), // 760: otg.PatternFlowPfcPausePauseClass3Counter - (*PatternFlowPfcPausePauseClass3MetricTag)(nil), // 761: otg.PatternFlowPfcPausePauseClass3MetricTag - (*PatternFlowPfcPausePauseClass3)(nil), // 762: otg.PatternFlowPfcPausePauseClass3 - (*PatternFlowPfcPausePauseClass4Counter)(nil), // 763: otg.PatternFlowPfcPausePauseClass4Counter - (*PatternFlowPfcPausePauseClass4MetricTag)(nil), // 764: otg.PatternFlowPfcPausePauseClass4MetricTag - (*PatternFlowPfcPausePauseClass4)(nil), // 765: otg.PatternFlowPfcPausePauseClass4 - (*PatternFlowPfcPausePauseClass5Counter)(nil), // 766: otg.PatternFlowPfcPausePauseClass5Counter - (*PatternFlowPfcPausePauseClass5MetricTag)(nil), // 767: otg.PatternFlowPfcPausePauseClass5MetricTag - (*PatternFlowPfcPausePauseClass5)(nil), // 768: otg.PatternFlowPfcPausePauseClass5 - (*PatternFlowPfcPausePauseClass6Counter)(nil), // 769: otg.PatternFlowPfcPausePauseClass6Counter - (*PatternFlowPfcPausePauseClass6MetricTag)(nil), // 770: otg.PatternFlowPfcPausePauseClass6MetricTag - (*PatternFlowPfcPausePauseClass6)(nil), // 771: otg.PatternFlowPfcPausePauseClass6 - (*PatternFlowPfcPausePauseClass7Counter)(nil), // 772: otg.PatternFlowPfcPausePauseClass7Counter - (*PatternFlowPfcPausePauseClass7MetricTag)(nil), // 773: otg.PatternFlowPfcPausePauseClass7MetricTag - (*PatternFlowPfcPausePauseClass7)(nil), // 774: otg.PatternFlowPfcPausePauseClass7 - (*PatternFlowEthernetPauseDstCounter)(nil), // 775: otg.PatternFlowEthernetPauseDstCounter - (*PatternFlowEthernetPauseDstMetricTag)(nil), // 776: otg.PatternFlowEthernetPauseDstMetricTag - (*PatternFlowEthernetPauseDst)(nil), // 777: otg.PatternFlowEthernetPauseDst - (*PatternFlowEthernetPauseSrcCounter)(nil), // 778: otg.PatternFlowEthernetPauseSrcCounter - (*PatternFlowEthernetPauseSrcMetricTag)(nil), // 779: otg.PatternFlowEthernetPauseSrcMetricTag - (*PatternFlowEthernetPauseSrc)(nil), // 780: otg.PatternFlowEthernetPauseSrc - (*PatternFlowEthernetPauseEtherTypeCounter)(nil), // 781: otg.PatternFlowEthernetPauseEtherTypeCounter - (*PatternFlowEthernetPauseEtherTypeMetricTag)(nil), // 782: otg.PatternFlowEthernetPauseEtherTypeMetricTag - (*PatternFlowEthernetPauseEtherType)(nil), // 783: otg.PatternFlowEthernetPauseEtherType - (*PatternFlowEthernetPauseControlOpCodeCounter)(nil), // 784: otg.PatternFlowEthernetPauseControlOpCodeCounter - (*PatternFlowEthernetPauseControlOpCodeMetricTag)(nil), // 785: otg.PatternFlowEthernetPauseControlOpCodeMetricTag - (*PatternFlowEthernetPauseControlOpCode)(nil), // 786: otg.PatternFlowEthernetPauseControlOpCode - (*PatternFlowEthernetPauseTimeCounter)(nil), // 787: otg.PatternFlowEthernetPauseTimeCounter - (*PatternFlowEthernetPauseTimeMetricTag)(nil), // 788: otg.PatternFlowEthernetPauseTimeMetricTag - (*PatternFlowEthernetPauseTime)(nil), // 789: otg.PatternFlowEthernetPauseTime - (*PatternFlowTcpSrcPortCounter)(nil), // 790: otg.PatternFlowTcpSrcPortCounter - (*PatternFlowTcpSrcPortMetricTag)(nil), // 791: otg.PatternFlowTcpSrcPortMetricTag - (*PatternFlowTcpSrcPort)(nil), // 792: otg.PatternFlowTcpSrcPort - (*PatternFlowTcpDstPortCounter)(nil), // 793: otg.PatternFlowTcpDstPortCounter - (*PatternFlowTcpDstPortMetricTag)(nil), // 794: otg.PatternFlowTcpDstPortMetricTag - (*PatternFlowTcpDstPort)(nil), // 795: otg.PatternFlowTcpDstPort - (*PatternFlowTcpSeqNumCounter)(nil), // 796: otg.PatternFlowTcpSeqNumCounter - (*PatternFlowTcpSeqNumMetricTag)(nil), // 797: otg.PatternFlowTcpSeqNumMetricTag - (*PatternFlowTcpSeqNum)(nil), // 798: otg.PatternFlowTcpSeqNum - (*PatternFlowTcpAckNumCounter)(nil), // 799: otg.PatternFlowTcpAckNumCounter - (*PatternFlowTcpAckNumMetricTag)(nil), // 800: otg.PatternFlowTcpAckNumMetricTag - (*PatternFlowTcpAckNum)(nil), // 801: otg.PatternFlowTcpAckNum - (*PatternFlowTcpDataOffsetCounter)(nil), // 802: otg.PatternFlowTcpDataOffsetCounter - (*PatternFlowTcpDataOffsetMetricTag)(nil), // 803: otg.PatternFlowTcpDataOffsetMetricTag - (*PatternFlowTcpDataOffset)(nil), // 804: otg.PatternFlowTcpDataOffset - (*PatternFlowTcpEcnNsCounter)(nil), // 805: otg.PatternFlowTcpEcnNsCounter - (*PatternFlowTcpEcnNsMetricTag)(nil), // 806: otg.PatternFlowTcpEcnNsMetricTag - (*PatternFlowTcpEcnNs)(nil), // 807: otg.PatternFlowTcpEcnNs - (*PatternFlowTcpEcnCwrCounter)(nil), // 808: otg.PatternFlowTcpEcnCwrCounter - (*PatternFlowTcpEcnCwrMetricTag)(nil), // 809: otg.PatternFlowTcpEcnCwrMetricTag - (*PatternFlowTcpEcnCwr)(nil), // 810: otg.PatternFlowTcpEcnCwr - (*PatternFlowTcpEcnEchoCounter)(nil), // 811: otg.PatternFlowTcpEcnEchoCounter - (*PatternFlowTcpEcnEchoMetricTag)(nil), // 812: otg.PatternFlowTcpEcnEchoMetricTag - (*PatternFlowTcpEcnEcho)(nil), // 813: otg.PatternFlowTcpEcnEcho - (*PatternFlowTcpCtlUrgCounter)(nil), // 814: otg.PatternFlowTcpCtlUrgCounter - (*PatternFlowTcpCtlUrgMetricTag)(nil), // 815: otg.PatternFlowTcpCtlUrgMetricTag - (*PatternFlowTcpCtlUrg)(nil), // 816: otg.PatternFlowTcpCtlUrg - (*PatternFlowTcpCtlAckCounter)(nil), // 817: otg.PatternFlowTcpCtlAckCounter - (*PatternFlowTcpCtlAckMetricTag)(nil), // 818: otg.PatternFlowTcpCtlAckMetricTag - (*PatternFlowTcpCtlAck)(nil), // 819: otg.PatternFlowTcpCtlAck - (*PatternFlowTcpCtlPshCounter)(nil), // 820: otg.PatternFlowTcpCtlPshCounter - (*PatternFlowTcpCtlPshMetricTag)(nil), // 821: otg.PatternFlowTcpCtlPshMetricTag - (*PatternFlowTcpCtlPsh)(nil), // 822: otg.PatternFlowTcpCtlPsh - (*PatternFlowTcpCtlRstCounter)(nil), // 823: otg.PatternFlowTcpCtlRstCounter - (*PatternFlowTcpCtlRstMetricTag)(nil), // 824: otg.PatternFlowTcpCtlRstMetricTag - (*PatternFlowTcpCtlRst)(nil), // 825: otg.PatternFlowTcpCtlRst - (*PatternFlowTcpCtlSynCounter)(nil), // 826: otg.PatternFlowTcpCtlSynCounter - (*PatternFlowTcpCtlSynMetricTag)(nil), // 827: otg.PatternFlowTcpCtlSynMetricTag - (*PatternFlowTcpCtlSyn)(nil), // 828: otg.PatternFlowTcpCtlSyn - (*PatternFlowTcpCtlFinCounter)(nil), // 829: otg.PatternFlowTcpCtlFinCounter - (*PatternFlowTcpCtlFinMetricTag)(nil), // 830: otg.PatternFlowTcpCtlFinMetricTag - (*PatternFlowTcpCtlFin)(nil), // 831: otg.PatternFlowTcpCtlFin - (*PatternFlowTcpWindowCounter)(nil), // 832: otg.PatternFlowTcpWindowCounter - (*PatternFlowTcpWindowMetricTag)(nil), // 833: otg.PatternFlowTcpWindowMetricTag - (*PatternFlowTcpWindow)(nil), // 834: otg.PatternFlowTcpWindow - (*PatternFlowUdpSrcPortCounter)(nil), // 835: otg.PatternFlowUdpSrcPortCounter - (*PatternFlowUdpSrcPortMetricTag)(nil), // 836: otg.PatternFlowUdpSrcPortMetricTag - (*PatternFlowUdpSrcPort)(nil), // 837: otg.PatternFlowUdpSrcPort - (*PatternFlowUdpDstPortCounter)(nil), // 838: otg.PatternFlowUdpDstPortCounter - (*PatternFlowUdpDstPortMetricTag)(nil), // 839: otg.PatternFlowUdpDstPortMetricTag - (*PatternFlowUdpDstPort)(nil), // 840: otg.PatternFlowUdpDstPort - (*PatternFlowUdpLengthCounter)(nil), // 841: otg.PatternFlowUdpLengthCounter - (*PatternFlowUdpLengthMetricTag)(nil), // 842: otg.PatternFlowUdpLengthMetricTag - (*PatternFlowUdpLength)(nil), // 843: otg.PatternFlowUdpLength - (*PatternFlowUdpChecksum)(nil), // 844: otg.PatternFlowUdpChecksum - (*PatternFlowGreChecksumPresentCounter)(nil), // 845: otg.PatternFlowGreChecksumPresentCounter - (*PatternFlowGreChecksumPresentMetricTag)(nil), // 846: otg.PatternFlowGreChecksumPresentMetricTag - (*PatternFlowGreChecksumPresent)(nil), // 847: otg.PatternFlowGreChecksumPresent - (*PatternFlowGreReserved0Counter)(nil), // 848: otg.PatternFlowGreReserved0Counter - (*PatternFlowGreReserved0MetricTag)(nil), // 849: otg.PatternFlowGreReserved0MetricTag - (*PatternFlowGreReserved0)(nil), // 850: otg.PatternFlowGreReserved0 - (*PatternFlowGreVersionCounter)(nil), // 851: otg.PatternFlowGreVersionCounter - (*PatternFlowGreVersionMetricTag)(nil), // 852: otg.PatternFlowGreVersionMetricTag - (*PatternFlowGreVersion)(nil), // 853: otg.PatternFlowGreVersion - (*PatternFlowGreProtocolCounter)(nil), // 854: otg.PatternFlowGreProtocolCounter - (*PatternFlowGreProtocolMetricTag)(nil), // 855: otg.PatternFlowGreProtocolMetricTag - (*PatternFlowGreProtocol)(nil), // 856: otg.PatternFlowGreProtocol - (*PatternFlowGreChecksum)(nil), // 857: otg.PatternFlowGreChecksum - (*PatternFlowGreReserved1Counter)(nil), // 858: otg.PatternFlowGreReserved1Counter - (*PatternFlowGreReserved1MetricTag)(nil), // 859: otg.PatternFlowGreReserved1MetricTag - (*PatternFlowGreReserved1)(nil), // 860: otg.PatternFlowGreReserved1 - (*PatternFlowGtpv1VersionCounter)(nil), // 861: otg.PatternFlowGtpv1VersionCounter - (*PatternFlowGtpv1VersionMetricTag)(nil), // 862: otg.PatternFlowGtpv1VersionMetricTag - (*PatternFlowGtpv1Version)(nil), // 863: otg.PatternFlowGtpv1Version - (*PatternFlowGtpv1ProtocolTypeCounter)(nil), // 864: otg.PatternFlowGtpv1ProtocolTypeCounter - (*PatternFlowGtpv1ProtocolTypeMetricTag)(nil), // 865: otg.PatternFlowGtpv1ProtocolTypeMetricTag - (*PatternFlowGtpv1ProtocolType)(nil), // 866: otg.PatternFlowGtpv1ProtocolType - (*PatternFlowGtpv1ReservedCounter)(nil), // 867: otg.PatternFlowGtpv1ReservedCounter - (*PatternFlowGtpv1ReservedMetricTag)(nil), // 868: otg.PatternFlowGtpv1ReservedMetricTag - (*PatternFlowGtpv1Reserved)(nil), // 869: otg.PatternFlowGtpv1Reserved - (*PatternFlowGtpv1EFlagCounter)(nil), // 870: otg.PatternFlowGtpv1EFlagCounter - (*PatternFlowGtpv1EFlagMetricTag)(nil), // 871: otg.PatternFlowGtpv1EFlagMetricTag - (*PatternFlowGtpv1EFlag)(nil), // 872: otg.PatternFlowGtpv1EFlag - (*PatternFlowGtpv1SFlagCounter)(nil), // 873: otg.PatternFlowGtpv1SFlagCounter - (*PatternFlowGtpv1SFlagMetricTag)(nil), // 874: otg.PatternFlowGtpv1SFlagMetricTag - (*PatternFlowGtpv1SFlag)(nil), // 875: otg.PatternFlowGtpv1SFlag - (*PatternFlowGtpv1PnFlagCounter)(nil), // 876: otg.PatternFlowGtpv1PnFlagCounter - (*PatternFlowGtpv1PnFlagMetricTag)(nil), // 877: otg.PatternFlowGtpv1PnFlagMetricTag - (*PatternFlowGtpv1PnFlag)(nil), // 878: otg.PatternFlowGtpv1PnFlag - (*PatternFlowGtpv1MessageTypeCounter)(nil), // 879: otg.PatternFlowGtpv1MessageTypeCounter - (*PatternFlowGtpv1MessageTypeMetricTag)(nil), // 880: otg.PatternFlowGtpv1MessageTypeMetricTag - (*PatternFlowGtpv1MessageType)(nil), // 881: otg.PatternFlowGtpv1MessageType - (*PatternFlowGtpv1MessageLengthCounter)(nil), // 882: otg.PatternFlowGtpv1MessageLengthCounter - (*PatternFlowGtpv1MessageLengthMetricTag)(nil), // 883: otg.PatternFlowGtpv1MessageLengthMetricTag - (*PatternFlowGtpv1MessageLength)(nil), // 884: otg.PatternFlowGtpv1MessageLength - (*PatternFlowGtpv1TeidCounter)(nil), // 885: otg.PatternFlowGtpv1TeidCounter - (*PatternFlowGtpv1TeidMetricTag)(nil), // 886: otg.PatternFlowGtpv1TeidMetricTag - (*PatternFlowGtpv1Teid)(nil), // 887: otg.PatternFlowGtpv1Teid - (*PatternFlowGtpv1SquenceNumberCounter)(nil), // 888: otg.PatternFlowGtpv1SquenceNumberCounter - (*PatternFlowGtpv1SquenceNumberMetricTag)(nil), // 889: otg.PatternFlowGtpv1SquenceNumberMetricTag - (*PatternFlowGtpv1SquenceNumber)(nil), // 890: otg.PatternFlowGtpv1SquenceNumber - (*PatternFlowGtpv1NPduNumberCounter)(nil), // 891: otg.PatternFlowGtpv1NPduNumberCounter - (*PatternFlowGtpv1NPduNumberMetricTag)(nil), // 892: otg.PatternFlowGtpv1NPduNumberMetricTag - (*PatternFlowGtpv1NPduNumber)(nil), // 893: otg.PatternFlowGtpv1NPduNumber - (*PatternFlowGtpv1NextExtensionHeaderTypeCounter)(nil), // 894: otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag)(nil), // 895: otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - (*PatternFlowGtpv1NextExtensionHeaderType)(nil), // 896: otg.PatternFlowGtpv1NextExtensionHeaderType - (*PatternFlowGtpExtensionExtensionLengthCounter)(nil), // 897: otg.PatternFlowGtpExtensionExtensionLengthCounter - (*PatternFlowGtpExtensionExtensionLengthMetricTag)(nil), // 898: otg.PatternFlowGtpExtensionExtensionLengthMetricTag - (*PatternFlowGtpExtensionExtensionLength)(nil), // 899: otg.PatternFlowGtpExtensionExtensionLength - (*PatternFlowGtpExtensionContentsCounter)(nil), // 900: otg.PatternFlowGtpExtensionContentsCounter - (*PatternFlowGtpExtensionContentsMetricTag)(nil), // 901: otg.PatternFlowGtpExtensionContentsMetricTag - (*PatternFlowGtpExtensionContents)(nil), // 902: otg.PatternFlowGtpExtensionContents - (*PatternFlowGtpExtensionNextExtensionHeaderCounter)(nil), // 903: otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag)(nil), // 904: otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - (*PatternFlowGtpExtensionNextExtensionHeader)(nil), // 905: otg.PatternFlowGtpExtensionNextExtensionHeader - (*PatternFlowGtpv2VersionCounter)(nil), // 906: otg.PatternFlowGtpv2VersionCounter - (*PatternFlowGtpv2VersionMetricTag)(nil), // 907: otg.PatternFlowGtpv2VersionMetricTag - (*PatternFlowGtpv2Version)(nil), // 908: otg.PatternFlowGtpv2Version - (*PatternFlowGtpv2PiggybackingFlagCounter)(nil), // 909: otg.PatternFlowGtpv2PiggybackingFlagCounter - (*PatternFlowGtpv2PiggybackingFlagMetricTag)(nil), // 910: otg.PatternFlowGtpv2PiggybackingFlagMetricTag - (*PatternFlowGtpv2PiggybackingFlag)(nil), // 911: otg.PatternFlowGtpv2PiggybackingFlag - (*PatternFlowGtpv2TeidFlagCounter)(nil), // 912: otg.PatternFlowGtpv2TeidFlagCounter - (*PatternFlowGtpv2TeidFlagMetricTag)(nil), // 913: otg.PatternFlowGtpv2TeidFlagMetricTag - (*PatternFlowGtpv2TeidFlag)(nil), // 914: otg.PatternFlowGtpv2TeidFlag - (*PatternFlowGtpv2Spare1Counter)(nil), // 915: otg.PatternFlowGtpv2Spare1Counter - (*PatternFlowGtpv2Spare1MetricTag)(nil), // 916: otg.PatternFlowGtpv2Spare1MetricTag - (*PatternFlowGtpv2Spare1)(nil), // 917: otg.PatternFlowGtpv2Spare1 - (*PatternFlowGtpv2MessageTypeCounter)(nil), // 918: otg.PatternFlowGtpv2MessageTypeCounter - (*PatternFlowGtpv2MessageTypeMetricTag)(nil), // 919: otg.PatternFlowGtpv2MessageTypeMetricTag - (*PatternFlowGtpv2MessageType)(nil), // 920: otg.PatternFlowGtpv2MessageType - (*PatternFlowGtpv2MessageLengthCounter)(nil), // 921: otg.PatternFlowGtpv2MessageLengthCounter - (*PatternFlowGtpv2MessageLengthMetricTag)(nil), // 922: otg.PatternFlowGtpv2MessageLengthMetricTag - (*PatternFlowGtpv2MessageLength)(nil), // 923: otg.PatternFlowGtpv2MessageLength - (*PatternFlowGtpv2TeidCounter)(nil), // 924: otg.PatternFlowGtpv2TeidCounter - (*PatternFlowGtpv2TeidMetricTag)(nil), // 925: otg.PatternFlowGtpv2TeidMetricTag - (*PatternFlowGtpv2Teid)(nil), // 926: otg.PatternFlowGtpv2Teid - (*PatternFlowGtpv2SequenceNumberCounter)(nil), // 927: otg.PatternFlowGtpv2SequenceNumberCounter - (*PatternFlowGtpv2SequenceNumberMetricTag)(nil), // 928: otg.PatternFlowGtpv2SequenceNumberMetricTag - (*PatternFlowGtpv2SequenceNumber)(nil), // 929: otg.PatternFlowGtpv2SequenceNumber - (*PatternFlowGtpv2Spare2Counter)(nil), // 930: otg.PatternFlowGtpv2Spare2Counter - (*PatternFlowGtpv2Spare2MetricTag)(nil), // 931: otg.PatternFlowGtpv2Spare2MetricTag - (*PatternFlowGtpv2Spare2)(nil), // 932: otg.PatternFlowGtpv2Spare2 - (*PatternFlowArpHardwareTypeCounter)(nil), // 933: otg.PatternFlowArpHardwareTypeCounter - (*PatternFlowArpHardwareTypeMetricTag)(nil), // 934: otg.PatternFlowArpHardwareTypeMetricTag - (*PatternFlowArpHardwareType)(nil), // 935: otg.PatternFlowArpHardwareType - (*PatternFlowArpProtocolTypeCounter)(nil), // 936: otg.PatternFlowArpProtocolTypeCounter - (*PatternFlowArpProtocolTypeMetricTag)(nil), // 937: otg.PatternFlowArpProtocolTypeMetricTag - (*PatternFlowArpProtocolType)(nil), // 938: otg.PatternFlowArpProtocolType - (*PatternFlowArpHardwareLengthCounter)(nil), // 939: otg.PatternFlowArpHardwareLengthCounter - (*PatternFlowArpHardwareLengthMetricTag)(nil), // 940: otg.PatternFlowArpHardwareLengthMetricTag - (*PatternFlowArpHardwareLength)(nil), // 941: otg.PatternFlowArpHardwareLength - (*PatternFlowArpProtocolLengthCounter)(nil), // 942: otg.PatternFlowArpProtocolLengthCounter - (*PatternFlowArpProtocolLengthMetricTag)(nil), // 943: otg.PatternFlowArpProtocolLengthMetricTag - (*PatternFlowArpProtocolLength)(nil), // 944: otg.PatternFlowArpProtocolLength - (*PatternFlowArpOperationCounter)(nil), // 945: otg.PatternFlowArpOperationCounter - (*PatternFlowArpOperationMetricTag)(nil), // 946: otg.PatternFlowArpOperationMetricTag - (*PatternFlowArpOperation)(nil), // 947: otg.PatternFlowArpOperation - (*PatternFlowArpSenderHardwareAddrCounter)(nil), // 948: otg.PatternFlowArpSenderHardwareAddrCounter - (*PatternFlowArpSenderHardwareAddrMetricTag)(nil), // 949: otg.PatternFlowArpSenderHardwareAddrMetricTag - (*PatternFlowArpSenderHardwareAddr)(nil), // 950: otg.PatternFlowArpSenderHardwareAddr - (*PatternFlowArpSenderProtocolAddrCounter)(nil), // 951: otg.PatternFlowArpSenderProtocolAddrCounter - (*PatternFlowArpSenderProtocolAddrMetricTag)(nil), // 952: otg.PatternFlowArpSenderProtocolAddrMetricTag - (*PatternFlowArpSenderProtocolAddr)(nil), // 953: otg.PatternFlowArpSenderProtocolAddr - (*PatternFlowArpTargetHardwareAddrCounter)(nil), // 954: otg.PatternFlowArpTargetHardwareAddrCounter - (*PatternFlowArpTargetHardwareAddrMetricTag)(nil), // 955: otg.PatternFlowArpTargetHardwareAddrMetricTag - (*PatternFlowArpTargetHardwareAddr)(nil), // 956: otg.PatternFlowArpTargetHardwareAddr - (*PatternFlowArpTargetProtocolAddrCounter)(nil), // 957: otg.PatternFlowArpTargetProtocolAddrCounter - (*PatternFlowArpTargetProtocolAddrMetricTag)(nil), // 958: otg.PatternFlowArpTargetProtocolAddrMetricTag - (*PatternFlowArpTargetProtocolAddr)(nil), // 959: otg.PatternFlowArpTargetProtocolAddr - (*PatternFlowIcmpEchoTypeCounter)(nil), // 960: otg.PatternFlowIcmpEchoTypeCounter - (*PatternFlowIcmpEchoTypeMetricTag)(nil), // 961: otg.PatternFlowIcmpEchoTypeMetricTag - (*PatternFlowIcmpEchoType)(nil), // 962: otg.PatternFlowIcmpEchoType - (*PatternFlowIcmpEchoCodeCounter)(nil), // 963: otg.PatternFlowIcmpEchoCodeCounter - (*PatternFlowIcmpEchoCodeMetricTag)(nil), // 964: otg.PatternFlowIcmpEchoCodeMetricTag - (*PatternFlowIcmpEchoCode)(nil), // 965: otg.PatternFlowIcmpEchoCode - (*PatternFlowIcmpEchoChecksum)(nil), // 966: otg.PatternFlowIcmpEchoChecksum - (*PatternFlowIcmpEchoIdentifierCounter)(nil), // 967: otg.PatternFlowIcmpEchoIdentifierCounter - (*PatternFlowIcmpEchoIdentifierMetricTag)(nil), // 968: otg.PatternFlowIcmpEchoIdentifierMetricTag - (*PatternFlowIcmpEchoIdentifier)(nil), // 969: otg.PatternFlowIcmpEchoIdentifier - (*PatternFlowIcmpEchoSequenceNumberCounter)(nil), // 970: otg.PatternFlowIcmpEchoSequenceNumberCounter - (*PatternFlowIcmpEchoSequenceNumberMetricTag)(nil), // 971: otg.PatternFlowIcmpEchoSequenceNumberMetricTag - (*PatternFlowIcmpEchoSequenceNumber)(nil), // 972: otg.PatternFlowIcmpEchoSequenceNumber - (*PatternFlowIcmpCommonChecksum)(nil), // 973: otg.PatternFlowIcmpCommonChecksum - (*PatternFlowIcmpNextFieldsIdentifierCounter)(nil), // 974: otg.PatternFlowIcmpNextFieldsIdentifierCounter - (*PatternFlowIcmpNextFieldsIdentifierMetricTag)(nil), // 975: otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - (*PatternFlowIcmpNextFieldsIdentifier)(nil), // 976: otg.PatternFlowIcmpNextFieldsIdentifier - (*PatternFlowIcmpNextFieldsSequenceNumberCounter)(nil), // 977: otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag)(nil), // 978: otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - (*PatternFlowIcmpNextFieldsSequenceNumber)(nil), // 979: otg.PatternFlowIcmpNextFieldsSequenceNumber - (*PatternFlowIcmpv6EchoTypeCounter)(nil), // 980: otg.PatternFlowIcmpv6EchoTypeCounter - (*PatternFlowIcmpv6EchoTypeMetricTag)(nil), // 981: otg.PatternFlowIcmpv6EchoTypeMetricTag - (*PatternFlowIcmpv6EchoType)(nil), // 982: otg.PatternFlowIcmpv6EchoType - (*PatternFlowIcmpv6EchoCodeCounter)(nil), // 983: otg.PatternFlowIcmpv6EchoCodeCounter - (*PatternFlowIcmpv6EchoCodeMetricTag)(nil), // 984: otg.PatternFlowIcmpv6EchoCodeMetricTag - (*PatternFlowIcmpv6EchoCode)(nil), // 985: otg.PatternFlowIcmpv6EchoCode - (*PatternFlowIcmpv6EchoIdentifierCounter)(nil), // 986: otg.PatternFlowIcmpv6EchoIdentifierCounter - (*PatternFlowIcmpv6EchoIdentifierMetricTag)(nil), // 987: otg.PatternFlowIcmpv6EchoIdentifierMetricTag - (*PatternFlowIcmpv6EchoIdentifier)(nil), // 988: otg.PatternFlowIcmpv6EchoIdentifier - (*PatternFlowIcmpv6EchoSequenceNumberCounter)(nil), // 989: otg.PatternFlowIcmpv6EchoSequenceNumberCounter - (*PatternFlowIcmpv6EchoSequenceNumberMetricTag)(nil), // 990: otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - (*PatternFlowIcmpv6EchoSequenceNumber)(nil), // 991: otg.PatternFlowIcmpv6EchoSequenceNumber - (*PatternFlowIcmpv6EchoChecksum)(nil), // 992: otg.PatternFlowIcmpv6EchoChecksum - (*PatternFlowIcmpv6CommonChecksum)(nil), // 993: otg.PatternFlowIcmpv6CommonChecksum - (*PatternFlowPppAddressCounter)(nil), // 994: otg.PatternFlowPppAddressCounter - (*PatternFlowPppAddressMetricTag)(nil), // 995: otg.PatternFlowPppAddressMetricTag - (*PatternFlowPppAddress)(nil), // 996: otg.PatternFlowPppAddress - (*PatternFlowPppControlCounter)(nil), // 997: otg.PatternFlowPppControlCounter - (*PatternFlowPppControlMetricTag)(nil), // 998: otg.PatternFlowPppControlMetricTag - (*PatternFlowPppControl)(nil), // 999: otg.PatternFlowPppControl - (*PatternFlowPppProtocolTypeCounter)(nil), // 1000: otg.PatternFlowPppProtocolTypeCounter - (*PatternFlowPppProtocolTypeMetricTag)(nil), // 1001: otg.PatternFlowPppProtocolTypeMetricTag - (*PatternFlowPppProtocolType)(nil), // 1002: otg.PatternFlowPppProtocolType - (*PatternFlowIgmpv1VersionCounter)(nil), // 1003: otg.PatternFlowIgmpv1VersionCounter - (*PatternFlowIgmpv1VersionMetricTag)(nil), // 1004: otg.PatternFlowIgmpv1VersionMetricTag - (*PatternFlowIgmpv1Version)(nil), // 1005: otg.PatternFlowIgmpv1Version - (*PatternFlowIgmpv1TypeCounter)(nil), // 1006: otg.PatternFlowIgmpv1TypeCounter - (*PatternFlowIgmpv1TypeMetricTag)(nil), // 1007: otg.PatternFlowIgmpv1TypeMetricTag - (*PatternFlowIgmpv1Type)(nil), // 1008: otg.PatternFlowIgmpv1Type - (*PatternFlowIgmpv1UnusedCounter)(nil), // 1009: otg.PatternFlowIgmpv1UnusedCounter - (*PatternFlowIgmpv1UnusedMetricTag)(nil), // 1010: otg.PatternFlowIgmpv1UnusedMetricTag - (*PatternFlowIgmpv1Unused)(nil), // 1011: otg.PatternFlowIgmpv1Unused - (*PatternFlowIgmpv1Checksum)(nil), // 1012: otg.PatternFlowIgmpv1Checksum - (*PatternFlowIgmpv1GroupAddressCounter)(nil), // 1013: otg.PatternFlowIgmpv1GroupAddressCounter - (*PatternFlowIgmpv1GroupAddressMetricTag)(nil), // 1014: otg.PatternFlowIgmpv1GroupAddressMetricTag - (*PatternFlowIgmpv1GroupAddress)(nil), // 1015: otg.PatternFlowIgmpv1GroupAddress - (*PatternFlowMplsLabelCounter)(nil), // 1016: otg.PatternFlowMplsLabelCounter - (*PatternFlowMplsLabelMetricTag)(nil), // 1017: otg.PatternFlowMplsLabelMetricTag - (*PatternFlowMplsLabel)(nil), // 1018: otg.PatternFlowMplsLabel - (*PatternFlowMplsTrafficClassCounter)(nil), // 1019: otg.PatternFlowMplsTrafficClassCounter - (*PatternFlowMplsTrafficClassMetricTag)(nil), // 1020: otg.PatternFlowMplsTrafficClassMetricTag - (*PatternFlowMplsTrafficClass)(nil), // 1021: otg.PatternFlowMplsTrafficClass - (*PatternFlowMplsBottomOfStackCounter)(nil), // 1022: otg.PatternFlowMplsBottomOfStackCounter - (*PatternFlowMplsBottomOfStackMetricTag)(nil), // 1023: otg.PatternFlowMplsBottomOfStackMetricTag - (*PatternFlowMplsBottomOfStack)(nil), // 1024: otg.PatternFlowMplsBottomOfStack - (*PatternFlowMplsTimeToLiveCounter)(nil), // 1025: otg.PatternFlowMplsTimeToLiveCounter - (*PatternFlowMplsTimeToLiveMetricTag)(nil), // 1026: otg.PatternFlowMplsTimeToLiveMetricTag - (*PatternFlowMplsTimeToLive)(nil), // 1027: otg.PatternFlowMplsTimeToLive - (*Version)(nil), // 1028: otg.Version - (*Success)(nil), // 1029: otg.Success - (*Failure)(nil), // 1030: otg.Failure - (*SetConfigRequest)(nil), // 1031: otg.SetConfigRequest - (*UpdateConfigRequest)(nil), // 1032: otg.UpdateConfigRequest - (*SetConfigResponse)(nil), // 1033: otg.SetConfigResponse - (*GetConfigResponse)(nil), // 1034: otg.GetConfigResponse - (*UpdateConfigResponse)(nil), // 1035: otg.UpdateConfigResponse - (*SetControlStateRequest)(nil), // 1036: otg.SetControlStateRequest - (*SetControlStateResponse)(nil), // 1037: otg.SetControlStateResponse - (*SetControlActionRequest)(nil), // 1038: otg.SetControlActionRequest - (*SetControlActionResponse)(nil), // 1039: otg.SetControlActionResponse - (*GetMetricsRequest)(nil), // 1040: otg.GetMetricsRequest - (*GetMetricsResponse)(nil), // 1041: otg.GetMetricsResponse - (*GetStatesRequest)(nil), // 1042: otg.GetStatesRequest - (*GetStatesResponse)(nil), // 1043: otg.GetStatesResponse - (*GetCaptureRequest)(nil), // 1044: otg.GetCaptureRequest - (*GetCaptureResponse)(nil), // 1045: otg.GetCaptureResponse - (*GetVersionResponse)(nil), // 1046: otg.GetVersionResponse - (*LagProtocol_Choice)(nil), // 1047: otg.LagProtocol.Choice - (*LagPortLacp_ActorActivity)(nil), // 1048: otg.LagPortLacp.ActorActivity - (*EthernetConnection_Choice)(nil), // 1049: otg.EthernetConnection.Choice - (*DeviceVlan_Tpid)(nil), // 1050: otg.DeviceVlan.Tpid - (*DeviceIpv4GatewayMAC_Choice)(nil), // 1051: otg.DeviceIpv4GatewayMAC.Choice - (*DeviceIpv6GatewayMAC_Choice)(nil), // 1052: otg.DeviceIpv6GatewayMAC.Choice - (*Layer1_Speed)(nil), // 1053: otg.Layer1.Speed - (*Layer1_Media)(nil), // 1054: otg.Layer1.Media - (*Layer1FlowControl_Choice)(nil), // 1055: otg.Layer1FlowControl.Choice - (*Capture_Format)(nil), // 1056: otg.Capture.Format - (*CaptureFilter_Choice)(nil), // 1057: otg.CaptureFilter.Choice - (*IsisInterface_NetworkType)(nil), // 1058: otg.IsisInterface.NetworkType - (*IsisInterface_LevelType)(nil), // 1059: otg.IsisInterface.LevelType - (*IsisInterfaceAuthentication_AuthType)(nil), // 1060: otg.IsisInterfaceAuthentication.AuthType - (*IsisAuthenticationBase_AuthType)(nil), // 1061: otg.IsisAuthenticationBase.AuthType - (*IsisV4RouteRange_OriginType)(nil), // 1062: otg.IsisV4RouteRange.OriginType - (*IsisV4RouteRange_RedistributionType)(nil), // 1063: otg.IsisV4RouteRange.RedistributionType - (*IsisV6RouteRange_OriginType)(nil), // 1064: otg.IsisV6RouteRange.OriginType - (*IsisV6RouteRange_RedistributionType)(nil), // 1065: otg.IsisV6RouteRange.RedistributionType - (*DeviceBgpMessageHeaderError_Subcode)(nil), // 1066: otg.DeviceBgpMessageHeaderError.Subcode - (*DeviceBgpOpenMessageError_Subcode)(nil), // 1067: otg.DeviceBgpOpenMessageError.Subcode - (*DeviceBgpUpdateMessageError_Subcode)(nil), // 1068: otg.DeviceBgpUpdateMessageError.Subcode - (*DeviceBgpCeaseError_Subcode)(nil), // 1069: otg.DeviceBgpCeaseError.Subcode - (*BgpV4Peer_AsType)(nil), // 1070: otg.BgpV4Peer.AsType - (*BgpV4Peer_AsNumberWidth)(nil), // 1071: otg.BgpV4Peer.AsNumberWidth - (*BgpV4EthernetSegment_ActiveMode)(nil), // 1072: otg.BgpV4EthernetSegment.ActiveMode - (*BgpRouteAdvanced_Origin)(nil), // 1073: otg.BgpRouteAdvanced.Origin - (*BgpCommunity_Type)(nil), // 1074: otg.BgpCommunity.Type - (*BgpExtCommunity_Type)(nil), // 1075: otg.BgpExtCommunity.Type - (*BgpExtCommunity_Subtype)(nil), // 1076: otg.BgpExtCommunity.Subtype - (*BgpAsPath_AsSetMode)(nil), // 1077: otg.BgpAsPath.AsSetMode - (*BgpAsPathSegment_Type)(nil), // 1078: otg.BgpAsPathSegment.Type - (*BgpV4EvpnEvis_Choice)(nil), // 1079: otg.BgpV4EvpnEvis.Choice - (*BgpV4EviVxlan_ReplicationType)(nil), // 1080: otg.BgpV4EviVxlan.ReplicationType - (*BgpRouteDistinguisher_RdType)(nil), // 1081: otg.BgpRouteDistinguisher.RdType - (*BgpRouteTarget_RtType)(nil), // 1082: otg.BgpRouteTarget.RtType - (*BgpV4RouteRange_NextHopMode)(nil), // 1083: otg.BgpV4RouteRange.NextHopMode - (*BgpV4RouteRange_NextHopAddressType)(nil), // 1084: otg.BgpV4RouteRange.NextHopAddressType - (*BgpV6RouteRange_NextHopMode)(nil), // 1085: otg.BgpV6RouteRange.NextHopMode - (*BgpV6RouteRange_NextHopAddressType)(nil), // 1086: otg.BgpV6RouteRange.NextHopAddressType - (*BgpSrteV4Policy_NextHopMode)(nil), // 1087: otg.BgpSrteV4Policy.NextHopMode - (*BgpSrteV4Policy_NextHopAddressType)(nil), // 1088: otg.BgpSrteV4Policy.NextHopAddressType - (*BgpSrteRemoteEndpointSubTlv_AddressFamily)(nil), // 1089: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily - (*BgpSrteBindingSubTlv_BindingSidType)(nil), // 1090: otg.BgpSrteBindingSubTlv.BindingSidType - (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy)(nil), // 1091: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy - (*BgpSrteSegment_SegmentType)(nil), // 1092: otg.BgpSrteSegment.SegmentType - (*BgpSrteV6Policy_NextHopMode)(nil), // 1093: otg.BgpSrteV6Policy.NextHopMode - (*BgpSrteV6Policy_NextHopAddressType)(nil), // 1094: otg.BgpSrteV6Policy.NextHopAddressType - (*BgpV6Peer_AsType)(nil), // 1095: otg.BgpV6Peer.AsType - (*BgpV6Peer_AsNumberWidth)(nil), // 1096: otg.BgpV6Peer.AsNumberWidth - (*BgpV6EthernetSegment_ActiveMode)(nil), // 1097: otg.BgpV6EthernetSegment.ActiveMode - (*BgpV6EvpnEvis_Choice)(nil), // 1098: otg.BgpV6EvpnEvis.Choice - (*BgpV6EviVxlan_ReplicationType)(nil), // 1099: otg.BgpV6EviVxlan.ReplicationType - (*VxlanV4TunnelDestinationIPMode_Choice)(nil), // 1100: otg.VxlanV4TunnelDestinationIPMode.Choice - (*VxlanV6TunnelDestinationIPMode_Choice)(nil), // 1101: otg.VxlanV6TunnelDestinationIPMode.Choice - (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle)(nil), // 1102: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle - (*RsvpEro_PrependNeighborIp)(nil), // 1103: otg.RsvpEro.PrependNeighborIp - (*RsvpEroSubobject_Type)(nil), // 1104: otg.RsvpEroSubobject.Type - (*RsvpEroSubobject_HopType)(nil), // 1105: otg.RsvpEroSubobject.HopType - (*FlowTxRx_Choice)(nil), // 1106: otg.FlowTxRx.Choice - (*FlowRouter_Mode)(nil), // 1107: otg.FlowRouter.Mode - (*FlowHeader_Choice)(nil), // 1108: otg.FlowHeader.Choice - (*FlowIpv4Priority_Choice)(nil), // 1109: otg.FlowIpv4Priority.Choice - (*FlowIcmp_Choice)(nil), // 1110: otg.FlowIcmp.Choice - (*FlowIcmpv6_Choice)(nil), // 1111: otg.FlowIcmpv6.Choice - (*FlowSize_Choice)(nil), // 1112: otg.FlowSize.Choice - (*FlowSizeWeightPairs_Choice)(nil), // 1113: otg.FlowSizeWeightPairs.Choice - (*FlowSizeWeightPairs_Predefined)(nil), // 1114: otg.FlowSizeWeightPairs.Predefined - (*FlowRate_Choice)(nil), // 1115: otg.FlowRate.Choice - (*FlowDuration_Choice)(nil), // 1116: otg.FlowDuration.Choice - (*FlowDelay_Choice)(nil), // 1117: otg.FlowDelay.Choice - (*FlowDurationInterBurstGap_Choice)(nil), // 1118: otg.FlowDurationInterBurstGap.Choice - (*FlowLatencyMetrics_Mode)(nil), // 1119: otg.FlowLatencyMetrics.Mode - (*FlowRxTxRatio_Choice)(nil), // 1120: otg.FlowRxTxRatio.Choice - (*EventRequest_Type)(nil), // 1121: otg.EventRequest.Type - (*LldpConnection_Choice)(nil), // 1122: otg.LldpConnection.Choice - (*LldpChassisId_Choice)(nil), // 1123: otg.LldpChassisId.Choice - (*LldpPortId_Choice)(nil), // 1124: otg.LldpPortId.Choice - (*LldpChassisMacSubType_Choice)(nil), // 1125: otg.LldpChassisMacSubType.Choice - (*LldpPortInterfaceNameSubType_Choice)(nil), // 1126: otg.LldpPortInterfaceNameSubType.Choice - (*LldpSystemName_Choice)(nil), // 1127: otg.LldpSystemName.Choice - (*Error_Kind)(nil), // 1128: otg.Error.Kind - (*ConfigUpdate_Choice)(nil), // 1129: otg.ConfigUpdate.Choice - (*FlowsUpdate_PropertyNames)(nil), // 1130: otg.FlowsUpdate.PropertyNames - (*ControlState_Choice)(nil), // 1131: otg.ControlState.Choice - (*StatePort_Choice)(nil), // 1132: otg.StatePort.Choice - (*StateTraffic_Choice)(nil), // 1133: otg.StateTraffic.Choice - (*StateProtocol_Choice)(nil), // 1134: otg.StateProtocol.Choice - (*StatePortLink_State)(nil), // 1135: otg.StatePortLink.State - (*StatePortCapture_State)(nil), // 1136: otg.StatePortCapture.State - (*StateTrafficFlowTransmit_State)(nil), // 1137: otg.StateTrafficFlowTransmit.State - (*StateProtocolAll_State)(nil), // 1138: otg.StateProtocolAll.State - (*StateProtocolRoute_State)(nil), // 1139: otg.StateProtocolRoute.State - (*StateProtocolLacp_Choice)(nil), // 1140: otg.StateProtocolLacp.Choice - (*StateProtocolLacpAdmin_State)(nil), // 1141: otg.StateProtocolLacpAdmin.State - (*ControlAction_Choice)(nil), // 1142: otg.ControlAction.Choice - (*ActionResponse_Choice)(nil), // 1143: otg.ActionResponse.Choice - (*ActionProtocol_Choice)(nil), // 1144: otg.ActionProtocol.Choice - (*ActionResponseProtocol_Choice)(nil), // 1145: otg.ActionResponseProtocol.Choice - (*ActionProtocolIpv4_Choice)(nil), // 1146: otg.ActionProtocolIpv4.Choice - (*ActionResponseProtocolIpv4_Choice)(nil), // 1147: otg.ActionResponseProtocolIpv4.Choice - (*ActionResponseProtocolIpv4PingResponse_Result)(nil), // 1148: otg.ActionResponseProtocolIpv4PingResponse.Result - (*ActionProtocolIpv6_Choice)(nil), // 1149: otg.ActionProtocolIpv6.Choice - (*ActionResponseProtocolIpv6_Choice)(nil), // 1150: otg.ActionResponseProtocolIpv6.Choice - (*ActionResponseProtocolIpv6PingResponse_Result)(nil), // 1151: otg.ActionResponseProtocolIpv6PingResponse.Result - (*ActionProtocolBgp_Choice)(nil), // 1152: otg.ActionProtocolBgp.Choice - (*ActionProtocolBgpNotification_Choice)(nil), // 1153: otg.ActionProtocolBgpNotification.Choice - (*MetricsRequest_Choice)(nil), // 1154: otg.MetricsRequest.Choice - (*MetricsResponse_Choice)(nil), // 1155: otg.MetricsResponse.Choice - (*PortMetricsRequest_ColumnNames)(nil), // 1156: otg.PortMetricsRequest.ColumnNames - (*PortMetric_Link)(nil), // 1157: otg.PortMetric.Link - (*PortMetric_Capture)(nil), // 1158: otg.PortMetric.Capture - (*PortMetric_Transmit)(nil), // 1159: otg.PortMetric.Transmit - (*FlowMetricsRequest_MetricNames)(nil), // 1160: otg.FlowMetricsRequest.MetricNames - (*FlowTaggedMetricsFilter_MetricNames)(nil), // 1161: otg.FlowTaggedMetricsFilter.MetricNames - (*FlowMetric_Transmit)(nil), // 1162: otg.FlowMetric.Transmit - (*FlowMetricTagValue_Choice)(nil), // 1163: otg.FlowMetricTagValue.Choice - (*Bgpv4MetricsRequest_ColumnNames)(nil), // 1164: otg.Bgpv4MetricsRequest.ColumnNames - (*Bgpv4Metric_SessionState)(nil), // 1165: otg.Bgpv4Metric.SessionState - (*Bgpv4Metric_FsmState)(nil), // 1166: otg.Bgpv4Metric.FsmState - (*Bgpv6MetricsRequest_ColumnNames)(nil), // 1167: otg.Bgpv6MetricsRequest.ColumnNames - (*Bgpv6Metric_SessionState)(nil), // 1168: otg.Bgpv6Metric.SessionState - (*Bgpv6Metric_FsmState)(nil), // 1169: otg.Bgpv6Metric.FsmState - (*IsisMetricsRequest_ColumnNames)(nil), // 1170: otg.IsisMetricsRequest.ColumnNames - (*LagMetricsRequest_ColumnNames)(nil), // 1171: otg.LagMetricsRequest.ColumnNames - (*LagMetric_OperStatus)(nil), // 1172: otg.LagMetric.OperStatus - (*LacpMetricsRequest_ColumnNames)(nil), // 1173: otg.LacpMetricsRequest.ColumnNames - (*LacpMetric_Activity)(nil), // 1174: otg.LacpMetric.Activity - (*LacpMetric_Timeout)(nil), // 1175: otg.LacpMetric.Timeout - (*LacpMetric_Synchronization)(nil), // 1176: otg.LacpMetric.Synchronization - (*LldpMetricsRequest_ColumnNames)(nil), // 1177: otg.LldpMetricsRequest.ColumnNames - (*RsvpMetricsRequest_ColumnNames)(nil), // 1178: otg.RsvpMetricsRequest.ColumnNames - (*StatesRequest_Choice)(nil), // 1179: otg.StatesRequest.Choice - (*StatesResponse_Choice)(nil), // 1180: otg.StatesResponse.Choice - (*BgpPrefixStateRequest_PrefixFilters)(nil), // 1181: otg.BgpPrefixStateRequest.PrefixFilters - (*BgpPrefixIpv4UnicastFilter_Origin)(nil), // 1182: otg.BgpPrefixIpv4UnicastFilter.Origin - (*BgpPrefixIpv6UnicastFilter_Origin)(nil), // 1183: otg.BgpPrefixIpv6UnicastFilter.Origin - (*BgpPrefixIpv4UnicastState_Origin)(nil), // 1184: otg.BgpPrefixIpv4UnicastState.Origin - (*BgpPrefixIpv6UnicastState_Origin)(nil), // 1185: otg.BgpPrefixIpv6UnicastState.Origin - (*ResultBgpCommunity_Type)(nil), // 1186: otg.ResultBgpCommunity.Type - (*ResultBgpAsPathSegment_Type)(nil), // 1187: otg.ResultBgpAsPathSegment.Type - (*IsisLspState_PduType)(nil), // 1188: otg.IsisLspState.PduType - (*IsisLspV4Prefix_RedistributionType)(nil), // 1189: otg.IsisLspV4Prefix.RedistributionType - (*IsisLspV4Prefix_OriginType)(nil), // 1190: otg.IsisLspV4Prefix.OriginType - (*IsisLspExtendedV4Prefix_RedistributionType)(nil), // 1191: otg.IsisLspExtendedV4Prefix.RedistributionType - (*IsisLspV6Prefix_RedistributionType)(nil), // 1192: otg.IsisLspV6Prefix.RedistributionType - (*IsisLspV6Prefix_OriginType)(nil), // 1193: otg.IsisLspV6Prefix.OriginType - (*LldpNeighborsState_ChassisIdType)(nil), // 1194: otg.LldpNeighborsState.ChassisIdType - (*LldpNeighborsState_PortIdType)(nil), // 1195: otg.LldpNeighborsState.PortIdType - (*LldpCapabilityState_CapabilityName)(nil), // 1196: otg.LldpCapabilityState.CapabilityName - (*RsvpLspState_SessionStatus)(nil), // 1197: otg.RsvpLspState.SessionStatus - (*RsvpLspState_LastFlapReason)(nil), // 1198: otg.RsvpLspState.LastFlapReason - (*RsvpLspIpv4Ero_Type)(nil), // 1199: otg.RsvpLspIpv4Ero.Type - (*PatternFlowEthernetDst_Choice)(nil), // 1200: otg.PatternFlowEthernetDst.Choice - (*PatternFlowEthernetSrc_Choice)(nil), // 1201: otg.PatternFlowEthernetSrc.Choice - (*PatternFlowEthernetEtherType_Choice)(nil), // 1202: otg.PatternFlowEthernetEtherType.Choice - (*PatternFlowEthernetPfcQueue_Choice)(nil), // 1203: otg.PatternFlowEthernetPfcQueue.Choice - (*PatternFlowVlanPriority_Choice)(nil), // 1204: otg.PatternFlowVlanPriority.Choice - (*PatternFlowVlanCfi_Choice)(nil), // 1205: otg.PatternFlowVlanCfi.Choice - (*PatternFlowVlanId_Choice)(nil), // 1206: otg.PatternFlowVlanId.Choice - (*PatternFlowVlanTpid_Choice)(nil), // 1207: otg.PatternFlowVlanTpid.Choice - (*PatternFlowVxlanFlags_Choice)(nil), // 1208: otg.PatternFlowVxlanFlags.Choice - (*PatternFlowVxlanReserved0_Choice)(nil), // 1209: otg.PatternFlowVxlanReserved0.Choice - (*PatternFlowVxlanVni_Choice)(nil), // 1210: otg.PatternFlowVxlanVni.Choice - (*PatternFlowVxlanReserved1_Choice)(nil), // 1211: otg.PatternFlowVxlanReserved1.Choice - (*PatternFlowIpv4Version_Choice)(nil), // 1212: otg.PatternFlowIpv4Version.Choice - (*PatternFlowIpv4HeaderLength_Choice)(nil), // 1213: otg.PatternFlowIpv4HeaderLength.Choice - (*PatternFlowIpv4TotalLength_Choice)(nil), // 1214: otg.PatternFlowIpv4TotalLength.Choice - (*PatternFlowIpv4Identification_Choice)(nil), // 1215: otg.PatternFlowIpv4Identification.Choice - (*PatternFlowIpv4Reserved_Choice)(nil), // 1216: otg.PatternFlowIpv4Reserved.Choice - (*PatternFlowIpv4DontFragment_Choice)(nil), // 1217: otg.PatternFlowIpv4DontFragment.Choice - (*PatternFlowIpv4MoreFragments_Choice)(nil), // 1218: otg.PatternFlowIpv4MoreFragments.Choice - (*PatternFlowIpv4FragmentOffset_Choice)(nil), // 1219: otg.PatternFlowIpv4FragmentOffset.Choice - (*PatternFlowIpv4TimeToLive_Choice)(nil), // 1220: otg.PatternFlowIpv4TimeToLive.Choice - (*PatternFlowIpv4Protocol_Choice)(nil), // 1221: otg.PatternFlowIpv4Protocol.Choice - (*PatternFlowIpv4HeaderChecksum_Choice)(nil), // 1222: otg.PatternFlowIpv4HeaderChecksum.Choice - (*PatternFlowIpv4HeaderChecksum_Generated)(nil), // 1223: otg.PatternFlowIpv4HeaderChecksum.Generated - (*PatternFlowIpv4Src_Choice)(nil), // 1224: otg.PatternFlowIpv4Src.Choice - (*PatternFlowIpv4Dst_Choice)(nil), // 1225: otg.PatternFlowIpv4Dst.Choice - (*PatternFlowIpv4PriorityRaw_Choice)(nil), // 1226: otg.PatternFlowIpv4PriorityRaw.Choice - (*PatternFlowIpv4DscpPhb_Choice)(nil), // 1227: otg.PatternFlowIpv4DscpPhb.Choice - (*PatternFlowIpv4DscpEcn_Choice)(nil), // 1228: otg.PatternFlowIpv4DscpEcn.Choice - (*PatternFlowIpv4TosPrecedence_Choice)(nil), // 1229: otg.PatternFlowIpv4TosPrecedence.Choice - (*PatternFlowIpv4TosDelay_Choice)(nil), // 1230: otg.PatternFlowIpv4TosDelay.Choice - (*PatternFlowIpv4TosThroughput_Choice)(nil), // 1231: otg.PatternFlowIpv4TosThroughput.Choice - (*PatternFlowIpv4TosReliability_Choice)(nil), // 1232: otg.PatternFlowIpv4TosReliability.Choice - (*PatternFlowIpv4TosMonetary_Choice)(nil), // 1233: otg.PatternFlowIpv4TosMonetary.Choice - (*PatternFlowIpv4TosUnused_Choice)(nil), // 1234: otg.PatternFlowIpv4TosUnused.Choice - (*PatternFlowIpv6Version_Choice)(nil), // 1235: otg.PatternFlowIpv6Version.Choice - (*PatternFlowIpv6TrafficClass_Choice)(nil), // 1236: otg.PatternFlowIpv6TrafficClass.Choice - (*PatternFlowIpv6FlowLabel_Choice)(nil), // 1237: otg.PatternFlowIpv6FlowLabel.Choice - (*PatternFlowIpv6PayloadLength_Choice)(nil), // 1238: otg.PatternFlowIpv6PayloadLength.Choice - (*PatternFlowIpv6NextHeader_Choice)(nil), // 1239: otg.PatternFlowIpv6NextHeader.Choice - (*PatternFlowIpv6HopLimit_Choice)(nil), // 1240: otg.PatternFlowIpv6HopLimit.Choice - (*PatternFlowIpv6Src_Choice)(nil), // 1241: otg.PatternFlowIpv6Src.Choice - (*PatternFlowIpv6Dst_Choice)(nil), // 1242: otg.PatternFlowIpv6Dst.Choice - (*PatternFlowPfcPauseDst_Choice)(nil), // 1243: otg.PatternFlowPfcPauseDst.Choice - (*PatternFlowPfcPauseSrc_Choice)(nil), // 1244: otg.PatternFlowPfcPauseSrc.Choice - (*PatternFlowPfcPauseEtherType_Choice)(nil), // 1245: otg.PatternFlowPfcPauseEtherType.Choice - (*PatternFlowPfcPauseControlOpCode_Choice)(nil), // 1246: otg.PatternFlowPfcPauseControlOpCode.Choice - (*PatternFlowPfcPauseClassEnableVector_Choice)(nil), // 1247: otg.PatternFlowPfcPauseClassEnableVector.Choice - (*PatternFlowPfcPausePauseClass0_Choice)(nil), // 1248: otg.PatternFlowPfcPausePauseClass0.Choice - (*PatternFlowPfcPausePauseClass1_Choice)(nil), // 1249: otg.PatternFlowPfcPausePauseClass1.Choice - (*PatternFlowPfcPausePauseClass2_Choice)(nil), // 1250: otg.PatternFlowPfcPausePauseClass2.Choice - (*PatternFlowPfcPausePauseClass3_Choice)(nil), // 1251: otg.PatternFlowPfcPausePauseClass3.Choice - (*PatternFlowPfcPausePauseClass4_Choice)(nil), // 1252: otg.PatternFlowPfcPausePauseClass4.Choice - (*PatternFlowPfcPausePauseClass5_Choice)(nil), // 1253: otg.PatternFlowPfcPausePauseClass5.Choice - (*PatternFlowPfcPausePauseClass6_Choice)(nil), // 1254: otg.PatternFlowPfcPausePauseClass6.Choice - (*PatternFlowPfcPausePauseClass7_Choice)(nil), // 1255: otg.PatternFlowPfcPausePauseClass7.Choice - (*PatternFlowEthernetPauseDst_Choice)(nil), // 1256: otg.PatternFlowEthernetPauseDst.Choice - (*PatternFlowEthernetPauseSrc_Choice)(nil), // 1257: otg.PatternFlowEthernetPauseSrc.Choice - (*PatternFlowEthernetPauseEtherType_Choice)(nil), // 1258: otg.PatternFlowEthernetPauseEtherType.Choice - (*PatternFlowEthernetPauseControlOpCode_Choice)(nil), // 1259: otg.PatternFlowEthernetPauseControlOpCode.Choice - (*PatternFlowEthernetPauseTime_Choice)(nil), // 1260: otg.PatternFlowEthernetPauseTime.Choice - (*PatternFlowTcpSrcPort_Choice)(nil), // 1261: otg.PatternFlowTcpSrcPort.Choice - (*PatternFlowTcpDstPort_Choice)(nil), // 1262: otg.PatternFlowTcpDstPort.Choice - (*PatternFlowTcpSeqNum_Choice)(nil), // 1263: otg.PatternFlowTcpSeqNum.Choice - (*PatternFlowTcpAckNum_Choice)(nil), // 1264: otg.PatternFlowTcpAckNum.Choice - (*PatternFlowTcpDataOffset_Choice)(nil), // 1265: otg.PatternFlowTcpDataOffset.Choice - (*PatternFlowTcpEcnNs_Choice)(nil), // 1266: otg.PatternFlowTcpEcnNs.Choice - (*PatternFlowTcpEcnCwr_Choice)(nil), // 1267: otg.PatternFlowTcpEcnCwr.Choice - (*PatternFlowTcpEcnEcho_Choice)(nil), // 1268: otg.PatternFlowTcpEcnEcho.Choice - (*PatternFlowTcpCtlUrg_Choice)(nil), // 1269: otg.PatternFlowTcpCtlUrg.Choice - (*PatternFlowTcpCtlAck_Choice)(nil), // 1270: otg.PatternFlowTcpCtlAck.Choice - (*PatternFlowTcpCtlPsh_Choice)(nil), // 1271: otg.PatternFlowTcpCtlPsh.Choice - (*PatternFlowTcpCtlRst_Choice)(nil), // 1272: otg.PatternFlowTcpCtlRst.Choice - (*PatternFlowTcpCtlSyn_Choice)(nil), // 1273: otg.PatternFlowTcpCtlSyn.Choice - (*PatternFlowTcpCtlFin_Choice)(nil), // 1274: otg.PatternFlowTcpCtlFin.Choice - (*PatternFlowTcpWindow_Choice)(nil), // 1275: otg.PatternFlowTcpWindow.Choice - (*PatternFlowUdpSrcPort_Choice)(nil), // 1276: otg.PatternFlowUdpSrcPort.Choice - (*PatternFlowUdpDstPort_Choice)(nil), // 1277: otg.PatternFlowUdpDstPort.Choice - (*PatternFlowUdpLength_Choice)(nil), // 1278: otg.PatternFlowUdpLength.Choice - (*PatternFlowUdpChecksum_Choice)(nil), // 1279: otg.PatternFlowUdpChecksum.Choice - (*PatternFlowUdpChecksum_Generated)(nil), // 1280: otg.PatternFlowUdpChecksum.Generated - (*PatternFlowGreChecksumPresent_Choice)(nil), // 1281: otg.PatternFlowGreChecksumPresent.Choice - (*PatternFlowGreReserved0_Choice)(nil), // 1282: otg.PatternFlowGreReserved0.Choice - (*PatternFlowGreVersion_Choice)(nil), // 1283: otg.PatternFlowGreVersion.Choice - (*PatternFlowGreProtocol_Choice)(nil), // 1284: otg.PatternFlowGreProtocol.Choice - (*PatternFlowGreChecksum_Choice)(nil), // 1285: otg.PatternFlowGreChecksum.Choice - (*PatternFlowGreChecksum_Generated)(nil), // 1286: otg.PatternFlowGreChecksum.Generated - (*PatternFlowGreReserved1_Choice)(nil), // 1287: otg.PatternFlowGreReserved1.Choice - (*PatternFlowGtpv1Version_Choice)(nil), // 1288: otg.PatternFlowGtpv1Version.Choice - (*PatternFlowGtpv1ProtocolType_Choice)(nil), // 1289: otg.PatternFlowGtpv1ProtocolType.Choice - (*PatternFlowGtpv1Reserved_Choice)(nil), // 1290: otg.PatternFlowGtpv1Reserved.Choice - (*PatternFlowGtpv1EFlag_Choice)(nil), // 1291: otg.PatternFlowGtpv1EFlag.Choice - (*PatternFlowGtpv1SFlag_Choice)(nil), // 1292: otg.PatternFlowGtpv1SFlag.Choice - (*PatternFlowGtpv1PnFlag_Choice)(nil), // 1293: otg.PatternFlowGtpv1PnFlag.Choice - (*PatternFlowGtpv1MessageType_Choice)(nil), // 1294: otg.PatternFlowGtpv1MessageType.Choice - (*PatternFlowGtpv1MessageLength_Choice)(nil), // 1295: otg.PatternFlowGtpv1MessageLength.Choice - (*PatternFlowGtpv1Teid_Choice)(nil), // 1296: otg.PatternFlowGtpv1Teid.Choice - (*PatternFlowGtpv1SquenceNumber_Choice)(nil), // 1297: otg.PatternFlowGtpv1SquenceNumber.Choice - (*PatternFlowGtpv1NPduNumber_Choice)(nil), // 1298: otg.PatternFlowGtpv1NPduNumber.Choice - (*PatternFlowGtpv1NextExtensionHeaderType_Choice)(nil), // 1299: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice - (*PatternFlowGtpExtensionExtensionLength_Choice)(nil), // 1300: otg.PatternFlowGtpExtensionExtensionLength.Choice - (*PatternFlowGtpExtensionContents_Choice)(nil), // 1301: otg.PatternFlowGtpExtensionContents.Choice - (*PatternFlowGtpExtensionNextExtensionHeader_Choice)(nil), // 1302: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice - (*PatternFlowGtpv2Version_Choice)(nil), // 1303: otg.PatternFlowGtpv2Version.Choice - (*PatternFlowGtpv2PiggybackingFlag_Choice)(nil), // 1304: otg.PatternFlowGtpv2PiggybackingFlag.Choice - (*PatternFlowGtpv2TeidFlag_Choice)(nil), // 1305: otg.PatternFlowGtpv2TeidFlag.Choice - (*PatternFlowGtpv2Spare1_Choice)(nil), // 1306: otg.PatternFlowGtpv2Spare1.Choice - (*PatternFlowGtpv2MessageType_Choice)(nil), // 1307: otg.PatternFlowGtpv2MessageType.Choice - (*PatternFlowGtpv2MessageLength_Choice)(nil), // 1308: otg.PatternFlowGtpv2MessageLength.Choice - (*PatternFlowGtpv2Teid_Choice)(nil), // 1309: otg.PatternFlowGtpv2Teid.Choice - (*PatternFlowGtpv2SequenceNumber_Choice)(nil), // 1310: otg.PatternFlowGtpv2SequenceNumber.Choice - (*PatternFlowGtpv2Spare2_Choice)(nil), // 1311: otg.PatternFlowGtpv2Spare2.Choice - (*PatternFlowArpHardwareType_Choice)(nil), // 1312: otg.PatternFlowArpHardwareType.Choice - (*PatternFlowArpProtocolType_Choice)(nil), // 1313: otg.PatternFlowArpProtocolType.Choice - (*PatternFlowArpHardwareLength_Choice)(nil), // 1314: otg.PatternFlowArpHardwareLength.Choice - (*PatternFlowArpProtocolLength_Choice)(nil), // 1315: otg.PatternFlowArpProtocolLength.Choice - (*PatternFlowArpOperation_Choice)(nil), // 1316: otg.PatternFlowArpOperation.Choice - (*PatternFlowArpSenderHardwareAddr_Choice)(nil), // 1317: otg.PatternFlowArpSenderHardwareAddr.Choice - (*PatternFlowArpSenderProtocolAddr_Choice)(nil), // 1318: otg.PatternFlowArpSenderProtocolAddr.Choice - (*PatternFlowArpTargetHardwareAddr_Choice)(nil), // 1319: otg.PatternFlowArpTargetHardwareAddr.Choice - (*PatternFlowArpTargetProtocolAddr_Choice)(nil), // 1320: otg.PatternFlowArpTargetProtocolAddr.Choice - (*PatternFlowIcmpEchoType_Choice)(nil), // 1321: otg.PatternFlowIcmpEchoType.Choice - (*PatternFlowIcmpEchoCode_Choice)(nil), // 1322: otg.PatternFlowIcmpEchoCode.Choice - (*PatternFlowIcmpEchoChecksum_Choice)(nil), // 1323: otg.PatternFlowIcmpEchoChecksum.Choice - (*PatternFlowIcmpEchoChecksum_Generated)(nil), // 1324: otg.PatternFlowIcmpEchoChecksum.Generated - (*PatternFlowIcmpEchoIdentifier_Choice)(nil), // 1325: otg.PatternFlowIcmpEchoIdentifier.Choice - (*PatternFlowIcmpEchoSequenceNumber_Choice)(nil), // 1326: otg.PatternFlowIcmpEchoSequenceNumber.Choice - (*PatternFlowIcmpCommonChecksum_Choice)(nil), // 1327: otg.PatternFlowIcmpCommonChecksum.Choice - (*PatternFlowIcmpCommonChecksum_Generated)(nil), // 1328: otg.PatternFlowIcmpCommonChecksum.Generated - (*PatternFlowIcmpNextFieldsIdentifier_Choice)(nil), // 1329: otg.PatternFlowIcmpNextFieldsIdentifier.Choice - (*PatternFlowIcmpNextFieldsSequenceNumber_Choice)(nil), // 1330: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice - (*PatternFlowIcmpv6EchoType_Choice)(nil), // 1331: otg.PatternFlowIcmpv6EchoType.Choice - (*PatternFlowIcmpv6EchoCode_Choice)(nil), // 1332: otg.PatternFlowIcmpv6EchoCode.Choice - (*PatternFlowIcmpv6EchoIdentifier_Choice)(nil), // 1333: otg.PatternFlowIcmpv6EchoIdentifier.Choice - (*PatternFlowIcmpv6EchoSequenceNumber_Choice)(nil), // 1334: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice - (*PatternFlowIcmpv6EchoChecksum_Choice)(nil), // 1335: otg.PatternFlowIcmpv6EchoChecksum.Choice - (*PatternFlowIcmpv6EchoChecksum_Generated)(nil), // 1336: otg.PatternFlowIcmpv6EchoChecksum.Generated - (*PatternFlowIcmpv6CommonChecksum_Choice)(nil), // 1337: otg.PatternFlowIcmpv6CommonChecksum.Choice - (*PatternFlowIcmpv6CommonChecksum_Generated)(nil), // 1338: otg.PatternFlowIcmpv6CommonChecksum.Generated - (*PatternFlowPppAddress_Choice)(nil), // 1339: otg.PatternFlowPppAddress.Choice - (*PatternFlowPppControl_Choice)(nil), // 1340: otg.PatternFlowPppControl.Choice - (*PatternFlowPppProtocolType_Choice)(nil), // 1341: otg.PatternFlowPppProtocolType.Choice - (*PatternFlowIgmpv1Version_Choice)(nil), // 1342: otg.PatternFlowIgmpv1Version.Choice - (*PatternFlowIgmpv1Type_Choice)(nil), // 1343: otg.PatternFlowIgmpv1Type.Choice - (*PatternFlowIgmpv1Unused_Choice)(nil), // 1344: otg.PatternFlowIgmpv1Unused.Choice - (*PatternFlowIgmpv1Checksum_Choice)(nil), // 1345: otg.PatternFlowIgmpv1Checksum.Choice - (*PatternFlowIgmpv1Checksum_Generated)(nil), // 1346: otg.PatternFlowIgmpv1Checksum.Generated - (*PatternFlowIgmpv1GroupAddress_Choice)(nil), // 1347: otg.PatternFlowIgmpv1GroupAddress.Choice - (*PatternFlowMplsLabel_Choice)(nil), // 1348: otg.PatternFlowMplsLabel.Choice - (*PatternFlowMplsTrafficClass_Choice)(nil), // 1349: otg.PatternFlowMplsTrafficClass.Choice - (*PatternFlowMplsBottomOfStack_Choice)(nil), // 1350: otg.PatternFlowMplsBottomOfStack.Choice - (*PatternFlowMplsTimeToLive_Choice)(nil), // 1351: otg.PatternFlowMplsTimeToLive.Choice - (*emptypb.Empty)(nil), // 1352: google.protobuf.Empty + (BgpExtendedCommunity_Choice_Enum)(0), // 38: otg.BgpExtendedCommunity.Choice.Enum + (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum)(0), // 39: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum + (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum)(0), // 40: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum)(0), // 41: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum + (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum)(0), // 42: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum + (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum)(0), // 43: otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum + (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum)(0), // 44: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + (BgpV6RouteRange_NextHopMode_Enum)(0), // 45: otg.BgpV6RouteRange.NextHopMode.Enum + (BgpV6RouteRange_NextHopAddressType_Enum)(0), // 46: otg.BgpV6RouteRange.NextHopAddressType.Enum + (BgpSrteV4Policy_NextHopMode_Enum)(0), // 47: otg.BgpSrteV4Policy.NextHopMode.Enum + (BgpSrteV4Policy_NextHopAddressType_Enum)(0), // 48: otg.BgpSrteV4Policy.NextHopAddressType.Enum + (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum)(0), // 49: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum + (BgpSrteBindingSubTlv_BindingSidType_Enum)(0), // 50: otg.BgpSrteBindingSubTlv.BindingSidType.Enum + (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum)(0), // 51: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum + (BgpSrteSegment_SegmentType_Enum)(0), // 52: otg.BgpSrteSegment.SegmentType.Enum + (BgpSrteV6Policy_NextHopMode_Enum)(0), // 53: otg.BgpSrteV6Policy.NextHopMode.Enum + (BgpSrteV6Policy_NextHopAddressType_Enum)(0), // 54: otg.BgpSrteV6Policy.NextHopAddressType.Enum + (BgpV6Peer_AsType_Enum)(0), // 55: otg.BgpV6Peer.AsType.Enum + (BgpV6Peer_AsNumberWidth_Enum)(0), // 56: otg.BgpV6Peer.AsNumberWidth.Enum + (BgpV6EthernetSegment_ActiveMode_Enum)(0), // 57: otg.BgpV6EthernetSegment.ActiveMode.Enum + (BgpV6EvpnEvis_Choice_Enum)(0), // 58: otg.BgpV6EvpnEvis.Choice.Enum + (BgpV6EviVxlan_ReplicationType_Enum)(0), // 59: otg.BgpV6EviVxlan.ReplicationType.Enum + (VxlanV4TunnelDestinationIPMode_Choice_Enum)(0), // 60: otg.VxlanV4TunnelDestinationIPMode.Choice.Enum + (VxlanV6TunnelDestinationIPMode_Choice_Enum)(0), // 61: otg.VxlanV6TunnelDestinationIPMode.Choice.Enum + (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum)(0), // 62: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum + (RsvpEro_PrependNeighborIp_Enum)(0), // 63: otg.RsvpEro.PrependNeighborIp.Enum + (RsvpEroSubobject_Type_Enum)(0), // 64: otg.RsvpEroSubobject.Type.Enum + (RsvpEroSubobject_HopType_Enum)(0), // 65: otg.RsvpEroSubobject.HopType.Enum + (FlowTxRx_Choice_Enum)(0), // 66: otg.FlowTxRx.Choice.Enum + (FlowRouter_Mode_Enum)(0), // 67: otg.FlowRouter.Mode.Enum + (FlowHeader_Choice_Enum)(0), // 68: otg.FlowHeader.Choice.Enum + (FlowIpv4Priority_Choice_Enum)(0), // 69: otg.FlowIpv4Priority.Choice.Enum + (FlowIcmp_Choice_Enum)(0), // 70: otg.FlowIcmp.Choice.Enum + (FlowIcmpv6_Choice_Enum)(0), // 71: otg.FlowIcmpv6.Choice.Enum + (FlowSize_Choice_Enum)(0), // 72: otg.FlowSize.Choice.Enum + (FlowSizeWeightPairs_Choice_Enum)(0), // 73: otg.FlowSizeWeightPairs.Choice.Enum + (FlowSizeWeightPairs_Predefined_Enum)(0), // 74: otg.FlowSizeWeightPairs.Predefined.Enum + (FlowRate_Choice_Enum)(0), // 75: otg.FlowRate.Choice.Enum + (FlowDuration_Choice_Enum)(0), // 76: otg.FlowDuration.Choice.Enum + (FlowDelay_Choice_Enum)(0), // 77: otg.FlowDelay.Choice.Enum + (FlowDurationInterBurstGap_Choice_Enum)(0), // 78: otg.FlowDurationInterBurstGap.Choice.Enum + (FlowLatencyMetrics_Mode_Enum)(0), // 79: otg.FlowLatencyMetrics.Mode.Enum + (FlowRxTxRatio_Choice_Enum)(0), // 80: otg.FlowRxTxRatio.Choice.Enum + (EventRequest_Type_Enum)(0), // 81: otg.EventRequest.Type.Enum + (LldpConnection_Choice_Enum)(0), // 82: otg.LldpConnection.Choice.Enum + (LldpChassisId_Choice_Enum)(0), // 83: otg.LldpChassisId.Choice.Enum + (LldpPortId_Choice_Enum)(0), // 84: otg.LldpPortId.Choice.Enum + (LldpChassisMacSubType_Choice_Enum)(0), // 85: otg.LldpChassisMacSubType.Choice.Enum + (LldpPortInterfaceNameSubType_Choice_Enum)(0), // 86: otg.LldpPortInterfaceNameSubType.Choice.Enum + (LldpSystemName_Choice_Enum)(0), // 87: otg.LldpSystemName.Choice.Enum + (Error_Kind_Enum)(0), // 88: otg.Error.Kind.Enum + (ConfigUpdate_Choice_Enum)(0), // 89: otg.ConfigUpdate.Choice.Enum + (FlowsUpdate_PropertyNames_Enum)(0), // 90: otg.FlowsUpdate.PropertyNames.Enum + (ControlState_Choice_Enum)(0), // 91: otg.ControlState.Choice.Enum + (StatePort_Choice_Enum)(0), // 92: otg.StatePort.Choice.Enum + (StateTraffic_Choice_Enum)(0), // 93: otg.StateTraffic.Choice.Enum + (StateProtocol_Choice_Enum)(0), // 94: otg.StateProtocol.Choice.Enum + (StatePortLink_State_Enum)(0), // 95: otg.StatePortLink.State.Enum + (StatePortCapture_State_Enum)(0), // 96: otg.StatePortCapture.State.Enum + (StateTrafficFlowTransmit_State_Enum)(0), // 97: otg.StateTrafficFlowTransmit.State.Enum + (StateProtocolAll_State_Enum)(0), // 98: otg.StateProtocolAll.State.Enum + (StateProtocolRoute_State_Enum)(0), // 99: otg.StateProtocolRoute.State.Enum + (StateProtocolLacp_Choice_Enum)(0), // 100: otg.StateProtocolLacp.Choice.Enum + (StateProtocolLacpAdmin_State_Enum)(0), // 101: otg.StateProtocolLacpAdmin.State.Enum + (ControlAction_Choice_Enum)(0), // 102: otg.ControlAction.Choice.Enum + (ActionResponse_Choice_Enum)(0), // 103: otg.ActionResponse.Choice.Enum + (ActionProtocol_Choice_Enum)(0), // 104: otg.ActionProtocol.Choice.Enum + (ActionResponseProtocol_Choice_Enum)(0), // 105: otg.ActionResponseProtocol.Choice.Enum + (ActionProtocolIpv4_Choice_Enum)(0), // 106: otg.ActionProtocolIpv4.Choice.Enum + (ActionResponseProtocolIpv4_Choice_Enum)(0), // 107: otg.ActionResponseProtocolIpv4.Choice.Enum + (ActionResponseProtocolIpv4PingResponse_Result_Enum)(0), // 108: otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + (ActionProtocolIpv6_Choice_Enum)(0), // 109: otg.ActionProtocolIpv6.Choice.Enum + (ActionResponseProtocolIpv6_Choice_Enum)(0), // 110: otg.ActionResponseProtocolIpv6.Choice.Enum + (ActionResponseProtocolIpv6PingResponse_Result_Enum)(0), // 111: otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + (ActionProtocolBgp_Choice_Enum)(0), // 112: otg.ActionProtocolBgp.Choice.Enum + (ActionProtocolBgpNotification_Choice_Enum)(0), // 113: otg.ActionProtocolBgpNotification.Choice.Enum + (MetricsRequest_Choice_Enum)(0), // 114: otg.MetricsRequest.Choice.Enum + (MetricsResponse_Choice_Enum)(0), // 115: otg.MetricsResponse.Choice.Enum + (PortMetricsRequest_ColumnNames_Enum)(0), // 116: otg.PortMetricsRequest.ColumnNames.Enum + (PortMetric_Link_Enum)(0), // 117: otg.PortMetric.Link.Enum + (PortMetric_Capture_Enum)(0), // 118: otg.PortMetric.Capture.Enum + (PortMetric_Transmit_Enum)(0), // 119: otg.PortMetric.Transmit.Enum + (FlowMetricsRequest_MetricNames_Enum)(0), // 120: otg.FlowMetricsRequest.MetricNames.Enum + (FlowTaggedMetricsFilter_MetricNames_Enum)(0), // 121: otg.FlowTaggedMetricsFilter.MetricNames.Enum + (FlowMetric_Transmit_Enum)(0), // 122: otg.FlowMetric.Transmit.Enum + (FlowMetricTagValue_Choice_Enum)(0), // 123: otg.FlowMetricTagValue.Choice.Enum + (Bgpv4MetricsRequest_ColumnNames_Enum)(0), // 124: otg.Bgpv4MetricsRequest.ColumnNames.Enum + (Bgpv4Metric_SessionState_Enum)(0), // 125: otg.Bgpv4Metric.SessionState.Enum + (Bgpv4Metric_FsmState_Enum)(0), // 126: otg.Bgpv4Metric.FsmState.Enum + (Bgpv6MetricsRequest_ColumnNames_Enum)(0), // 127: otg.Bgpv6MetricsRequest.ColumnNames.Enum + (Bgpv6Metric_SessionState_Enum)(0), // 128: otg.Bgpv6Metric.SessionState.Enum + (Bgpv6Metric_FsmState_Enum)(0), // 129: otg.Bgpv6Metric.FsmState.Enum + (IsisMetricsRequest_ColumnNames_Enum)(0), // 130: otg.IsisMetricsRequest.ColumnNames.Enum + (LagMetricsRequest_ColumnNames_Enum)(0), // 131: otg.LagMetricsRequest.ColumnNames.Enum + (LagMetric_OperStatus_Enum)(0), // 132: otg.LagMetric.OperStatus.Enum + (LacpMetricsRequest_ColumnNames_Enum)(0), // 133: otg.LacpMetricsRequest.ColumnNames.Enum + (LacpMetric_Activity_Enum)(0), // 134: otg.LacpMetric.Activity.Enum + (LacpMetric_Timeout_Enum)(0), // 135: otg.LacpMetric.Timeout.Enum + (LacpMetric_Synchronization_Enum)(0), // 136: otg.LacpMetric.Synchronization.Enum + (LldpMetricsRequest_ColumnNames_Enum)(0), // 137: otg.LldpMetricsRequest.ColumnNames.Enum + (RsvpMetricsRequest_ColumnNames_Enum)(0), // 138: otg.RsvpMetricsRequest.ColumnNames.Enum + (StatesRequest_Choice_Enum)(0), // 139: otg.StatesRequest.Choice.Enum + (StatesResponse_Choice_Enum)(0), // 140: otg.StatesResponse.Choice.Enum + (BgpPrefixStateRequest_PrefixFilters_Enum)(0), // 141: otg.BgpPrefixStateRequest.PrefixFilters.Enum + (BgpPrefixIpv4UnicastFilter_Origin_Enum)(0), // 142: otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + (BgpPrefixIpv6UnicastFilter_Origin_Enum)(0), // 143: otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + (BgpPrefixIpv4UnicastState_Origin_Enum)(0), // 144: otg.BgpPrefixIpv4UnicastState.Origin.Enum + (BgpPrefixIpv6UnicastState_Origin_Enum)(0), // 145: otg.BgpPrefixIpv6UnicastState.Origin.Enum + (ResultBgpCommunity_Type_Enum)(0), // 146: otg.ResultBgpCommunity.Type.Enum + (ResultBgpAsPathSegment_Type_Enum)(0), // 147: otg.ResultBgpAsPathSegment.Type.Enum + (IsisLspState_PduType_Enum)(0), // 148: otg.IsisLspState.PduType.Enum + (IsisLspV4Prefix_RedistributionType_Enum)(0), // 149: otg.IsisLspV4Prefix.RedistributionType.Enum + (IsisLspV4Prefix_OriginType_Enum)(0), // 150: otg.IsisLspV4Prefix.OriginType.Enum + (IsisLspExtendedV4Prefix_RedistributionType_Enum)(0), // 151: otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + (IsisLspV6Prefix_RedistributionType_Enum)(0), // 152: otg.IsisLspV6Prefix.RedistributionType.Enum + (IsisLspV6Prefix_OriginType_Enum)(0), // 153: otg.IsisLspV6Prefix.OriginType.Enum + (LldpNeighborsState_ChassisIdType_Enum)(0), // 154: otg.LldpNeighborsState.ChassisIdType.Enum + (LldpNeighborsState_PortIdType_Enum)(0), // 155: otg.LldpNeighborsState.PortIdType.Enum + (LldpCapabilityState_CapabilityName_Enum)(0), // 156: otg.LldpCapabilityState.CapabilityName.Enum + (RsvpLspState_SessionStatus_Enum)(0), // 157: otg.RsvpLspState.SessionStatus.Enum + (RsvpLspState_LastFlapReason_Enum)(0), // 158: otg.RsvpLspState.LastFlapReason.Enum + (RsvpLspIpv4Ero_Type_Enum)(0), // 159: otg.RsvpLspIpv4Ero.Type.Enum + (PatternFlowEthernetDst_Choice_Enum)(0), // 160: otg.PatternFlowEthernetDst.Choice.Enum + (PatternFlowEthernetSrc_Choice_Enum)(0), // 161: otg.PatternFlowEthernetSrc.Choice.Enum + (PatternFlowEthernetEtherType_Choice_Enum)(0), // 162: otg.PatternFlowEthernetEtherType.Choice.Enum + (PatternFlowEthernetPfcQueue_Choice_Enum)(0), // 163: otg.PatternFlowEthernetPfcQueue.Choice.Enum + (PatternFlowVlanPriority_Choice_Enum)(0), // 164: otg.PatternFlowVlanPriority.Choice.Enum + (PatternFlowVlanCfi_Choice_Enum)(0), // 165: otg.PatternFlowVlanCfi.Choice.Enum + (PatternFlowVlanId_Choice_Enum)(0), // 166: otg.PatternFlowVlanId.Choice.Enum + (PatternFlowVlanTpid_Choice_Enum)(0), // 167: otg.PatternFlowVlanTpid.Choice.Enum + (PatternFlowVxlanFlags_Choice_Enum)(0), // 168: otg.PatternFlowVxlanFlags.Choice.Enum + (PatternFlowVxlanReserved0_Choice_Enum)(0), // 169: otg.PatternFlowVxlanReserved0.Choice.Enum + (PatternFlowVxlanVni_Choice_Enum)(0), // 170: otg.PatternFlowVxlanVni.Choice.Enum + (PatternFlowVxlanReserved1_Choice_Enum)(0), // 171: otg.PatternFlowVxlanReserved1.Choice.Enum + (PatternFlowIpv4Version_Choice_Enum)(0), // 172: otg.PatternFlowIpv4Version.Choice.Enum + (PatternFlowIpv4HeaderLength_Choice_Enum)(0), // 173: otg.PatternFlowIpv4HeaderLength.Choice.Enum + (PatternFlowIpv4TotalLength_Choice_Enum)(0), // 174: otg.PatternFlowIpv4TotalLength.Choice.Enum + (PatternFlowIpv4Identification_Choice_Enum)(0), // 175: otg.PatternFlowIpv4Identification.Choice.Enum + (PatternFlowIpv4Reserved_Choice_Enum)(0), // 176: otg.PatternFlowIpv4Reserved.Choice.Enum + (PatternFlowIpv4DontFragment_Choice_Enum)(0), // 177: otg.PatternFlowIpv4DontFragment.Choice.Enum + (PatternFlowIpv4MoreFragments_Choice_Enum)(0), // 178: otg.PatternFlowIpv4MoreFragments.Choice.Enum + (PatternFlowIpv4FragmentOffset_Choice_Enum)(0), // 179: otg.PatternFlowIpv4FragmentOffset.Choice.Enum + (PatternFlowIpv4TimeToLive_Choice_Enum)(0), // 180: otg.PatternFlowIpv4TimeToLive.Choice.Enum + (PatternFlowIpv4Protocol_Choice_Enum)(0), // 181: otg.PatternFlowIpv4Protocol.Choice.Enum + (PatternFlowIpv4HeaderChecksum_Choice_Enum)(0), // 182: otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + (PatternFlowIpv4HeaderChecksum_Generated_Enum)(0), // 183: otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + (PatternFlowIpv4Src_Choice_Enum)(0), // 184: otg.PatternFlowIpv4Src.Choice.Enum + (PatternFlowIpv4Dst_Choice_Enum)(0), // 185: otg.PatternFlowIpv4Dst.Choice.Enum + (PatternFlowIpv4PriorityRaw_Choice_Enum)(0), // 186: otg.PatternFlowIpv4PriorityRaw.Choice.Enum + (PatternFlowIpv4DscpPhb_Choice_Enum)(0), // 187: otg.PatternFlowIpv4DscpPhb.Choice.Enum + (PatternFlowIpv4DscpEcn_Choice_Enum)(0), // 188: otg.PatternFlowIpv4DscpEcn.Choice.Enum + (PatternFlowIpv4TosPrecedence_Choice_Enum)(0), // 189: otg.PatternFlowIpv4TosPrecedence.Choice.Enum + (PatternFlowIpv4TosDelay_Choice_Enum)(0), // 190: otg.PatternFlowIpv4TosDelay.Choice.Enum + (PatternFlowIpv4TosThroughput_Choice_Enum)(0), // 191: otg.PatternFlowIpv4TosThroughput.Choice.Enum + (PatternFlowIpv4TosReliability_Choice_Enum)(0), // 192: otg.PatternFlowIpv4TosReliability.Choice.Enum + (PatternFlowIpv4TosMonetary_Choice_Enum)(0), // 193: otg.PatternFlowIpv4TosMonetary.Choice.Enum + (PatternFlowIpv4TosUnused_Choice_Enum)(0), // 194: otg.PatternFlowIpv4TosUnused.Choice.Enum + (PatternFlowIpv6Version_Choice_Enum)(0), // 195: otg.PatternFlowIpv6Version.Choice.Enum + (PatternFlowIpv6TrafficClass_Choice_Enum)(0), // 196: otg.PatternFlowIpv6TrafficClass.Choice.Enum + (PatternFlowIpv6FlowLabel_Choice_Enum)(0), // 197: otg.PatternFlowIpv6FlowLabel.Choice.Enum + (PatternFlowIpv6PayloadLength_Choice_Enum)(0), // 198: otg.PatternFlowIpv6PayloadLength.Choice.Enum + (PatternFlowIpv6NextHeader_Choice_Enum)(0), // 199: otg.PatternFlowIpv6NextHeader.Choice.Enum + (PatternFlowIpv6HopLimit_Choice_Enum)(0), // 200: otg.PatternFlowIpv6HopLimit.Choice.Enum + (PatternFlowIpv6Src_Choice_Enum)(0), // 201: otg.PatternFlowIpv6Src.Choice.Enum + (PatternFlowIpv6Dst_Choice_Enum)(0), // 202: otg.PatternFlowIpv6Dst.Choice.Enum + (PatternFlowPfcPauseDst_Choice_Enum)(0), // 203: otg.PatternFlowPfcPauseDst.Choice.Enum + (PatternFlowPfcPauseSrc_Choice_Enum)(0), // 204: otg.PatternFlowPfcPauseSrc.Choice.Enum + (PatternFlowPfcPauseEtherType_Choice_Enum)(0), // 205: otg.PatternFlowPfcPauseEtherType.Choice.Enum + (PatternFlowPfcPauseControlOpCode_Choice_Enum)(0), // 206: otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + (PatternFlowPfcPauseClassEnableVector_Choice_Enum)(0), // 207: otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + (PatternFlowPfcPausePauseClass0_Choice_Enum)(0), // 208: otg.PatternFlowPfcPausePauseClass0.Choice.Enum + (PatternFlowPfcPausePauseClass1_Choice_Enum)(0), // 209: otg.PatternFlowPfcPausePauseClass1.Choice.Enum + (PatternFlowPfcPausePauseClass2_Choice_Enum)(0), // 210: otg.PatternFlowPfcPausePauseClass2.Choice.Enum + (PatternFlowPfcPausePauseClass3_Choice_Enum)(0), // 211: otg.PatternFlowPfcPausePauseClass3.Choice.Enum + (PatternFlowPfcPausePauseClass4_Choice_Enum)(0), // 212: otg.PatternFlowPfcPausePauseClass4.Choice.Enum + (PatternFlowPfcPausePauseClass5_Choice_Enum)(0), // 213: otg.PatternFlowPfcPausePauseClass5.Choice.Enum + (PatternFlowPfcPausePauseClass6_Choice_Enum)(0), // 214: otg.PatternFlowPfcPausePauseClass6.Choice.Enum + (PatternFlowPfcPausePauseClass7_Choice_Enum)(0), // 215: otg.PatternFlowPfcPausePauseClass7.Choice.Enum + (PatternFlowEthernetPauseDst_Choice_Enum)(0), // 216: otg.PatternFlowEthernetPauseDst.Choice.Enum + (PatternFlowEthernetPauseSrc_Choice_Enum)(0), // 217: otg.PatternFlowEthernetPauseSrc.Choice.Enum + (PatternFlowEthernetPauseEtherType_Choice_Enum)(0), // 218: otg.PatternFlowEthernetPauseEtherType.Choice.Enum + (PatternFlowEthernetPauseControlOpCode_Choice_Enum)(0), // 219: otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + (PatternFlowEthernetPauseTime_Choice_Enum)(0), // 220: otg.PatternFlowEthernetPauseTime.Choice.Enum + (PatternFlowTcpSrcPort_Choice_Enum)(0), // 221: otg.PatternFlowTcpSrcPort.Choice.Enum + (PatternFlowTcpDstPort_Choice_Enum)(0), // 222: otg.PatternFlowTcpDstPort.Choice.Enum + (PatternFlowTcpSeqNum_Choice_Enum)(0), // 223: otg.PatternFlowTcpSeqNum.Choice.Enum + (PatternFlowTcpAckNum_Choice_Enum)(0), // 224: otg.PatternFlowTcpAckNum.Choice.Enum + (PatternFlowTcpDataOffset_Choice_Enum)(0), // 225: otg.PatternFlowTcpDataOffset.Choice.Enum + (PatternFlowTcpEcnNs_Choice_Enum)(0), // 226: otg.PatternFlowTcpEcnNs.Choice.Enum + (PatternFlowTcpEcnCwr_Choice_Enum)(0), // 227: otg.PatternFlowTcpEcnCwr.Choice.Enum + (PatternFlowTcpEcnEcho_Choice_Enum)(0), // 228: otg.PatternFlowTcpEcnEcho.Choice.Enum + (PatternFlowTcpCtlUrg_Choice_Enum)(0), // 229: otg.PatternFlowTcpCtlUrg.Choice.Enum + (PatternFlowTcpCtlAck_Choice_Enum)(0), // 230: otg.PatternFlowTcpCtlAck.Choice.Enum + (PatternFlowTcpCtlPsh_Choice_Enum)(0), // 231: otg.PatternFlowTcpCtlPsh.Choice.Enum + (PatternFlowTcpCtlRst_Choice_Enum)(0), // 232: otg.PatternFlowTcpCtlRst.Choice.Enum + (PatternFlowTcpCtlSyn_Choice_Enum)(0), // 233: otg.PatternFlowTcpCtlSyn.Choice.Enum + (PatternFlowTcpCtlFin_Choice_Enum)(0), // 234: otg.PatternFlowTcpCtlFin.Choice.Enum + (PatternFlowTcpWindow_Choice_Enum)(0), // 235: otg.PatternFlowTcpWindow.Choice.Enum + (PatternFlowUdpSrcPort_Choice_Enum)(0), // 236: otg.PatternFlowUdpSrcPort.Choice.Enum + (PatternFlowUdpDstPort_Choice_Enum)(0), // 237: otg.PatternFlowUdpDstPort.Choice.Enum + (PatternFlowUdpLength_Choice_Enum)(0), // 238: otg.PatternFlowUdpLength.Choice.Enum + (PatternFlowUdpChecksum_Choice_Enum)(0), // 239: otg.PatternFlowUdpChecksum.Choice.Enum + (PatternFlowUdpChecksum_Generated_Enum)(0), // 240: otg.PatternFlowUdpChecksum.Generated.Enum + (PatternFlowGreChecksumPresent_Choice_Enum)(0), // 241: otg.PatternFlowGreChecksumPresent.Choice.Enum + (PatternFlowGreReserved0_Choice_Enum)(0), // 242: otg.PatternFlowGreReserved0.Choice.Enum + (PatternFlowGreVersion_Choice_Enum)(0), // 243: otg.PatternFlowGreVersion.Choice.Enum + (PatternFlowGreProtocol_Choice_Enum)(0), // 244: otg.PatternFlowGreProtocol.Choice.Enum + (PatternFlowGreChecksum_Choice_Enum)(0), // 245: otg.PatternFlowGreChecksum.Choice.Enum + (PatternFlowGreChecksum_Generated_Enum)(0), // 246: otg.PatternFlowGreChecksum.Generated.Enum + (PatternFlowGreReserved1_Choice_Enum)(0), // 247: otg.PatternFlowGreReserved1.Choice.Enum + (PatternFlowGtpv1Version_Choice_Enum)(0), // 248: otg.PatternFlowGtpv1Version.Choice.Enum + (PatternFlowGtpv1ProtocolType_Choice_Enum)(0), // 249: otg.PatternFlowGtpv1ProtocolType.Choice.Enum + (PatternFlowGtpv1Reserved_Choice_Enum)(0), // 250: otg.PatternFlowGtpv1Reserved.Choice.Enum + (PatternFlowGtpv1EFlag_Choice_Enum)(0), // 251: otg.PatternFlowGtpv1EFlag.Choice.Enum + (PatternFlowGtpv1SFlag_Choice_Enum)(0), // 252: otg.PatternFlowGtpv1SFlag.Choice.Enum + (PatternFlowGtpv1PnFlag_Choice_Enum)(0), // 253: otg.PatternFlowGtpv1PnFlag.Choice.Enum + (PatternFlowGtpv1MessageType_Choice_Enum)(0), // 254: otg.PatternFlowGtpv1MessageType.Choice.Enum + (PatternFlowGtpv1MessageLength_Choice_Enum)(0), // 255: otg.PatternFlowGtpv1MessageLength.Choice.Enum + (PatternFlowGtpv1Teid_Choice_Enum)(0), // 256: otg.PatternFlowGtpv1Teid.Choice.Enum + (PatternFlowGtpv1SquenceNumber_Choice_Enum)(0), // 257: otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + (PatternFlowGtpv1NPduNumber_Choice_Enum)(0), // 258: otg.PatternFlowGtpv1NPduNumber.Choice.Enum + (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum)(0), // 259: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + (PatternFlowGtpExtensionExtensionLength_Choice_Enum)(0), // 260: otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + (PatternFlowGtpExtensionContents_Choice_Enum)(0), // 261: otg.PatternFlowGtpExtensionContents.Choice.Enum + (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum)(0), // 262: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + (PatternFlowGtpv2Version_Choice_Enum)(0), // 263: otg.PatternFlowGtpv2Version.Choice.Enum + (PatternFlowGtpv2PiggybackingFlag_Choice_Enum)(0), // 264: otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + (PatternFlowGtpv2TeidFlag_Choice_Enum)(0), // 265: otg.PatternFlowGtpv2TeidFlag.Choice.Enum + (PatternFlowGtpv2Spare1_Choice_Enum)(0), // 266: otg.PatternFlowGtpv2Spare1.Choice.Enum + (PatternFlowGtpv2MessageType_Choice_Enum)(0), // 267: otg.PatternFlowGtpv2MessageType.Choice.Enum + (PatternFlowGtpv2MessageLength_Choice_Enum)(0), // 268: otg.PatternFlowGtpv2MessageLength.Choice.Enum + (PatternFlowGtpv2Teid_Choice_Enum)(0), // 269: otg.PatternFlowGtpv2Teid.Choice.Enum + (PatternFlowGtpv2SequenceNumber_Choice_Enum)(0), // 270: otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + (PatternFlowGtpv2Spare2_Choice_Enum)(0), // 271: otg.PatternFlowGtpv2Spare2.Choice.Enum + (PatternFlowArpHardwareType_Choice_Enum)(0), // 272: otg.PatternFlowArpHardwareType.Choice.Enum + (PatternFlowArpProtocolType_Choice_Enum)(0), // 273: otg.PatternFlowArpProtocolType.Choice.Enum + (PatternFlowArpHardwareLength_Choice_Enum)(0), // 274: otg.PatternFlowArpHardwareLength.Choice.Enum + (PatternFlowArpProtocolLength_Choice_Enum)(0), // 275: otg.PatternFlowArpProtocolLength.Choice.Enum + (PatternFlowArpOperation_Choice_Enum)(0), // 276: otg.PatternFlowArpOperation.Choice.Enum + (PatternFlowArpSenderHardwareAddr_Choice_Enum)(0), // 277: otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + (PatternFlowArpSenderProtocolAddr_Choice_Enum)(0), // 278: otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + (PatternFlowArpTargetHardwareAddr_Choice_Enum)(0), // 279: otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + (PatternFlowArpTargetProtocolAddr_Choice_Enum)(0), // 280: otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + (PatternFlowIcmpEchoType_Choice_Enum)(0), // 281: otg.PatternFlowIcmpEchoType.Choice.Enum + (PatternFlowIcmpEchoCode_Choice_Enum)(0), // 282: otg.PatternFlowIcmpEchoCode.Choice.Enum + (PatternFlowIcmpEchoChecksum_Choice_Enum)(0), // 283: otg.PatternFlowIcmpEchoChecksum.Choice.Enum + (PatternFlowIcmpEchoChecksum_Generated_Enum)(0), // 284: otg.PatternFlowIcmpEchoChecksum.Generated.Enum + (PatternFlowIcmpEchoIdentifier_Choice_Enum)(0), // 285: otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + (PatternFlowIcmpEchoSequenceNumber_Choice_Enum)(0), // 286: otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + (PatternFlowIcmpCommonChecksum_Choice_Enum)(0), // 287: otg.PatternFlowIcmpCommonChecksum.Choice.Enum + (PatternFlowIcmpCommonChecksum_Generated_Enum)(0), // 288: otg.PatternFlowIcmpCommonChecksum.Generated.Enum + (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum)(0), // 289: otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum)(0), // 290: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + (PatternFlowIcmpv6EchoType_Choice_Enum)(0), // 291: otg.PatternFlowIcmpv6EchoType.Choice.Enum + (PatternFlowIcmpv6EchoCode_Choice_Enum)(0), // 292: otg.PatternFlowIcmpv6EchoCode.Choice.Enum + (PatternFlowIcmpv6EchoIdentifier_Choice_Enum)(0), // 293: otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum)(0), // 294: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + (PatternFlowIcmpv6EchoChecksum_Choice_Enum)(0), // 295: otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + (PatternFlowIcmpv6EchoChecksum_Generated_Enum)(0), // 296: otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + (PatternFlowIcmpv6CommonChecksum_Choice_Enum)(0), // 297: otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + (PatternFlowIcmpv6CommonChecksum_Generated_Enum)(0), // 298: otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + (PatternFlowPppAddress_Choice_Enum)(0), // 299: otg.PatternFlowPppAddress.Choice.Enum + (PatternFlowPppControl_Choice_Enum)(0), // 300: otg.PatternFlowPppControl.Choice.Enum + (PatternFlowPppProtocolType_Choice_Enum)(0), // 301: otg.PatternFlowPppProtocolType.Choice.Enum + (PatternFlowIgmpv1Version_Choice_Enum)(0), // 302: otg.PatternFlowIgmpv1Version.Choice.Enum + (PatternFlowIgmpv1Type_Choice_Enum)(0), // 303: otg.PatternFlowIgmpv1Type.Choice.Enum + (PatternFlowIgmpv1Unused_Choice_Enum)(0), // 304: otg.PatternFlowIgmpv1Unused.Choice.Enum + (PatternFlowIgmpv1Checksum_Choice_Enum)(0), // 305: otg.PatternFlowIgmpv1Checksum.Choice.Enum + (PatternFlowIgmpv1Checksum_Generated_Enum)(0), // 306: otg.PatternFlowIgmpv1Checksum.Generated.Enum + (PatternFlowIgmpv1GroupAddress_Choice_Enum)(0), // 307: otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + (PatternFlowMplsLabel_Choice_Enum)(0), // 308: otg.PatternFlowMplsLabel.Choice.Enum + (PatternFlowMplsTrafficClass_Choice_Enum)(0), // 309: otg.PatternFlowMplsTrafficClass.Choice.Enum + (PatternFlowMplsBottomOfStack_Choice_Enum)(0), // 310: otg.PatternFlowMplsBottomOfStack.Choice.Enum + (PatternFlowMplsTimeToLive_Choice_Enum)(0), // 311: otg.PatternFlowMplsTimeToLive.Choice.Enum + (*Config)(nil), // 312: otg.Config + (*ConfigOptions)(nil), // 313: otg.ConfigOptions + (*Port)(nil), // 314: otg.Port + (*PortOptions)(nil), // 315: otg.PortOptions + (*Lag)(nil), // 316: otg.Lag + (*LagPort)(nil), // 317: otg.LagPort + (*LagProtocol)(nil), // 318: otg.LagProtocol + (*LagProtocolStatic)(nil), // 319: otg.LagProtocolStatic + (*LagProtocolLacp)(nil), // 320: otg.LagProtocolLacp + (*LagPortLacp)(nil), // 321: otg.LagPortLacp + (*DeviceEthernetBase)(nil), // 322: otg.DeviceEthernetBase + (*DeviceEthernet)(nil), // 323: otg.DeviceEthernet + (*EthernetConnection)(nil), // 324: otg.EthernetConnection + (*DeviceVlan)(nil), // 325: otg.DeviceVlan + (*DeviceIpv4)(nil), // 326: otg.DeviceIpv4 + (*DeviceIpv4Loopback)(nil), // 327: otg.DeviceIpv4Loopback + (*DeviceIpv4GatewayMAC)(nil), // 328: otg.DeviceIpv4GatewayMAC + (*DeviceIpv6)(nil), // 329: otg.DeviceIpv6 + (*DeviceIpv6Loopback)(nil), // 330: otg.DeviceIpv6Loopback + (*DeviceIpv6GatewayMAC)(nil), // 331: otg.DeviceIpv6GatewayMAC + (*Layer1)(nil), // 332: otg.Layer1 + (*Layer1AutoNegotiation)(nil), // 333: otg.Layer1AutoNegotiation + (*Layer1FlowControl)(nil), // 334: otg.Layer1FlowControl + (*Layer1Ieee8023X)(nil), // 335: otg.Layer1Ieee8023x + (*Layer1Ieee8021Qbb)(nil), // 336: otg.Layer1Ieee8021qbb + (*Capture)(nil), // 337: otg.Capture + (*CaptureFilter)(nil), // 338: otg.CaptureFilter + (*CaptureCustom)(nil), // 339: otg.CaptureCustom + (*CaptureField)(nil), // 340: otg.CaptureField + (*CaptureEthernet)(nil), // 341: otg.CaptureEthernet + (*CaptureVlan)(nil), // 342: otg.CaptureVlan + (*CaptureIpv4)(nil), // 343: otg.CaptureIpv4 + (*CaptureIpv6)(nil), // 344: otg.CaptureIpv6 + (*Device)(nil), // 345: otg.Device + (*ProtocolOptions)(nil), // 346: otg.ProtocolOptions + (*DeviceIsisRouter)(nil), // 347: otg.DeviceIsisRouter + (*DeviceIsisMultiInstance)(nil), // 348: otg.DeviceIsisMultiInstance + (*IsisInterface)(nil), // 349: otg.IsisInterface + (*IsisInterfaceLevel)(nil), // 350: otg.IsisInterfaceLevel + (*IsisMT)(nil), // 351: otg.IsisMT + (*LinkStateTE)(nil), // 352: otg.LinkStateTE + (*LinkStatepriorityBandwidths)(nil), // 353: otg.LinkStatepriorityBandwidths + (*IsisInterfaceAuthentication)(nil), // 354: otg.IsisInterfaceAuthentication + (*IsisInterfaceAdvanced)(nil), // 355: otg.IsisInterfaceAdvanced + (*IsisInterfaceLinkProtection)(nil), // 356: otg.IsisInterfaceLinkProtection + (*IsisBasic)(nil), // 357: otg.IsisBasic + (*IsisAdvanced)(nil), // 358: otg.IsisAdvanced + (*IsisAuthentication)(nil), // 359: otg.IsisAuthentication + (*IsisAuthenticationBase)(nil), // 360: otg.IsisAuthenticationBase + (*IsisV4RouteRange)(nil), // 361: otg.IsisV4RouteRange + (*V4RouteAddress)(nil), // 362: otg.V4RouteAddress + (*V6RouteAddress)(nil), // 363: otg.V6RouteAddress + (*MACRouteAddress)(nil), // 364: otg.MACRouteAddress + (*IsisV6RouteRange)(nil), // 365: otg.IsisV6RouteRange + (*DeviceBgpRouter)(nil), // 366: otg.DeviceBgpRouter + (*DeviceBgpMessageHeaderError)(nil), // 367: otg.DeviceBgpMessageHeaderError + (*DeviceBgpOpenMessageError)(nil), // 368: otg.DeviceBgpOpenMessageError + (*DeviceBgpUpdateMessageError)(nil), // 369: otg.DeviceBgpUpdateMessageError + (*DeviceBgpHoldTimerExpired)(nil), // 370: otg.DeviceBgpHoldTimerExpired + (*DeviceBgpFiniteStateMachineError)(nil), // 371: otg.DeviceBgpFiniteStateMachineError + (*DeviceBgpCeaseError)(nil), // 372: otg.DeviceBgpCeaseError + (*DeviceBgpCustomError)(nil), // 373: otg.DeviceBgpCustomError + (*BgpV4Peer)(nil), // 374: otg.BgpV4Peer + (*BgpV4Interface)(nil), // 375: otg.BgpV4Interface + (*BgpV4EthernetSegment)(nil), // 376: otg.BgpV4EthernetSegment + (*BgpEthernetSegmentDfElection)(nil), // 377: otg.BgpEthernetSegmentDfElection + (*BgpRouteAdvanced)(nil), // 378: otg.BgpRouteAdvanced + (*BgpCommunity)(nil), // 379: otg.BgpCommunity + (*BgpExtCommunity)(nil), // 380: otg.BgpExtCommunity + (*BgpAsPath)(nil), // 381: otg.BgpAsPath + (*BgpAsPathSegment)(nil), // 382: otg.BgpAsPathSegment + (*BgpV4EvpnEvis)(nil), // 383: otg.BgpV4EvpnEvis + (*BgpV4EviVxlan)(nil), // 384: otg.BgpV4EviVxlan + (*BgpV4EviVxlanBroadcastDomain)(nil), // 385: otg.BgpV4EviVxlanBroadcastDomain + (*BgpCMacIpRange)(nil), // 386: otg.BgpCMacIpRange + (*BgpRouteDistinguisher)(nil), // 387: otg.BgpRouteDistinguisher + (*BgpRouteTarget)(nil), // 388: otg.BgpRouteTarget + (*BgpAdvanced)(nil), // 389: otg.BgpAdvanced + (*BgpCapability)(nil), // 390: otg.BgpCapability + (*BgpLearnedInformationFilter)(nil), // 391: otg.BgpLearnedInformationFilter + (*BgpV4RouteRange)(nil), // 392: otg.BgpV4RouteRange + (*BgpAddPath)(nil), // 393: otg.BgpAddPath + (*BgpExtendedCommunity)(nil), // 394: otg.BgpExtendedCommunity + (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget)(nil), // 395: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin)(nil), // 396: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + (*BgpExtendedCommunityTransitive2OctetAsType)(nil), // 397: otg.BgpExtendedCommunityTransitive2OctetAsType + (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin)(nil), // 398: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget)(nil), // 399: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + (*BgpExtendedCommunityTransitiveIpv4AddressType)(nil), // 400: otg.BgpExtendedCommunityTransitiveIpv4AddressType + (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget)(nil), // 401: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin)(nil), // 402: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + (*BgpExtendedCommunityTransitive4OctetAsType)(nil), // 403: otg.BgpExtendedCommunityTransitive4OctetAsType + (*BgpExtendedCommunityTransitiveOpaqueTypeColor)(nil), // 404: otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation)(nil), // 405: otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + (*BgpExtendedCommunityTransitiveOpaqueType)(nil), // 406: otg.BgpExtendedCommunityTransitiveOpaqueType + (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac)(nil), // 407: otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + (*BgpExtendedCommunityTransitiveEvpnType)(nil), // 408: otg.BgpExtendedCommunityTransitiveEvpnType + (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth)(nil), // 409: otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + (*BgpExtendedCommunityNonTransitive2OctetAsType)(nil), // 410: otg.BgpExtendedCommunityNonTransitive2OctetAsType + (*BgpExtendedCommunityCustomType)(nil), // 411: otg.BgpExtendedCommunityCustomType + (*BgpV6RouteRange)(nil), // 412: otg.BgpV6RouteRange + (*BgpSrteV4Policy)(nil), // 413: otg.BgpSrteV4Policy + (*BgpSrteV4TunnelTlv)(nil), // 414: otg.BgpSrteV4TunnelTlv + (*BgpSrteRemoteEndpointSubTlv)(nil), // 415: otg.BgpSrteRemoteEndpointSubTlv + (*BgpSrteColorSubTlv)(nil), // 416: otg.BgpSrteColorSubTlv + (*BgpSrteBindingSubTlv)(nil), // 417: otg.BgpSrteBindingSubTlv + (*BgpSrtePreferenceSubTlv)(nil), // 418: otg.BgpSrtePreferenceSubTlv + (*BgpSrtePolicyPrioritySubTlv)(nil), // 419: otg.BgpSrtePolicyPrioritySubTlv + (*BgpSrtePolicyNameSubTlv)(nil), // 420: otg.BgpSrtePolicyNameSubTlv + (*BgpSrteExplicitNullLabelPolicySubTlv)(nil), // 421: otg.BgpSrteExplicitNullLabelPolicySubTlv + (*BgpSrteSegmentList)(nil), // 422: otg.BgpSrteSegmentList + (*BgpSrteSegment)(nil), // 423: otg.BgpSrteSegment + (*BgpSrteSrMplsSid)(nil), // 424: otg.BgpSrteSrMplsSid + (*BgpSrteSRv6SIDEndpointBehaviorAndStructure)(nil), // 425: otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + (*BgpSrteSegmentATypeSubTlv)(nil), // 426: otg.BgpSrteSegmentATypeSubTlv + (*BgpSrteSegmentBTypeSubTlv)(nil), // 427: otg.BgpSrteSegmentBTypeSubTlv + (*BgpSrteSegmentCTypeSubTlv)(nil), // 428: otg.BgpSrteSegmentCTypeSubTlv + (*BgpSrteSegmentDTypeSubTlv)(nil), // 429: otg.BgpSrteSegmentDTypeSubTlv + (*BgpSrteSegmentETypeSubTlv)(nil), // 430: otg.BgpSrteSegmentETypeSubTlv + (*BgpSrteSegmentFTypeSubTlv)(nil), // 431: otg.BgpSrteSegmentFTypeSubTlv + (*BgpSrteSegmentGTypeSubTlv)(nil), // 432: otg.BgpSrteSegmentGTypeSubTlv + (*BgpSrteSegmentHTypeSubTlv)(nil), // 433: otg.BgpSrteSegmentHTypeSubTlv + (*BgpSrteSegmentITypeSubTlv)(nil), // 434: otg.BgpSrteSegmentITypeSubTlv + (*BgpSrteSegmentJTypeSubTlv)(nil), // 435: otg.BgpSrteSegmentJTypeSubTlv + (*BgpSrteSegmentKTypeSubTlv)(nil), // 436: otg.BgpSrteSegmentKTypeSubTlv + (*BgpSrteV6Policy)(nil), // 437: otg.BgpSrteV6Policy + (*BgpSrteV6TunnelTlv)(nil), // 438: otg.BgpSrteV6TunnelTlv + (*BgpGracefulRestart)(nil), // 439: otg.BgpGracefulRestart + (*BgpV6Peer)(nil), // 440: otg.BgpV6Peer + (*BgpV6Interface)(nil), // 441: otg.BgpV6Interface + (*BgpV6SegmentRouting)(nil), // 442: otg.BgpV6SegmentRouting + (*BgpV6EthernetSegment)(nil), // 443: otg.BgpV6EthernetSegment + (*BgpV6EvpnEvis)(nil), // 444: otg.BgpV6EvpnEvis + (*BgpV6EviVxlan)(nil), // 445: otg.BgpV6EviVxlan + (*BgpV6EviVxlanBroadcastDomain)(nil), // 446: otg.BgpV6EviVxlanBroadcastDomain + (*DeviceVxlan)(nil), // 447: otg.DeviceVxlan + (*VxlanV4Tunnel)(nil), // 448: otg.VxlanV4Tunnel + (*VxlanV6Tunnel)(nil), // 449: otg.VxlanV6Tunnel + (*VxlanV4TunnelDestinationIPMode)(nil), // 450: otg.VxlanV4TunnelDestinationIPMode + (*VxlanV6TunnelDestinationIPMode)(nil), // 451: otg.VxlanV6TunnelDestinationIPMode + (*VxlanV4TunnelDestinationIPModeUnicast)(nil), // 452: otg.VxlanV4TunnelDestinationIPModeUnicast + (*VxlanV6TunnelDestinationIPModeUnicast)(nil), // 453: otg.VxlanV6TunnelDestinationIPModeUnicast + (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache)(nil), // 454: otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + (*VxlanV4TunnelDestinationIPModeUnicastVtep)(nil), // 455: otg.VxlanV4TunnelDestinationIPModeUnicastVtep + (*VxlanV6TunnelDestinationIPModeUnicastVtep)(nil), // 456: otg.VxlanV6TunnelDestinationIPModeUnicastVtep + (*VxlanV4TunnelDestinationIPModeMulticast)(nil), // 457: otg.VxlanV4TunnelDestinationIPModeMulticast + (*VxlanV6TunnelDestinationIPModeMulticast)(nil), // 458: otg.VxlanV6TunnelDestinationIPModeMulticast + (*DeviceRsvp)(nil), // 459: otg.DeviceRsvp + (*RsvpIpv4Interface)(nil), // 460: otg.RsvpIpv4Interface + (*RsvpLspIpv4Interface)(nil), // 461: otg.RsvpLspIpv4Interface + (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp)(nil), // 462: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp + (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp)(nil), // 463: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp + (*RsvpSessionAttribute)(nil), // 464: otg.RsvpSessionAttribute + (*RsvpResourceAffinities)(nil), // 465: otg.RsvpResourceAffinities + (*RsvpTspec)(nil), // 466: otg.RsvpTspec + (*RsvpFastReroute)(nil), // 467: otg.RsvpFastReroute + (*RsvpEro)(nil), // 468: otg.RsvpEro + (*RsvpEroSubobject)(nil), // 469: otg.RsvpEroSubobject + (*Flow)(nil), // 470: otg.Flow + (*FlowTxRx)(nil), // 471: otg.FlowTxRx + (*FlowPort)(nil), // 472: otg.FlowPort + (*FlowRouter)(nil), // 473: otg.FlowRouter + (*FlowHeader)(nil), // 474: otg.FlowHeader + (*FlowCustom)(nil), // 475: otg.FlowCustom + (*FlowCustomMetricTag)(nil), // 476: otg.FlowCustomMetricTag + (*FlowEthernet)(nil), // 477: otg.FlowEthernet + (*FlowVlan)(nil), // 478: otg.FlowVlan + (*FlowVxlan)(nil), // 479: otg.FlowVxlan + (*FlowIpv4)(nil), // 480: otg.FlowIpv4 + (*FlowIpv4Priority)(nil), // 481: otg.FlowIpv4Priority + (*FlowIpv4Dscp)(nil), // 482: otg.FlowIpv4Dscp + (*FlowIpv4Tos)(nil), // 483: otg.FlowIpv4Tos + (*FlowIpv6)(nil), // 484: otg.FlowIpv6 + (*FlowPfcPause)(nil), // 485: otg.FlowPfcPause + (*FlowEthernetPause)(nil), // 486: otg.FlowEthernetPause + (*FlowTcp)(nil), // 487: otg.FlowTcp + (*FlowUdp)(nil), // 488: otg.FlowUdp + (*FlowGre)(nil), // 489: otg.FlowGre + (*FlowGtpv1)(nil), // 490: otg.FlowGtpv1 + (*FlowGtpExtension)(nil), // 491: otg.FlowGtpExtension + (*FlowGtpv2)(nil), // 492: otg.FlowGtpv2 + (*FlowArp)(nil), // 493: otg.FlowArp + (*FlowIcmp)(nil), // 494: otg.FlowIcmp + (*FlowIcmpEcho)(nil), // 495: otg.FlowIcmpEcho + (*FlowIcmpv6)(nil), // 496: otg.FlowIcmpv6 + (*FlowIcmpv6Echo)(nil), // 497: otg.FlowIcmpv6Echo + (*FlowPpp)(nil), // 498: otg.FlowPpp + (*FlowIgmpv1)(nil), // 499: otg.FlowIgmpv1 + (*FlowMpls)(nil), // 500: otg.FlowMpls + (*FlowSize)(nil), // 501: otg.FlowSize + (*FlowSizeIncrement)(nil), // 502: otg.FlowSizeIncrement + (*FlowSizeRandom)(nil), // 503: otg.FlowSizeRandom + (*FlowSizeWeightPairs)(nil), // 504: otg.FlowSizeWeightPairs + (*FlowSizeWeightPairsCustom)(nil), // 505: otg.FlowSizeWeightPairsCustom + (*FlowRate)(nil), // 506: otg.FlowRate + (*FlowDuration)(nil), // 507: otg.FlowDuration + (*FlowContinuous)(nil), // 508: otg.FlowContinuous + (*FlowDelay)(nil), // 509: otg.FlowDelay + (*FlowFixedPackets)(nil), // 510: otg.FlowFixedPackets + (*FlowFixedSeconds)(nil), // 511: otg.FlowFixedSeconds + (*FlowBurst)(nil), // 512: otg.FlowBurst + (*FlowDurationInterBurstGap)(nil), // 513: otg.FlowDurationInterBurstGap + (*FlowMetrics)(nil), // 514: otg.FlowMetrics + (*FlowLatencyMetrics)(nil), // 515: otg.FlowLatencyMetrics + (*FlowPredefinedTags)(nil), // 516: otg.FlowPredefinedTags + (*FlowRxTxRatio)(nil), // 517: otg.FlowRxTxRatio + (*FlowRxTxRatioRxCount)(nil), // 518: otg.FlowRxTxRatioRxCount + (*Event)(nil), // 519: otg.Event + (*EventRxRateThreshold)(nil), // 520: otg.EventRxRateThreshold + (*EventLink)(nil), // 521: otg.EventLink + (*EventRouteAdvertiseWithdraw)(nil), // 522: otg.EventRouteAdvertiseWithdraw + (*EventRequest)(nil), // 523: otg.EventRequest + (*EventSubscription)(nil), // 524: otg.EventSubscription + (*Lldp)(nil), // 525: otg.Lldp + (*LldpConnection)(nil), // 526: otg.LldpConnection + (*LldpChassisId)(nil), // 527: otg.LldpChassisId + (*LldpPortId)(nil), // 528: otg.LldpPortId + (*LldpChassisMacSubType)(nil), // 529: otg.LldpChassisMacSubType + (*LldpPortInterfaceNameSubType)(nil), // 530: otg.LldpPortInterfaceNameSubType + (*LldpSystemName)(nil), // 531: otg.LldpSystemName + (*Error)(nil), // 532: otg.Error + (*Warning)(nil), // 533: otg.Warning + (*ConfigUpdate)(nil), // 534: otg.ConfigUpdate + (*FlowsUpdate)(nil), // 535: otg.FlowsUpdate + (*ControlState)(nil), // 536: otg.ControlState + (*StatePort)(nil), // 537: otg.StatePort + (*StateTraffic)(nil), // 538: otg.StateTraffic + (*StateProtocol)(nil), // 539: otg.StateProtocol + (*StatePortLink)(nil), // 540: otg.StatePortLink + (*StatePortCapture)(nil), // 541: otg.StatePortCapture + (*StateTrafficFlowTransmit)(nil), // 542: otg.StateTrafficFlowTransmit + (*StateProtocolAll)(nil), // 543: otg.StateProtocolAll + (*StateProtocolRoute)(nil), // 544: otg.StateProtocolRoute + (*StateProtocolLacp)(nil), // 545: otg.StateProtocolLacp + (*StateProtocolLacpAdmin)(nil), // 546: otg.StateProtocolLacpAdmin + (*ControlAction)(nil), // 547: otg.ControlAction + (*ControlActionResponse)(nil), // 548: otg.ControlActionResponse + (*ActionResponse)(nil), // 549: otg.ActionResponse + (*ActionProtocol)(nil), // 550: otg.ActionProtocol + (*ActionResponseProtocol)(nil), // 551: otg.ActionResponseProtocol + (*ActionProtocolIpv4)(nil), // 552: otg.ActionProtocolIpv4 + (*ActionResponseProtocolIpv4)(nil), // 553: otg.ActionResponseProtocolIpv4 + (*ActionProtocolIpv4Ping)(nil), // 554: otg.ActionProtocolIpv4Ping + (*ActionProtocolIpv4PingRequest)(nil), // 555: otg.ActionProtocolIpv4PingRequest + (*ActionResponseProtocolIpv4Ping)(nil), // 556: otg.ActionResponseProtocolIpv4Ping + (*ActionResponseProtocolIpv4PingResponse)(nil), // 557: otg.ActionResponseProtocolIpv4PingResponse + (*ActionProtocolIpv6)(nil), // 558: otg.ActionProtocolIpv6 + (*ActionResponseProtocolIpv6)(nil), // 559: otg.ActionResponseProtocolIpv6 + (*ActionProtocolIpv6Ping)(nil), // 560: otg.ActionProtocolIpv6Ping + (*ActionProtocolIpv6PingRequest)(nil), // 561: otg.ActionProtocolIpv6PingRequest + (*ActionResponseProtocolIpv6Ping)(nil), // 562: otg.ActionResponseProtocolIpv6Ping + (*ActionResponseProtocolIpv6PingResponse)(nil), // 563: otg.ActionResponseProtocolIpv6PingResponse + (*ActionProtocolBgp)(nil), // 564: otg.ActionProtocolBgp + (*ActionProtocolBgpNotification)(nil), // 565: otg.ActionProtocolBgpNotification + (*ActionProtocolBgpInitiateGracefulRestart)(nil), // 566: otg.ActionProtocolBgpInitiateGracefulRestart + (*MetricsRequest)(nil), // 567: otg.MetricsRequest + (*MetricsResponse)(nil), // 568: otg.MetricsResponse + (*PortMetricsRequest)(nil), // 569: otg.PortMetricsRequest + (*PortMetric)(nil), // 570: otg.PortMetric + (*FlowMetricsRequest)(nil), // 571: otg.FlowMetricsRequest + (*FlowTaggedMetricsFilter)(nil), // 572: otg.FlowTaggedMetricsFilter + (*FlowMetricTagFilter)(nil), // 573: otg.FlowMetricTagFilter + (*FlowMetric)(nil), // 574: otg.FlowMetric + (*FlowTaggedMetric)(nil), // 575: otg.FlowTaggedMetric + (*FlowMetricTag)(nil), // 576: otg.FlowMetricTag + (*FlowMetricTagValue)(nil), // 577: otg.FlowMetricTagValue + (*MetricTimestamp)(nil), // 578: otg.MetricTimestamp + (*MetricLatency)(nil), // 579: otg.MetricLatency + (*Bgpv4MetricsRequest)(nil), // 580: otg.Bgpv4MetricsRequest + (*Bgpv4Metric)(nil), // 581: otg.Bgpv4Metric + (*Bgpv6MetricsRequest)(nil), // 582: otg.Bgpv6MetricsRequest + (*Bgpv6Metric)(nil), // 583: otg.Bgpv6Metric + (*IsisMetricsRequest)(nil), // 584: otg.IsisMetricsRequest + (*IsisMetric)(nil), // 585: otg.IsisMetric + (*LagMetricsRequest)(nil), // 586: otg.LagMetricsRequest + (*LagMetric)(nil), // 587: otg.LagMetric + (*LacpMetricsRequest)(nil), // 588: otg.LacpMetricsRequest + (*LacpMetric)(nil), // 589: otg.LacpMetric + (*LldpMetricsRequest)(nil), // 590: otg.LldpMetricsRequest + (*LldpMetric)(nil), // 591: otg.LldpMetric + (*RsvpMetricsRequest)(nil), // 592: otg.RsvpMetricsRequest + (*RsvpMetric)(nil), // 593: otg.RsvpMetric + (*StatesRequest)(nil), // 594: otg.StatesRequest + (*StatesResponse)(nil), // 595: otg.StatesResponse + (*Neighborsv4StatesRequest)(nil), // 596: otg.Neighborsv4StatesRequest + (*Neighborsv4State)(nil), // 597: otg.Neighborsv4State + (*Neighborsv6StatesRequest)(nil), // 598: otg.Neighborsv6StatesRequest + (*Neighborsv6State)(nil), // 599: otg.Neighborsv6State + (*BgpPrefixStateRequest)(nil), // 600: otg.BgpPrefixStateRequest + (*BgpPrefixIpv4UnicastFilter)(nil), // 601: otg.BgpPrefixIpv4UnicastFilter + (*BgpPrefixIpv6UnicastFilter)(nil), // 602: otg.BgpPrefixIpv6UnicastFilter + (*BgpPrefixesState)(nil), // 603: otg.BgpPrefixesState + (*BgpPrefixIpv4UnicastState)(nil), // 604: otg.BgpPrefixIpv4UnicastState + (*BgpPrefixIpv6UnicastState)(nil), // 605: otg.BgpPrefixIpv6UnicastState + (*ResultBgpCommunity)(nil), // 606: otg.ResultBgpCommunity + (*ResultBgpAsPath)(nil), // 607: otg.ResultBgpAsPath + (*ResultBgpAsPathSegment)(nil), // 608: otg.ResultBgpAsPathSegment + (*IsisLspsStateRequest)(nil), // 609: otg.IsisLspsStateRequest + (*IsisLspsState)(nil), // 610: otg.IsisLspsState + (*IsisLspState)(nil), // 611: otg.IsisLspState + (*IsisLspTlvs)(nil), // 612: otg.IsisLspTlvs + (*IsisLspHostname)(nil), // 613: otg.IsisLspHostname + (*IsisLspFlags)(nil), // 614: otg.IsisLspFlags + (*IsisLspIsReachabilityTlv)(nil), // 615: otg.IsisLspIsReachabilityTlv + (*IsisLspExtendedIsReachabilityTlv)(nil), // 616: otg.IsisLspExtendedIsReachabilityTlv + (*IsisLspneighbor)(nil), // 617: otg.IsisLspneighbor + (*IsisLspIpv4InternalReachabilityTlv)(nil), // 618: otg.IsisLspIpv4InternalReachabilityTlv + (*IsisLspIpv4ExternalReachabilityTlv)(nil), // 619: otg.IsisLspIpv4ExternalReachabilityTlv + (*IsisLspV4Prefix)(nil), // 620: otg.IsisLspV4Prefix + (*IsisLspExtendedIpv4ReachabilityTlv)(nil), // 621: otg.IsisLspExtendedIpv4ReachabilityTlv + (*IsisLspExtendedV4Prefix)(nil), // 622: otg.IsisLspExtendedV4Prefix + (*IsisLspIpv6ReachabilityTlv)(nil), // 623: otg.IsisLspIpv6ReachabilityTlv + (*IsisLspV6Prefix)(nil), // 624: otg.IsisLspV6Prefix + (*IsisLspPrefixAttributes)(nil), // 625: otg.IsisLspPrefixAttributes + (*LldpNeighborsStateRequest)(nil), // 626: otg.LldpNeighborsStateRequest + (*LldpNeighborsState)(nil), // 627: otg.LldpNeighborsState + (*LldpCustomTLVState)(nil), // 628: otg.LldpCustomTLVState + (*LldpCapabilityState)(nil), // 629: otg.LldpCapabilityState + (*RsvpLspsStateRequest)(nil), // 630: otg.RsvpLspsStateRequest + (*RsvpLspsState)(nil), // 631: otg.RsvpLspsState + (*RsvpIPv4LspState)(nil), // 632: otg.RsvpIPv4LspState + (*RsvpLspState)(nil), // 633: otg.RsvpLspState + (*RsvpLspIpv4Rro)(nil), // 634: otg.RsvpLspIpv4Rro + (*RsvpLspIpv4Ero)(nil), // 635: otg.RsvpLspIpv4Ero + (*CaptureRequest)(nil), // 636: otg.CaptureRequest + (*PatternFlowEthernetDstCounter)(nil), // 637: otg.PatternFlowEthernetDstCounter + (*PatternFlowEthernetDstMetricTag)(nil), // 638: otg.PatternFlowEthernetDstMetricTag + (*PatternFlowEthernetDst)(nil), // 639: otg.PatternFlowEthernetDst + (*PatternFlowEthernetSrcCounter)(nil), // 640: otg.PatternFlowEthernetSrcCounter + (*PatternFlowEthernetSrcMetricTag)(nil), // 641: otg.PatternFlowEthernetSrcMetricTag + (*PatternFlowEthernetSrc)(nil), // 642: otg.PatternFlowEthernetSrc + (*PatternFlowEthernetEtherTypeCounter)(nil), // 643: otg.PatternFlowEthernetEtherTypeCounter + (*PatternFlowEthernetEtherTypeMetricTag)(nil), // 644: otg.PatternFlowEthernetEtherTypeMetricTag + (*PatternFlowEthernetEtherType)(nil), // 645: otg.PatternFlowEthernetEtherType + (*PatternFlowEthernetPfcQueueCounter)(nil), // 646: otg.PatternFlowEthernetPfcQueueCounter + (*PatternFlowEthernetPfcQueueMetricTag)(nil), // 647: otg.PatternFlowEthernetPfcQueueMetricTag + (*PatternFlowEthernetPfcQueue)(nil), // 648: otg.PatternFlowEthernetPfcQueue + (*PatternFlowVlanPriorityCounter)(nil), // 649: otg.PatternFlowVlanPriorityCounter + (*PatternFlowVlanPriorityMetricTag)(nil), // 650: otg.PatternFlowVlanPriorityMetricTag + (*PatternFlowVlanPriority)(nil), // 651: otg.PatternFlowVlanPriority + (*PatternFlowVlanCfiCounter)(nil), // 652: otg.PatternFlowVlanCfiCounter + (*PatternFlowVlanCfiMetricTag)(nil), // 653: otg.PatternFlowVlanCfiMetricTag + (*PatternFlowVlanCfi)(nil), // 654: otg.PatternFlowVlanCfi + (*PatternFlowVlanIdCounter)(nil), // 655: otg.PatternFlowVlanIdCounter + (*PatternFlowVlanIdMetricTag)(nil), // 656: otg.PatternFlowVlanIdMetricTag + (*PatternFlowVlanId)(nil), // 657: otg.PatternFlowVlanId + (*PatternFlowVlanTpidCounter)(nil), // 658: otg.PatternFlowVlanTpidCounter + (*PatternFlowVlanTpidMetricTag)(nil), // 659: otg.PatternFlowVlanTpidMetricTag + (*PatternFlowVlanTpid)(nil), // 660: otg.PatternFlowVlanTpid + (*PatternFlowVxlanFlagsCounter)(nil), // 661: otg.PatternFlowVxlanFlagsCounter + (*PatternFlowVxlanFlagsMetricTag)(nil), // 662: otg.PatternFlowVxlanFlagsMetricTag + (*PatternFlowVxlanFlags)(nil), // 663: otg.PatternFlowVxlanFlags + (*PatternFlowVxlanReserved0Counter)(nil), // 664: otg.PatternFlowVxlanReserved0Counter + (*PatternFlowVxlanReserved0MetricTag)(nil), // 665: otg.PatternFlowVxlanReserved0MetricTag + (*PatternFlowVxlanReserved0)(nil), // 666: otg.PatternFlowVxlanReserved0 + (*PatternFlowVxlanVniCounter)(nil), // 667: otg.PatternFlowVxlanVniCounter + (*PatternFlowVxlanVniMetricTag)(nil), // 668: otg.PatternFlowVxlanVniMetricTag + (*PatternFlowVxlanVni)(nil), // 669: otg.PatternFlowVxlanVni + (*PatternFlowVxlanReserved1Counter)(nil), // 670: otg.PatternFlowVxlanReserved1Counter + (*PatternFlowVxlanReserved1MetricTag)(nil), // 671: otg.PatternFlowVxlanReserved1MetricTag + (*PatternFlowVxlanReserved1)(nil), // 672: otg.PatternFlowVxlanReserved1 + (*PatternFlowIpv4VersionCounter)(nil), // 673: otg.PatternFlowIpv4VersionCounter + (*PatternFlowIpv4VersionMetricTag)(nil), // 674: otg.PatternFlowIpv4VersionMetricTag + (*PatternFlowIpv4Version)(nil), // 675: otg.PatternFlowIpv4Version + (*PatternFlowIpv4HeaderLengthCounter)(nil), // 676: otg.PatternFlowIpv4HeaderLengthCounter + (*PatternFlowIpv4HeaderLengthMetricTag)(nil), // 677: otg.PatternFlowIpv4HeaderLengthMetricTag + (*PatternFlowIpv4HeaderLength)(nil), // 678: otg.PatternFlowIpv4HeaderLength + (*PatternFlowIpv4TotalLengthCounter)(nil), // 679: otg.PatternFlowIpv4TotalLengthCounter + (*PatternFlowIpv4TotalLengthMetricTag)(nil), // 680: otg.PatternFlowIpv4TotalLengthMetricTag + (*PatternFlowIpv4TotalLength)(nil), // 681: otg.PatternFlowIpv4TotalLength + (*PatternFlowIpv4IdentificationCounter)(nil), // 682: otg.PatternFlowIpv4IdentificationCounter + (*PatternFlowIpv4IdentificationMetricTag)(nil), // 683: otg.PatternFlowIpv4IdentificationMetricTag + (*PatternFlowIpv4Identification)(nil), // 684: otg.PatternFlowIpv4Identification + (*PatternFlowIpv4ReservedCounter)(nil), // 685: otg.PatternFlowIpv4ReservedCounter + (*PatternFlowIpv4ReservedMetricTag)(nil), // 686: otg.PatternFlowIpv4ReservedMetricTag + (*PatternFlowIpv4Reserved)(nil), // 687: otg.PatternFlowIpv4Reserved + (*PatternFlowIpv4DontFragmentCounter)(nil), // 688: otg.PatternFlowIpv4DontFragmentCounter + (*PatternFlowIpv4DontFragmentMetricTag)(nil), // 689: otg.PatternFlowIpv4DontFragmentMetricTag + (*PatternFlowIpv4DontFragment)(nil), // 690: otg.PatternFlowIpv4DontFragment + (*PatternFlowIpv4MoreFragmentsCounter)(nil), // 691: otg.PatternFlowIpv4MoreFragmentsCounter + (*PatternFlowIpv4MoreFragmentsMetricTag)(nil), // 692: otg.PatternFlowIpv4MoreFragmentsMetricTag + (*PatternFlowIpv4MoreFragments)(nil), // 693: otg.PatternFlowIpv4MoreFragments + (*PatternFlowIpv4FragmentOffsetCounter)(nil), // 694: otg.PatternFlowIpv4FragmentOffsetCounter + (*PatternFlowIpv4FragmentOffsetMetricTag)(nil), // 695: otg.PatternFlowIpv4FragmentOffsetMetricTag + (*PatternFlowIpv4FragmentOffset)(nil), // 696: otg.PatternFlowIpv4FragmentOffset + (*PatternFlowIpv4TimeToLiveCounter)(nil), // 697: otg.PatternFlowIpv4TimeToLiveCounter + (*PatternFlowIpv4TimeToLiveMetricTag)(nil), // 698: otg.PatternFlowIpv4TimeToLiveMetricTag + (*PatternFlowIpv4TimeToLive)(nil), // 699: otg.PatternFlowIpv4TimeToLive + (*PatternFlowIpv4ProtocolCounter)(nil), // 700: otg.PatternFlowIpv4ProtocolCounter + (*PatternFlowIpv4ProtocolMetricTag)(nil), // 701: otg.PatternFlowIpv4ProtocolMetricTag + (*PatternFlowIpv4Protocol)(nil), // 702: otg.PatternFlowIpv4Protocol + (*PatternFlowIpv4HeaderChecksum)(nil), // 703: otg.PatternFlowIpv4HeaderChecksum + (*PatternFlowIpv4SrcCounter)(nil), // 704: otg.PatternFlowIpv4SrcCounter + (*PatternFlowIpv4SrcMetricTag)(nil), // 705: otg.PatternFlowIpv4SrcMetricTag + (*PatternFlowIpv4Src)(nil), // 706: otg.PatternFlowIpv4Src + (*PatternFlowIpv4DstCounter)(nil), // 707: otg.PatternFlowIpv4DstCounter + (*PatternFlowIpv4DstMetricTag)(nil), // 708: otg.PatternFlowIpv4DstMetricTag + (*PatternFlowIpv4Dst)(nil), // 709: otg.PatternFlowIpv4Dst + (*PatternFlowIpv4PriorityRawCounter)(nil), // 710: otg.PatternFlowIpv4PriorityRawCounter + (*PatternFlowIpv4PriorityRawMetricTag)(nil), // 711: otg.PatternFlowIpv4PriorityRawMetricTag + (*PatternFlowIpv4PriorityRaw)(nil), // 712: otg.PatternFlowIpv4PriorityRaw + (*PatternFlowIpv4DscpPhbCounter)(nil), // 713: otg.PatternFlowIpv4DscpPhbCounter + (*PatternFlowIpv4DscpPhbMetricTag)(nil), // 714: otg.PatternFlowIpv4DscpPhbMetricTag + (*PatternFlowIpv4DscpPhb)(nil), // 715: otg.PatternFlowIpv4DscpPhb + (*PatternFlowIpv4DscpEcnCounter)(nil), // 716: otg.PatternFlowIpv4DscpEcnCounter + (*PatternFlowIpv4DscpEcnMetricTag)(nil), // 717: otg.PatternFlowIpv4DscpEcnMetricTag + (*PatternFlowIpv4DscpEcn)(nil), // 718: otg.PatternFlowIpv4DscpEcn + (*PatternFlowIpv4TosPrecedenceCounter)(nil), // 719: otg.PatternFlowIpv4TosPrecedenceCounter + (*PatternFlowIpv4TosPrecedenceMetricTag)(nil), // 720: otg.PatternFlowIpv4TosPrecedenceMetricTag + (*PatternFlowIpv4TosPrecedence)(nil), // 721: otg.PatternFlowIpv4TosPrecedence + (*PatternFlowIpv4TosDelayCounter)(nil), // 722: otg.PatternFlowIpv4TosDelayCounter + (*PatternFlowIpv4TosDelayMetricTag)(nil), // 723: otg.PatternFlowIpv4TosDelayMetricTag + (*PatternFlowIpv4TosDelay)(nil), // 724: otg.PatternFlowIpv4TosDelay + (*PatternFlowIpv4TosThroughputCounter)(nil), // 725: otg.PatternFlowIpv4TosThroughputCounter + (*PatternFlowIpv4TosThroughputMetricTag)(nil), // 726: otg.PatternFlowIpv4TosThroughputMetricTag + (*PatternFlowIpv4TosThroughput)(nil), // 727: otg.PatternFlowIpv4TosThroughput + (*PatternFlowIpv4TosReliabilityCounter)(nil), // 728: otg.PatternFlowIpv4TosReliabilityCounter + (*PatternFlowIpv4TosReliabilityMetricTag)(nil), // 729: otg.PatternFlowIpv4TosReliabilityMetricTag + (*PatternFlowIpv4TosReliability)(nil), // 730: otg.PatternFlowIpv4TosReliability + (*PatternFlowIpv4TosMonetaryCounter)(nil), // 731: otg.PatternFlowIpv4TosMonetaryCounter + (*PatternFlowIpv4TosMonetaryMetricTag)(nil), // 732: otg.PatternFlowIpv4TosMonetaryMetricTag + (*PatternFlowIpv4TosMonetary)(nil), // 733: otg.PatternFlowIpv4TosMonetary + (*PatternFlowIpv4TosUnusedCounter)(nil), // 734: otg.PatternFlowIpv4TosUnusedCounter + (*PatternFlowIpv4TosUnusedMetricTag)(nil), // 735: otg.PatternFlowIpv4TosUnusedMetricTag + (*PatternFlowIpv4TosUnused)(nil), // 736: otg.PatternFlowIpv4TosUnused + (*PatternFlowIpv6VersionCounter)(nil), // 737: otg.PatternFlowIpv6VersionCounter + (*PatternFlowIpv6VersionMetricTag)(nil), // 738: otg.PatternFlowIpv6VersionMetricTag + (*PatternFlowIpv6Version)(nil), // 739: otg.PatternFlowIpv6Version + (*PatternFlowIpv6TrafficClassCounter)(nil), // 740: otg.PatternFlowIpv6TrafficClassCounter + (*PatternFlowIpv6TrafficClassMetricTag)(nil), // 741: otg.PatternFlowIpv6TrafficClassMetricTag + (*PatternFlowIpv6TrafficClass)(nil), // 742: otg.PatternFlowIpv6TrafficClass + (*PatternFlowIpv6FlowLabelCounter)(nil), // 743: otg.PatternFlowIpv6FlowLabelCounter + (*PatternFlowIpv6FlowLabelMetricTag)(nil), // 744: otg.PatternFlowIpv6FlowLabelMetricTag + (*PatternFlowIpv6FlowLabel)(nil), // 745: otg.PatternFlowIpv6FlowLabel + (*PatternFlowIpv6PayloadLengthCounter)(nil), // 746: otg.PatternFlowIpv6PayloadLengthCounter + (*PatternFlowIpv6PayloadLengthMetricTag)(nil), // 747: otg.PatternFlowIpv6PayloadLengthMetricTag + (*PatternFlowIpv6PayloadLength)(nil), // 748: otg.PatternFlowIpv6PayloadLength + (*PatternFlowIpv6NextHeaderCounter)(nil), // 749: otg.PatternFlowIpv6NextHeaderCounter + (*PatternFlowIpv6NextHeaderMetricTag)(nil), // 750: otg.PatternFlowIpv6NextHeaderMetricTag + (*PatternFlowIpv6NextHeader)(nil), // 751: otg.PatternFlowIpv6NextHeader + (*PatternFlowIpv6HopLimitCounter)(nil), // 752: otg.PatternFlowIpv6HopLimitCounter + (*PatternFlowIpv6HopLimitMetricTag)(nil), // 753: otg.PatternFlowIpv6HopLimitMetricTag + (*PatternFlowIpv6HopLimit)(nil), // 754: otg.PatternFlowIpv6HopLimit + (*PatternFlowIpv6SrcCounter)(nil), // 755: otg.PatternFlowIpv6SrcCounter + (*PatternFlowIpv6SrcMetricTag)(nil), // 756: otg.PatternFlowIpv6SrcMetricTag + (*PatternFlowIpv6Src)(nil), // 757: otg.PatternFlowIpv6Src + (*PatternFlowIpv6DstCounter)(nil), // 758: otg.PatternFlowIpv6DstCounter + (*PatternFlowIpv6DstMetricTag)(nil), // 759: otg.PatternFlowIpv6DstMetricTag + (*PatternFlowIpv6Dst)(nil), // 760: otg.PatternFlowIpv6Dst + (*PatternFlowPfcPauseDstCounter)(nil), // 761: otg.PatternFlowPfcPauseDstCounter + (*PatternFlowPfcPauseDstMetricTag)(nil), // 762: otg.PatternFlowPfcPauseDstMetricTag + (*PatternFlowPfcPauseDst)(nil), // 763: otg.PatternFlowPfcPauseDst + (*PatternFlowPfcPauseSrcCounter)(nil), // 764: otg.PatternFlowPfcPauseSrcCounter + (*PatternFlowPfcPauseSrcMetricTag)(nil), // 765: otg.PatternFlowPfcPauseSrcMetricTag + (*PatternFlowPfcPauseSrc)(nil), // 766: otg.PatternFlowPfcPauseSrc + (*PatternFlowPfcPauseEtherTypeCounter)(nil), // 767: otg.PatternFlowPfcPauseEtherTypeCounter + (*PatternFlowPfcPauseEtherTypeMetricTag)(nil), // 768: otg.PatternFlowPfcPauseEtherTypeMetricTag + (*PatternFlowPfcPauseEtherType)(nil), // 769: otg.PatternFlowPfcPauseEtherType + (*PatternFlowPfcPauseControlOpCodeCounter)(nil), // 770: otg.PatternFlowPfcPauseControlOpCodeCounter + (*PatternFlowPfcPauseControlOpCodeMetricTag)(nil), // 771: otg.PatternFlowPfcPauseControlOpCodeMetricTag + (*PatternFlowPfcPauseControlOpCode)(nil), // 772: otg.PatternFlowPfcPauseControlOpCode + (*PatternFlowPfcPauseClassEnableVectorCounter)(nil), // 773: otg.PatternFlowPfcPauseClassEnableVectorCounter + (*PatternFlowPfcPauseClassEnableVectorMetricTag)(nil), // 774: otg.PatternFlowPfcPauseClassEnableVectorMetricTag + (*PatternFlowPfcPauseClassEnableVector)(nil), // 775: otg.PatternFlowPfcPauseClassEnableVector + (*PatternFlowPfcPausePauseClass0Counter)(nil), // 776: otg.PatternFlowPfcPausePauseClass0Counter + (*PatternFlowPfcPausePauseClass0MetricTag)(nil), // 777: otg.PatternFlowPfcPausePauseClass0MetricTag + (*PatternFlowPfcPausePauseClass0)(nil), // 778: otg.PatternFlowPfcPausePauseClass0 + (*PatternFlowPfcPausePauseClass1Counter)(nil), // 779: otg.PatternFlowPfcPausePauseClass1Counter + (*PatternFlowPfcPausePauseClass1MetricTag)(nil), // 780: otg.PatternFlowPfcPausePauseClass1MetricTag + (*PatternFlowPfcPausePauseClass1)(nil), // 781: otg.PatternFlowPfcPausePauseClass1 + (*PatternFlowPfcPausePauseClass2Counter)(nil), // 782: otg.PatternFlowPfcPausePauseClass2Counter + (*PatternFlowPfcPausePauseClass2MetricTag)(nil), // 783: otg.PatternFlowPfcPausePauseClass2MetricTag + (*PatternFlowPfcPausePauseClass2)(nil), // 784: otg.PatternFlowPfcPausePauseClass2 + (*PatternFlowPfcPausePauseClass3Counter)(nil), // 785: otg.PatternFlowPfcPausePauseClass3Counter + (*PatternFlowPfcPausePauseClass3MetricTag)(nil), // 786: otg.PatternFlowPfcPausePauseClass3MetricTag + (*PatternFlowPfcPausePauseClass3)(nil), // 787: otg.PatternFlowPfcPausePauseClass3 + (*PatternFlowPfcPausePauseClass4Counter)(nil), // 788: otg.PatternFlowPfcPausePauseClass4Counter + (*PatternFlowPfcPausePauseClass4MetricTag)(nil), // 789: otg.PatternFlowPfcPausePauseClass4MetricTag + (*PatternFlowPfcPausePauseClass4)(nil), // 790: otg.PatternFlowPfcPausePauseClass4 + (*PatternFlowPfcPausePauseClass5Counter)(nil), // 791: otg.PatternFlowPfcPausePauseClass5Counter + (*PatternFlowPfcPausePauseClass5MetricTag)(nil), // 792: otg.PatternFlowPfcPausePauseClass5MetricTag + (*PatternFlowPfcPausePauseClass5)(nil), // 793: otg.PatternFlowPfcPausePauseClass5 + (*PatternFlowPfcPausePauseClass6Counter)(nil), // 794: otg.PatternFlowPfcPausePauseClass6Counter + (*PatternFlowPfcPausePauseClass6MetricTag)(nil), // 795: otg.PatternFlowPfcPausePauseClass6MetricTag + (*PatternFlowPfcPausePauseClass6)(nil), // 796: otg.PatternFlowPfcPausePauseClass6 + (*PatternFlowPfcPausePauseClass7Counter)(nil), // 797: otg.PatternFlowPfcPausePauseClass7Counter + (*PatternFlowPfcPausePauseClass7MetricTag)(nil), // 798: otg.PatternFlowPfcPausePauseClass7MetricTag + (*PatternFlowPfcPausePauseClass7)(nil), // 799: otg.PatternFlowPfcPausePauseClass7 + (*PatternFlowEthernetPauseDstCounter)(nil), // 800: otg.PatternFlowEthernetPauseDstCounter + (*PatternFlowEthernetPauseDstMetricTag)(nil), // 801: otg.PatternFlowEthernetPauseDstMetricTag + (*PatternFlowEthernetPauseDst)(nil), // 802: otg.PatternFlowEthernetPauseDst + (*PatternFlowEthernetPauseSrcCounter)(nil), // 803: otg.PatternFlowEthernetPauseSrcCounter + (*PatternFlowEthernetPauseSrcMetricTag)(nil), // 804: otg.PatternFlowEthernetPauseSrcMetricTag + (*PatternFlowEthernetPauseSrc)(nil), // 805: otg.PatternFlowEthernetPauseSrc + (*PatternFlowEthernetPauseEtherTypeCounter)(nil), // 806: otg.PatternFlowEthernetPauseEtherTypeCounter + (*PatternFlowEthernetPauseEtherTypeMetricTag)(nil), // 807: otg.PatternFlowEthernetPauseEtherTypeMetricTag + (*PatternFlowEthernetPauseEtherType)(nil), // 808: otg.PatternFlowEthernetPauseEtherType + (*PatternFlowEthernetPauseControlOpCodeCounter)(nil), // 809: otg.PatternFlowEthernetPauseControlOpCodeCounter + (*PatternFlowEthernetPauseControlOpCodeMetricTag)(nil), // 810: otg.PatternFlowEthernetPauseControlOpCodeMetricTag + (*PatternFlowEthernetPauseControlOpCode)(nil), // 811: otg.PatternFlowEthernetPauseControlOpCode + (*PatternFlowEthernetPauseTimeCounter)(nil), // 812: otg.PatternFlowEthernetPauseTimeCounter + (*PatternFlowEthernetPauseTimeMetricTag)(nil), // 813: otg.PatternFlowEthernetPauseTimeMetricTag + (*PatternFlowEthernetPauseTime)(nil), // 814: otg.PatternFlowEthernetPauseTime + (*PatternFlowTcpSrcPortCounter)(nil), // 815: otg.PatternFlowTcpSrcPortCounter + (*PatternFlowTcpSrcPortMetricTag)(nil), // 816: otg.PatternFlowTcpSrcPortMetricTag + (*PatternFlowTcpSrcPort)(nil), // 817: otg.PatternFlowTcpSrcPort + (*PatternFlowTcpDstPortCounter)(nil), // 818: otg.PatternFlowTcpDstPortCounter + (*PatternFlowTcpDstPortMetricTag)(nil), // 819: otg.PatternFlowTcpDstPortMetricTag + (*PatternFlowTcpDstPort)(nil), // 820: otg.PatternFlowTcpDstPort + (*PatternFlowTcpSeqNumCounter)(nil), // 821: otg.PatternFlowTcpSeqNumCounter + (*PatternFlowTcpSeqNumMetricTag)(nil), // 822: otg.PatternFlowTcpSeqNumMetricTag + (*PatternFlowTcpSeqNum)(nil), // 823: otg.PatternFlowTcpSeqNum + (*PatternFlowTcpAckNumCounter)(nil), // 824: otg.PatternFlowTcpAckNumCounter + (*PatternFlowTcpAckNumMetricTag)(nil), // 825: otg.PatternFlowTcpAckNumMetricTag + (*PatternFlowTcpAckNum)(nil), // 826: otg.PatternFlowTcpAckNum + (*PatternFlowTcpDataOffsetCounter)(nil), // 827: otg.PatternFlowTcpDataOffsetCounter + (*PatternFlowTcpDataOffsetMetricTag)(nil), // 828: otg.PatternFlowTcpDataOffsetMetricTag + (*PatternFlowTcpDataOffset)(nil), // 829: otg.PatternFlowTcpDataOffset + (*PatternFlowTcpEcnNsCounter)(nil), // 830: otg.PatternFlowTcpEcnNsCounter + (*PatternFlowTcpEcnNsMetricTag)(nil), // 831: otg.PatternFlowTcpEcnNsMetricTag + (*PatternFlowTcpEcnNs)(nil), // 832: otg.PatternFlowTcpEcnNs + (*PatternFlowTcpEcnCwrCounter)(nil), // 833: otg.PatternFlowTcpEcnCwrCounter + (*PatternFlowTcpEcnCwrMetricTag)(nil), // 834: otg.PatternFlowTcpEcnCwrMetricTag + (*PatternFlowTcpEcnCwr)(nil), // 835: otg.PatternFlowTcpEcnCwr + (*PatternFlowTcpEcnEchoCounter)(nil), // 836: otg.PatternFlowTcpEcnEchoCounter + (*PatternFlowTcpEcnEchoMetricTag)(nil), // 837: otg.PatternFlowTcpEcnEchoMetricTag + (*PatternFlowTcpEcnEcho)(nil), // 838: otg.PatternFlowTcpEcnEcho + (*PatternFlowTcpCtlUrgCounter)(nil), // 839: otg.PatternFlowTcpCtlUrgCounter + (*PatternFlowTcpCtlUrgMetricTag)(nil), // 840: otg.PatternFlowTcpCtlUrgMetricTag + (*PatternFlowTcpCtlUrg)(nil), // 841: otg.PatternFlowTcpCtlUrg + (*PatternFlowTcpCtlAckCounter)(nil), // 842: otg.PatternFlowTcpCtlAckCounter + (*PatternFlowTcpCtlAckMetricTag)(nil), // 843: otg.PatternFlowTcpCtlAckMetricTag + (*PatternFlowTcpCtlAck)(nil), // 844: otg.PatternFlowTcpCtlAck + (*PatternFlowTcpCtlPshCounter)(nil), // 845: otg.PatternFlowTcpCtlPshCounter + (*PatternFlowTcpCtlPshMetricTag)(nil), // 846: otg.PatternFlowTcpCtlPshMetricTag + (*PatternFlowTcpCtlPsh)(nil), // 847: otg.PatternFlowTcpCtlPsh + (*PatternFlowTcpCtlRstCounter)(nil), // 848: otg.PatternFlowTcpCtlRstCounter + (*PatternFlowTcpCtlRstMetricTag)(nil), // 849: otg.PatternFlowTcpCtlRstMetricTag + (*PatternFlowTcpCtlRst)(nil), // 850: otg.PatternFlowTcpCtlRst + (*PatternFlowTcpCtlSynCounter)(nil), // 851: otg.PatternFlowTcpCtlSynCounter + (*PatternFlowTcpCtlSynMetricTag)(nil), // 852: otg.PatternFlowTcpCtlSynMetricTag + (*PatternFlowTcpCtlSyn)(nil), // 853: otg.PatternFlowTcpCtlSyn + (*PatternFlowTcpCtlFinCounter)(nil), // 854: otg.PatternFlowTcpCtlFinCounter + (*PatternFlowTcpCtlFinMetricTag)(nil), // 855: otg.PatternFlowTcpCtlFinMetricTag + (*PatternFlowTcpCtlFin)(nil), // 856: otg.PatternFlowTcpCtlFin + (*PatternFlowTcpWindowCounter)(nil), // 857: otg.PatternFlowTcpWindowCounter + (*PatternFlowTcpWindowMetricTag)(nil), // 858: otg.PatternFlowTcpWindowMetricTag + (*PatternFlowTcpWindow)(nil), // 859: otg.PatternFlowTcpWindow + (*PatternFlowUdpSrcPortCounter)(nil), // 860: otg.PatternFlowUdpSrcPortCounter + (*PatternFlowUdpSrcPortMetricTag)(nil), // 861: otg.PatternFlowUdpSrcPortMetricTag + (*PatternFlowUdpSrcPort)(nil), // 862: otg.PatternFlowUdpSrcPort + (*PatternFlowUdpDstPortCounter)(nil), // 863: otg.PatternFlowUdpDstPortCounter + (*PatternFlowUdpDstPortMetricTag)(nil), // 864: otg.PatternFlowUdpDstPortMetricTag + (*PatternFlowUdpDstPort)(nil), // 865: otg.PatternFlowUdpDstPort + (*PatternFlowUdpLengthCounter)(nil), // 866: otg.PatternFlowUdpLengthCounter + (*PatternFlowUdpLengthMetricTag)(nil), // 867: otg.PatternFlowUdpLengthMetricTag + (*PatternFlowUdpLength)(nil), // 868: otg.PatternFlowUdpLength + (*PatternFlowUdpChecksum)(nil), // 869: otg.PatternFlowUdpChecksum + (*PatternFlowGreChecksumPresentCounter)(nil), // 870: otg.PatternFlowGreChecksumPresentCounter + (*PatternFlowGreChecksumPresentMetricTag)(nil), // 871: otg.PatternFlowGreChecksumPresentMetricTag + (*PatternFlowGreChecksumPresent)(nil), // 872: otg.PatternFlowGreChecksumPresent + (*PatternFlowGreReserved0Counter)(nil), // 873: otg.PatternFlowGreReserved0Counter + (*PatternFlowGreReserved0MetricTag)(nil), // 874: otg.PatternFlowGreReserved0MetricTag + (*PatternFlowGreReserved0)(nil), // 875: otg.PatternFlowGreReserved0 + (*PatternFlowGreVersionCounter)(nil), // 876: otg.PatternFlowGreVersionCounter + (*PatternFlowGreVersionMetricTag)(nil), // 877: otg.PatternFlowGreVersionMetricTag + (*PatternFlowGreVersion)(nil), // 878: otg.PatternFlowGreVersion + (*PatternFlowGreProtocolCounter)(nil), // 879: otg.PatternFlowGreProtocolCounter + (*PatternFlowGreProtocolMetricTag)(nil), // 880: otg.PatternFlowGreProtocolMetricTag + (*PatternFlowGreProtocol)(nil), // 881: otg.PatternFlowGreProtocol + (*PatternFlowGreChecksum)(nil), // 882: otg.PatternFlowGreChecksum + (*PatternFlowGreReserved1Counter)(nil), // 883: otg.PatternFlowGreReserved1Counter + (*PatternFlowGreReserved1MetricTag)(nil), // 884: otg.PatternFlowGreReserved1MetricTag + (*PatternFlowGreReserved1)(nil), // 885: otg.PatternFlowGreReserved1 + (*PatternFlowGtpv1VersionCounter)(nil), // 886: otg.PatternFlowGtpv1VersionCounter + (*PatternFlowGtpv1VersionMetricTag)(nil), // 887: otg.PatternFlowGtpv1VersionMetricTag + (*PatternFlowGtpv1Version)(nil), // 888: otg.PatternFlowGtpv1Version + (*PatternFlowGtpv1ProtocolTypeCounter)(nil), // 889: otg.PatternFlowGtpv1ProtocolTypeCounter + (*PatternFlowGtpv1ProtocolTypeMetricTag)(nil), // 890: otg.PatternFlowGtpv1ProtocolTypeMetricTag + (*PatternFlowGtpv1ProtocolType)(nil), // 891: otg.PatternFlowGtpv1ProtocolType + (*PatternFlowGtpv1ReservedCounter)(nil), // 892: otg.PatternFlowGtpv1ReservedCounter + (*PatternFlowGtpv1ReservedMetricTag)(nil), // 893: otg.PatternFlowGtpv1ReservedMetricTag + (*PatternFlowGtpv1Reserved)(nil), // 894: otg.PatternFlowGtpv1Reserved + (*PatternFlowGtpv1EFlagCounter)(nil), // 895: otg.PatternFlowGtpv1EFlagCounter + (*PatternFlowGtpv1EFlagMetricTag)(nil), // 896: otg.PatternFlowGtpv1EFlagMetricTag + (*PatternFlowGtpv1EFlag)(nil), // 897: otg.PatternFlowGtpv1EFlag + (*PatternFlowGtpv1SFlagCounter)(nil), // 898: otg.PatternFlowGtpv1SFlagCounter + (*PatternFlowGtpv1SFlagMetricTag)(nil), // 899: otg.PatternFlowGtpv1SFlagMetricTag + (*PatternFlowGtpv1SFlag)(nil), // 900: otg.PatternFlowGtpv1SFlag + (*PatternFlowGtpv1PnFlagCounter)(nil), // 901: otg.PatternFlowGtpv1PnFlagCounter + (*PatternFlowGtpv1PnFlagMetricTag)(nil), // 902: otg.PatternFlowGtpv1PnFlagMetricTag + (*PatternFlowGtpv1PnFlag)(nil), // 903: otg.PatternFlowGtpv1PnFlag + (*PatternFlowGtpv1MessageTypeCounter)(nil), // 904: otg.PatternFlowGtpv1MessageTypeCounter + (*PatternFlowGtpv1MessageTypeMetricTag)(nil), // 905: otg.PatternFlowGtpv1MessageTypeMetricTag + (*PatternFlowGtpv1MessageType)(nil), // 906: otg.PatternFlowGtpv1MessageType + (*PatternFlowGtpv1MessageLengthCounter)(nil), // 907: otg.PatternFlowGtpv1MessageLengthCounter + (*PatternFlowGtpv1MessageLengthMetricTag)(nil), // 908: otg.PatternFlowGtpv1MessageLengthMetricTag + (*PatternFlowGtpv1MessageLength)(nil), // 909: otg.PatternFlowGtpv1MessageLength + (*PatternFlowGtpv1TeidCounter)(nil), // 910: otg.PatternFlowGtpv1TeidCounter + (*PatternFlowGtpv1TeidMetricTag)(nil), // 911: otg.PatternFlowGtpv1TeidMetricTag + (*PatternFlowGtpv1Teid)(nil), // 912: otg.PatternFlowGtpv1Teid + (*PatternFlowGtpv1SquenceNumberCounter)(nil), // 913: otg.PatternFlowGtpv1SquenceNumberCounter + (*PatternFlowGtpv1SquenceNumberMetricTag)(nil), // 914: otg.PatternFlowGtpv1SquenceNumberMetricTag + (*PatternFlowGtpv1SquenceNumber)(nil), // 915: otg.PatternFlowGtpv1SquenceNumber + (*PatternFlowGtpv1NPduNumberCounter)(nil), // 916: otg.PatternFlowGtpv1NPduNumberCounter + (*PatternFlowGtpv1NPduNumberMetricTag)(nil), // 917: otg.PatternFlowGtpv1NPduNumberMetricTag + (*PatternFlowGtpv1NPduNumber)(nil), // 918: otg.PatternFlowGtpv1NPduNumber + (*PatternFlowGtpv1NextExtensionHeaderTypeCounter)(nil), // 919: otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag)(nil), // 920: otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + (*PatternFlowGtpv1NextExtensionHeaderType)(nil), // 921: otg.PatternFlowGtpv1NextExtensionHeaderType + (*PatternFlowGtpExtensionExtensionLengthCounter)(nil), // 922: otg.PatternFlowGtpExtensionExtensionLengthCounter + (*PatternFlowGtpExtensionExtensionLengthMetricTag)(nil), // 923: otg.PatternFlowGtpExtensionExtensionLengthMetricTag + (*PatternFlowGtpExtensionExtensionLength)(nil), // 924: otg.PatternFlowGtpExtensionExtensionLength + (*PatternFlowGtpExtensionContentsCounter)(nil), // 925: otg.PatternFlowGtpExtensionContentsCounter + (*PatternFlowGtpExtensionContentsMetricTag)(nil), // 926: otg.PatternFlowGtpExtensionContentsMetricTag + (*PatternFlowGtpExtensionContents)(nil), // 927: otg.PatternFlowGtpExtensionContents + (*PatternFlowGtpExtensionNextExtensionHeaderCounter)(nil), // 928: otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag)(nil), // 929: otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + (*PatternFlowGtpExtensionNextExtensionHeader)(nil), // 930: otg.PatternFlowGtpExtensionNextExtensionHeader + (*PatternFlowGtpv2VersionCounter)(nil), // 931: otg.PatternFlowGtpv2VersionCounter + (*PatternFlowGtpv2VersionMetricTag)(nil), // 932: otg.PatternFlowGtpv2VersionMetricTag + (*PatternFlowGtpv2Version)(nil), // 933: otg.PatternFlowGtpv2Version + (*PatternFlowGtpv2PiggybackingFlagCounter)(nil), // 934: otg.PatternFlowGtpv2PiggybackingFlagCounter + (*PatternFlowGtpv2PiggybackingFlagMetricTag)(nil), // 935: otg.PatternFlowGtpv2PiggybackingFlagMetricTag + (*PatternFlowGtpv2PiggybackingFlag)(nil), // 936: otg.PatternFlowGtpv2PiggybackingFlag + (*PatternFlowGtpv2TeidFlagCounter)(nil), // 937: otg.PatternFlowGtpv2TeidFlagCounter + (*PatternFlowGtpv2TeidFlagMetricTag)(nil), // 938: otg.PatternFlowGtpv2TeidFlagMetricTag + (*PatternFlowGtpv2TeidFlag)(nil), // 939: otg.PatternFlowGtpv2TeidFlag + (*PatternFlowGtpv2Spare1Counter)(nil), // 940: otg.PatternFlowGtpv2Spare1Counter + (*PatternFlowGtpv2Spare1MetricTag)(nil), // 941: otg.PatternFlowGtpv2Spare1MetricTag + (*PatternFlowGtpv2Spare1)(nil), // 942: otg.PatternFlowGtpv2Spare1 + (*PatternFlowGtpv2MessageTypeCounter)(nil), // 943: otg.PatternFlowGtpv2MessageTypeCounter + (*PatternFlowGtpv2MessageTypeMetricTag)(nil), // 944: otg.PatternFlowGtpv2MessageTypeMetricTag + (*PatternFlowGtpv2MessageType)(nil), // 945: otg.PatternFlowGtpv2MessageType + (*PatternFlowGtpv2MessageLengthCounter)(nil), // 946: otg.PatternFlowGtpv2MessageLengthCounter + (*PatternFlowGtpv2MessageLengthMetricTag)(nil), // 947: otg.PatternFlowGtpv2MessageLengthMetricTag + (*PatternFlowGtpv2MessageLength)(nil), // 948: otg.PatternFlowGtpv2MessageLength + (*PatternFlowGtpv2TeidCounter)(nil), // 949: otg.PatternFlowGtpv2TeidCounter + (*PatternFlowGtpv2TeidMetricTag)(nil), // 950: otg.PatternFlowGtpv2TeidMetricTag + (*PatternFlowGtpv2Teid)(nil), // 951: otg.PatternFlowGtpv2Teid + (*PatternFlowGtpv2SequenceNumberCounter)(nil), // 952: otg.PatternFlowGtpv2SequenceNumberCounter + (*PatternFlowGtpv2SequenceNumberMetricTag)(nil), // 953: otg.PatternFlowGtpv2SequenceNumberMetricTag + (*PatternFlowGtpv2SequenceNumber)(nil), // 954: otg.PatternFlowGtpv2SequenceNumber + (*PatternFlowGtpv2Spare2Counter)(nil), // 955: otg.PatternFlowGtpv2Spare2Counter + (*PatternFlowGtpv2Spare2MetricTag)(nil), // 956: otg.PatternFlowGtpv2Spare2MetricTag + (*PatternFlowGtpv2Spare2)(nil), // 957: otg.PatternFlowGtpv2Spare2 + (*PatternFlowArpHardwareTypeCounter)(nil), // 958: otg.PatternFlowArpHardwareTypeCounter + (*PatternFlowArpHardwareTypeMetricTag)(nil), // 959: otg.PatternFlowArpHardwareTypeMetricTag + (*PatternFlowArpHardwareType)(nil), // 960: otg.PatternFlowArpHardwareType + (*PatternFlowArpProtocolTypeCounter)(nil), // 961: otg.PatternFlowArpProtocolTypeCounter + (*PatternFlowArpProtocolTypeMetricTag)(nil), // 962: otg.PatternFlowArpProtocolTypeMetricTag + (*PatternFlowArpProtocolType)(nil), // 963: otg.PatternFlowArpProtocolType + (*PatternFlowArpHardwareLengthCounter)(nil), // 964: otg.PatternFlowArpHardwareLengthCounter + (*PatternFlowArpHardwareLengthMetricTag)(nil), // 965: otg.PatternFlowArpHardwareLengthMetricTag + (*PatternFlowArpHardwareLength)(nil), // 966: otg.PatternFlowArpHardwareLength + (*PatternFlowArpProtocolLengthCounter)(nil), // 967: otg.PatternFlowArpProtocolLengthCounter + (*PatternFlowArpProtocolLengthMetricTag)(nil), // 968: otg.PatternFlowArpProtocolLengthMetricTag + (*PatternFlowArpProtocolLength)(nil), // 969: otg.PatternFlowArpProtocolLength + (*PatternFlowArpOperationCounter)(nil), // 970: otg.PatternFlowArpOperationCounter + (*PatternFlowArpOperationMetricTag)(nil), // 971: otg.PatternFlowArpOperationMetricTag + (*PatternFlowArpOperation)(nil), // 972: otg.PatternFlowArpOperation + (*PatternFlowArpSenderHardwareAddrCounter)(nil), // 973: otg.PatternFlowArpSenderHardwareAddrCounter + (*PatternFlowArpSenderHardwareAddrMetricTag)(nil), // 974: otg.PatternFlowArpSenderHardwareAddrMetricTag + (*PatternFlowArpSenderHardwareAddr)(nil), // 975: otg.PatternFlowArpSenderHardwareAddr + (*PatternFlowArpSenderProtocolAddrCounter)(nil), // 976: otg.PatternFlowArpSenderProtocolAddrCounter + (*PatternFlowArpSenderProtocolAddrMetricTag)(nil), // 977: otg.PatternFlowArpSenderProtocolAddrMetricTag + (*PatternFlowArpSenderProtocolAddr)(nil), // 978: otg.PatternFlowArpSenderProtocolAddr + (*PatternFlowArpTargetHardwareAddrCounter)(nil), // 979: otg.PatternFlowArpTargetHardwareAddrCounter + (*PatternFlowArpTargetHardwareAddrMetricTag)(nil), // 980: otg.PatternFlowArpTargetHardwareAddrMetricTag + (*PatternFlowArpTargetHardwareAddr)(nil), // 981: otg.PatternFlowArpTargetHardwareAddr + (*PatternFlowArpTargetProtocolAddrCounter)(nil), // 982: otg.PatternFlowArpTargetProtocolAddrCounter + (*PatternFlowArpTargetProtocolAddrMetricTag)(nil), // 983: otg.PatternFlowArpTargetProtocolAddrMetricTag + (*PatternFlowArpTargetProtocolAddr)(nil), // 984: otg.PatternFlowArpTargetProtocolAddr + (*PatternFlowIcmpEchoTypeCounter)(nil), // 985: otg.PatternFlowIcmpEchoTypeCounter + (*PatternFlowIcmpEchoTypeMetricTag)(nil), // 986: otg.PatternFlowIcmpEchoTypeMetricTag + (*PatternFlowIcmpEchoType)(nil), // 987: otg.PatternFlowIcmpEchoType + (*PatternFlowIcmpEchoCodeCounter)(nil), // 988: otg.PatternFlowIcmpEchoCodeCounter + (*PatternFlowIcmpEchoCodeMetricTag)(nil), // 989: otg.PatternFlowIcmpEchoCodeMetricTag + (*PatternFlowIcmpEchoCode)(nil), // 990: otg.PatternFlowIcmpEchoCode + (*PatternFlowIcmpEchoChecksum)(nil), // 991: otg.PatternFlowIcmpEchoChecksum + (*PatternFlowIcmpEchoIdentifierCounter)(nil), // 992: otg.PatternFlowIcmpEchoIdentifierCounter + (*PatternFlowIcmpEchoIdentifierMetricTag)(nil), // 993: otg.PatternFlowIcmpEchoIdentifierMetricTag + (*PatternFlowIcmpEchoIdentifier)(nil), // 994: otg.PatternFlowIcmpEchoIdentifier + (*PatternFlowIcmpEchoSequenceNumberCounter)(nil), // 995: otg.PatternFlowIcmpEchoSequenceNumberCounter + (*PatternFlowIcmpEchoSequenceNumberMetricTag)(nil), // 996: otg.PatternFlowIcmpEchoSequenceNumberMetricTag + (*PatternFlowIcmpEchoSequenceNumber)(nil), // 997: otg.PatternFlowIcmpEchoSequenceNumber + (*PatternFlowIcmpCommonChecksum)(nil), // 998: otg.PatternFlowIcmpCommonChecksum + (*PatternFlowIcmpNextFieldsIdentifierCounter)(nil), // 999: otg.PatternFlowIcmpNextFieldsIdentifierCounter + (*PatternFlowIcmpNextFieldsIdentifierMetricTag)(nil), // 1000: otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + (*PatternFlowIcmpNextFieldsIdentifier)(nil), // 1001: otg.PatternFlowIcmpNextFieldsIdentifier + (*PatternFlowIcmpNextFieldsSequenceNumberCounter)(nil), // 1002: otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag)(nil), // 1003: otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + (*PatternFlowIcmpNextFieldsSequenceNumber)(nil), // 1004: otg.PatternFlowIcmpNextFieldsSequenceNumber + (*PatternFlowIcmpv6EchoTypeCounter)(nil), // 1005: otg.PatternFlowIcmpv6EchoTypeCounter + (*PatternFlowIcmpv6EchoTypeMetricTag)(nil), // 1006: otg.PatternFlowIcmpv6EchoTypeMetricTag + (*PatternFlowIcmpv6EchoType)(nil), // 1007: otg.PatternFlowIcmpv6EchoType + (*PatternFlowIcmpv6EchoCodeCounter)(nil), // 1008: otg.PatternFlowIcmpv6EchoCodeCounter + (*PatternFlowIcmpv6EchoCodeMetricTag)(nil), // 1009: otg.PatternFlowIcmpv6EchoCodeMetricTag + (*PatternFlowIcmpv6EchoCode)(nil), // 1010: otg.PatternFlowIcmpv6EchoCode + (*PatternFlowIcmpv6EchoIdentifierCounter)(nil), // 1011: otg.PatternFlowIcmpv6EchoIdentifierCounter + (*PatternFlowIcmpv6EchoIdentifierMetricTag)(nil), // 1012: otg.PatternFlowIcmpv6EchoIdentifierMetricTag + (*PatternFlowIcmpv6EchoIdentifier)(nil), // 1013: otg.PatternFlowIcmpv6EchoIdentifier + (*PatternFlowIcmpv6EchoSequenceNumberCounter)(nil), // 1014: otg.PatternFlowIcmpv6EchoSequenceNumberCounter + (*PatternFlowIcmpv6EchoSequenceNumberMetricTag)(nil), // 1015: otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + (*PatternFlowIcmpv6EchoSequenceNumber)(nil), // 1016: otg.PatternFlowIcmpv6EchoSequenceNumber + (*PatternFlowIcmpv6EchoChecksum)(nil), // 1017: otg.PatternFlowIcmpv6EchoChecksum + (*PatternFlowIcmpv6CommonChecksum)(nil), // 1018: otg.PatternFlowIcmpv6CommonChecksum + (*PatternFlowPppAddressCounter)(nil), // 1019: otg.PatternFlowPppAddressCounter + (*PatternFlowPppAddressMetricTag)(nil), // 1020: otg.PatternFlowPppAddressMetricTag + (*PatternFlowPppAddress)(nil), // 1021: otg.PatternFlowPppAddress + (*PatternFlowPppControlCounter)(nil), // 1022: otg.PatternFlowPppControlCounter + (*PatternFlowPppControlMetricTag)(nil), // 1023: otg.PatternFlowPppControlMetricTag + (*PatternFlowPppControl)(nil), // 1024: otg.PatternFlowPppControl + (*PatternFlowPppProtocolTypeCounter)(nil), // 1025: otg.PatternFlowPppProtocolTypeCounter + (*PatternFlowPppProtocolTypeMetricTag)(nil), // 1026: otg.PatternFlowPppProtocolTypeMetricTag + (*PatternFlowPppProtocolType)(nil), // 1027: otg.PatternFlowPppProtocolType + (*PatternFlowIgmpv1VersionCounter)(nil), // 1028: otg.PatternFlowIgmpv1VersionCounter + (*PatternFlowIgmpv1VersionMetricTag)(nil), // 1029: otg.PatternFlowIgmpv1VersionMetricTag + (*PatternFlowIgmpv1Version)(nil), // 1030: otg.PatternFlowIgmpv1Version + (*PatternFlowIgmpv1TypeCounter)(nil), // 1031: otg.PatternFlowIgmpv1TypeCounter + (*PatternFlowIgmpv1TypeMetricTag)(nil), // 1032: otg.PatternFlowIgmpv1TypeMetricTag + (*PatternFlowIgmpv1Type)(nil), // 1033: otg.PatternFlowIgmpv1Type + (*PatternFlowIgmpv1UnusedCounter)(nil), // 1034: otg.PatternFlowIgmpv1UnusedCounter + (*PatternFlowIgmpv1UnusedMetricTag)(nil), // 1035: otg.PatternFlowIgmpv1UnusedMetricTag + (*PatternFlowIgmpv1Unused)(nil), // 1036: otg.PatternFlowIgmpv1Unused + (*PatternFlowIgmpv1Checksum)(nil), // 1037: otg.PatternFlowIgmpv1Checksum + (*PatternFlowIgmpv1GroupAddressCounter)(nil), // 1038: otg.PatternFlowIgmpv1GroupAddressCounter + (*PatternFlowIgmpv1GroupAddressMetricTag)(nil), // 1039: otg.PatternFlowIgmpv1GroupAddressMetricTag + (*PatternFlowIgmpv1GroupAddress)(nil), // 1040: otg.PatternFlowIgmpv1GroupAddress + (*PatternFlowMplsLabelCounter)(nil), // 1041: otg.PatternFlowMplsLabelCounter + (*PatternFlowMplsLabelMetricTag)(nil), // 1042: otg.PatternFlowMplsLabelMetricTag + (*PatternFlowMplsLabel)(nil), // 1043: otg.PatternFlowMplsLabel + (*PatternFlowMplsTrafficClassCounter)(nil), // 1044: otg.PatternFlowMplsTrafficClassCounter + (*PatternFlowMplsTrafficClassMetricTag)(nil), // 1045: otg.PatternFlowMplsTrafficClassMetricTag + (*PatternFlowMplsTrafficClass)(nil), // 1046: otg.PatternFlowMplsTrafficClass + (*PatternFlowMplsBottomOfStackCounter)(nil), // 1047: otg.PatternFlowMplsBottomOfStackCounter + (*PatternFlowMplsBottomOfStackMetricTag)(nil), // 1048: otg.PatternFlowMplsBottomOfStackMetricTag + (*PatternFlowMplsBottomOfStack)(nil), // 1049: otg.PatternFlowMplsBottomOfStack + (*PatternFlowMplsTimeToLiveCounter)(nil), // 1050: otg.PatternFlowMplsTimeToLiveCounter + (*PatternFlowMplsTimeToLiveMetricTag)(nil), // 1051: otg.PatternFlowMplsTimeToLiveMetricTag + (*PatternFlowMplsTimeToLive)(nil), // 1052: otg.PatternFlowMplsTimeToLive + (*Version)(nil), // 1053: otg.Version + (*Success)(nil), // 1054: otg.Success + (*Failure)(nil), // 1055: otg.Failure + (*SetConfigRequest)(nil), // 1056: otg.SetConfigRequest + (*UpdateConfigRequest)(nil), // 1057: otg.UpdateConfigRequest + (*SetConfigResponse)(nil), // 1058: otg.SetConfigResponse + (*GetConfigResponse)(nil), // 1059: otg.GetConfigResponse + (*UpdateConfigResponse)(nil), // 1060: otg.UpdateConfigResponse + (*SetControlStateRequest)(nil), // 1061: otg.SetControlStateRequest + (*SetControlStateResponse)(nil), // 1062: otg.SetControlStateResponse + (*SetControlActionRequest)(nil), // 1063: otg.SetControlActionRequest + (*SetControlActionResponse)(nil), // 1064: otg.SetControlActionResponse + (*GetMetricsRequest)(nil), // 1065: otg.GetMetricsRequest + (*GetMetricsResponse)(nil), // 1066: otg.GetMetricsResponse + (*GetStatesRequest)(nil), // 1067: otg.GetStatesRequest + (*GetStatesResponse)(nil), // 1068: otg.GetStatesResponse + (*GetCaptureRequest)(nil), // 1069: otg.GetCaptureRequest + (*GetCaptureResponse)(nil), // 1070: otg.GetCaptureResponse + (*GetVersionResponse)(nil), // 1071: otg.GetVersionResponse + (*LagProtocol_Choice)(nil), // 1072: otg.LagProtocol.Choice + (*LagPortLacp_ActorActivity)(nil), // 1073: otg.LagPortLacp.ActorActivity + (*EthernetConnection_Choice)(nil), // 1074: otg.EthernetConnection.Choice + (*DeviceVlan_Tpid)(nil), // 1075: otg.DeviceVlan.Tpid + (*DeviceIpv4GatewayMAC_Choice)(nil), // 1076: otg.DeviceIpv4GatewayMAC.Choice + (*DeviceIpv6GatewayMAC_Choice)(nil), // 1077: otg.DeviceIpv6GatewayMAC.Choice + (*Layer1_Speed)(nil), // 1078: otg.Layer1.Speed + (*Layer1_Media)(nil), // 1079: otg.Layer1.Media + (*Layer1FlowControl_Choice)(nil), // 1080: otg.Layer1FlowControl.Choice + (*Capture_Format)(nil), // 1081: otg.Capture.Format + (*CaptureFilter_Choice)(nil), // 1082: otg.CaptureFilter.Choice + (*IsisInterface_NetworkType)(nil), // 1083: otg.IsisInterface.NetworkType + (*IsisInterface_LevelType)(nil), // 1084: otg.IsisInterface.LevelType + (*IsisInterfaceAuthentication_AuthType)(nil), // 1085: otg.IsisInterfaceAuthentication.AuthType + (*IsisAuthenticationBase_AuthType)(nil), // 1086: otg.IsisAuthenticationBase.AuthType + (*IsisV4RouteRange_OriginType)(nil), // 1087: otg.IsisV4RouteRange.OriginType + (*IsisV4RouteRange_RedistributionType)(nil), // 1088: otg.IsisV4RouteRange.RedistributionType + (*IsisV6RouteRange_OriginType)(nil), // 1089: otg.IsisV6RouteRange.OriginType + (*IsisV6RouteRange_RedistributionType)(nil), // 1090: otg.IsisV6RouteRange.RedistributionType + (*DeviceBgpMessageHeaderError_Subcode)(nil), // 1091: otg.DeviceBgpMessageHeaderError.Subcode + (*DeviceBgpOpenMessageError_Subcode)(nil), // 1092: otg.DeviceBgpOpenMessageError.Subcode + (*DeviceBgpUpdateMessageError_Subcode)(nil), // 1093: otg.DeviceBgpUpdateMessageError.Subcode + (*DeviceBgpCeaseError_Subcode)(nil), // 1094: otg.DeviceBgpCeaseError.Subcode + (*BgpV4Peer_AsType)(nil), // 1095: otg.BgpV4Peer.AsType + (*BgpV4Peer_AsNumberWidth)(nil), // 1096: otg.BgpV4Peer.AsNumberWidth + (*BgpV4EthernetSegment_ActiveMode)(nil), // 1097: otg.BgpV4EthernetSegment.ActiveMode + (*BgpRouteAdvanced_Origin)(nil), // 1098: otg.BgpRouteAdvanced.Origin + (*BgpCommunity_Type)(nil), // 1099: otg.BgpCommunity.Type + (*BgpExtCommunity_Type)(nil), // 1100: otg.BgpExtCommunity.Type + (*BgpExtCommunity_Subtype)(nil), // 1101: otg.BgpExtCommunity.Subtype + (*BgpAsPath_AsSetMode)(nil), // 1102: otg.BgpAsPath.AsSetMode + (*BgpAsPathSegment_Type)(nil), // 1103: otg.BgpAsPathSegment.Type + (*BgpV4EvpnEvis_Choice)(nil), // 1104: otg.BgpV4EvpnEvis.Choice + (*BgpV4EviVxlan_ReplicationType)(nil), // 1105: otg.BgpV4EviVxlan.ReplicationType + (*BgpRouteDistinguisher_RdType)(nil), // 1106: otg.BgpRouteDistinguisher.RdType + (*BgpRouteTarget_RtType)(nil), // 1107: otg.BgpRouteTarget.RtType + (*BgpV4RouteRange_NextHopMode)(nil), // 1108: otg.BgpV4RouteRange.NextHopMode + (*BgpV4RouteRange_NextHopAddressType)(nil), // 1109: otg.BgpV4RouteRange.NextHopAddressType + (*BgpExtendedCommunity_Choice)(nil), // 1110: otg.BgpExtendedCommunity.Choice + (*BgpExtendedCommunityTransitive2OctetAsType_Choice)(nil), // 1111: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice + (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice)(nil), // 1112: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice + (*BgpExtendedCommunityTransitive4OctetAsType_Choice)(nil), // 1113: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice + (*BgpExtendedCommunityTransitiveOpaqueType_Choice)(nil), // 1114: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice + (*BgpExtendedCommunityTransitiveEvpnType_Choice)(nil), // 1115: otg.BgpExtendedCommunityTransitiveEvpnType.Choice + (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice)(nil), // 1116: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice + (*BgpV6RouteRange_NextHopMode)(nil), // 1117: otg.BgpV6RouteRange.NextHopMode + (*BgpV6RouteRange_NextHopAddressType)(nil), // 1118: otg.BgpV6RouteRange.NextHopAddressType + (*BgpSrteV4Policy_NextHopMode)(nil), // 1119: otg.BgpSrteV4Policy.NextHopMode + (*BgpSrteV4Policy_NextHopAddressType)(nil), // 1120: otg.BgpSrteV4Policy.NextHopAddressType + (*BgpSrteRemoteEndpointSubTlv_AddressFamily)(nil), // 1121: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily + (*BgpSrteBindingSubTlv_BindingSidType)(nil), // 1122: otg.BgpSrteBindingSubTlv.BindingSidType + (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy)(nil), // 1123: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy + (*BgpSrteSegment_SegmentType)(nil), // 1124: otg.BgpSrteSegment.SegmentType + (*BgpSrteV6Policy_NextHopMode)(nil), // 1125: otg.BgpSrteV6Policy.NextHopMode + (*BgpSrteV6Policy_NextHopAddressType)(nil), // 1126: otg.BgpSrteV6Policy.NextHopAddressType + (*BgpV6Peer_AsType)(nil), // 1127: otg.BgpV6Peer.AsType + (*BgpV6Peer_AsNumberWidth)(nil), // 1128: otg.BgpV6Peer.AsNumberWidth + (*BgpV6EthernetSegment_ActiveMode)(nil), // 1129: otg.BgpV6EthernetSegment.ActiveMode + (*BgpV6EvpnEvis_Choice)(nil), // 1130: otg.BgpV6EvpnEvis.Choice + (*BgpV6EviVxlan_ReplicationType)(nil), // 1131: otg.BgpV6EviVxlan.ReplicationType + (*VxlanV4TunnelDestinationIPMode_Choice)(nil), // 1132: otg.VxlanV4TunnelDestinationIPMode.Choice + (*VxlanV6TunnelDestinationIPMode_Choice)(nil), // 1133: otg.VxlanV6TunnelDestinationIPMode.Choice + (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle)(nil), // 1134: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle + (*RsvpEro_PrependNeighborIp)(nil), // 1135: otg.RsvpEro.PrependNeighborIp + (*RsvpEroSubobject_Type)(nil), // 1136: otg.RsvpEroSubobject.Type + (*RsvpEroSubobject_HopType)(nil), // 1137: otg.RsvpEroSubobject.HopType + (*FlowTxRx_Choice)(nil), // 1138: otg.FlowTxRx.Choice + (*FlowRouter_Mode)(nil), // 1139: otg.FlowRouter.Mode + (*FlowHeader_Choice)(nil), // 1140: otg.FlowHeader.Choice + (*FlowIpv4Priority_Choice)(nil), // 1141: otg.FlowIpv4Priority.Choice + (*FlowIcmp_Choice)(nil), // 1142: otg.FlowIcmp.Choice + (*FlowIcmpv6_Choice)(nil), // 1143: otg.FlowIcmpv6.Choice + (*FlowSize_Choice)(nil), // 1144: otg.FlowSize.Choice + (*FlowSizeWeightPairs_Choice)(nil), // 1145: otg.FlowSizeWeightPairs.Choice + (*FlowSizeWeightPairs_Predefined)(nil), // 1146: otg.FlowSizeWeightPairs.Predefined + (*FlowRate_Choice)(nil), // 1147: otg.FlowRate.Choice + (*FlowDuration_Choice)(nil), // 1148: otg.FlowDuration.Choice + (*FlowDelay_Choice)(nil), // 1149: otg.FlowDelay.Choice + (*FlowDurationInterBurstGap_Choice)(nil), // 1150: otg.FlowDurationInterBurstGap.Choice + (*FlowLatencyMetrics_Mode)(nil), // 1151: otg.FlowLatencyMetrics.Mode + (*FlowRxTxRatio_Choice)(nil), // 1152: otg.FlowRxTxRatio.Choice + (*EventRequest_Type)(nil), // 1153: otg.EventRequest.Type + (*LldpConnection_Choice)(nil), // 1154: otg.LldpConnection.Choice + (*LldpChassisId_Choice)(nil), // 1155: otg.LldpChassisId.Choice + (*LldpPortId_Choice)(nil), // 1156: otg.LldpPortId.Choice + (*LldpChassisMacSubType_Choice)(nil), // 1157: otg.LldpChassisMacSubType.Choice + (*LldpPortInterfaceNameSubType_Choice)(nil), // 1158: otg.LldpPortInterfaceNameSubType.Choice + (*LldpSystemName_Choice)(nil), // 1159: otg.LldpSystemName.Choice + (*Error_Kind)(nil), // 1160: otg.Error.Kind + (*ConfigUpdate_Choice)(nil), // 1161: otg.ConfigUpdate.Choice + (*FlowsUpdate_PropertyNames)(nil), // 1162: otg.FlowsUpdate.PropertyNames + (*ControlState_Choice)(nil), // 1163: otg.ControlState.Choice + (*StatePort_Choice)(nil), // 1164: otg.StatePort.Choice + (*StateTraffic_Choice)(nil), // 1165: otg.StateTraffic.Choice + (*StateProtocol_Choice)(nil), // 1166: otg.StateProtocol.Choice + (*StatePortLink_State)(nil), // 1167: otg.StatePortLink.State + (*StatePortCapture_State)(nil), // 1168: otg.StatePortCapture.State + (*StateTrafficFlowTransmit_State)(nil), // 1169: otg.StateTrafficFlowTransmit.State + (*StateProtocolAll_State)(nil), // 1170: otg.StateProtocolAll.State + (*StateProtocolRoute_State)(nil), // 1171: otg.StateProtocolRoute.State + (*StateProtocolLacp_Choice)(nil), // 1172: otg.StateProtocolLacp.Choice + (*StateProtocolLacpAdmin_State)(nil), // 1173: otg.StateProtocolLacpAdmin.State + (*ControlAction_Choice)(nil), // 1174: otg.ControlAction.Choice + (*ActionResponse_Choice)(nil), // 1175: otg.ActionResponse.Choice + (*ActionProtocol_Choice)(nil), // 1176: otg.ActionProtocol.Choice + (*ActionResponseProtocol_Choice)(nil), // 1177: otg.ActionResponseProtocol.Choice + (*ActionProtocolIpv4_Choice)(nil), // 1178: otg.ActionProtocolIpv4.Choice + (*ActionResponseProtocolIpv4_Choice)(nil), // 1179: otg.ActionResponseProtocolIpv4.Choice + (*ActionResponseProtocolIpv4PingResponse_Result)(nil), // 1180: otg.ActionResponseProtocolIpv4PingResponse.Result + (*ActionProtocolIpv6_Choice)(nil), // 1181: otg.ActionProtocolIpv6.Choice + (*ActionResponseProtocolIpv6_Choice)(nil), // 1182: otg.ActionResponseProtocolIpv6.Choice + (*ActionResponseProtocolIpv6PingResponse_Result)(nil), // 1183: otg.ActionResponseProtocolIpv6PingResponse.Result + (*ActionProtocolBgp_Choice)(nil), // 1184: otg.ActionProtocolBgp.Choice + (*ActionProtocolBgpNotification_Choice)(nil), // 1185: otg.ActionProtocolBgpNotification.Choice + (*MetricsRequest_Choice)(nil), // 1186: otg.MetricsRequest.Choice + (*MetricsResponse_Choice)(nil), // 1187: otg.MetricsResponse.Choice + (*PortMetricsRequest_ColumnNames)(nil), // 1188: otg.PortMetricsRequest.ColumnNames + (*PortMetric_Link)(nil), // 1189: otg.PortMetric.Link + (*PortMetric_Capture)(nil), // 1190: otg.PortMetric.Capture + (*PortMetric_Transmit)(nil), // 1191: otg.PortMetric.Transmit + (*FlowMetricsRequest_MetricNames)(nil), // 1192: otg.FlowMetricsRequest.MetricNames + (*FlowTaggedMetricsFilter_MetricNames)(nil), // 1193: otg.FlowTaggedMetricsFilter.MetricNames + (*FlowMetric_Transmit)(nil), // 1194: otg.FlowMetric.Transmit + (*FlowMetricTagValue_Choice)(nil), // 1195: otg.FlowMetricTagValue.Choice + (*Bgpv4MetricsRequest_ColumnNames)(nil), // 1196: otg.Bgpv4MetricsRequest.ColumnNames + (*Bgpv4Metric_SessionState)(nil), // 1197: otg.Bgpv4Metric.SessionState + (*Bgpv4Metric_FsmState)(nil), // 1198: otg.Bgpv4Metric.FsmState + (*Bgpv6MetricsRequest_ColumnNames)(nil), // 1199: otg.Bgpv6MetricsRequest.ColumnNames + (*Bgpv6Metric_SessionState)(nil), // 1200: otg.Bgpv6Metric.SessionState + (*Bgpv6Metric_FsmState)(nil), // 1201: otg.Bgpv6Metric.FsmState + (*IsisMetricsRequest_ColumnNames)(nil), // 1202: otg.IsisMetricsRequest.ColumnNames + (*LagMetricsRequest_ColumnNames)(nil), // 1203: otg.LagMetricsRequest.ColumnNames + (*LagMetric_OperStatus)(nil), // 1204: otg.LagMetric.OperStatus + (*LacpMetricsRequest_ColumnNames)(nil), // 1205: otg.LacpMetricsRequest.ColumnNames + (*LacpMetric_Activity)(nil), // 1206: otg.LacpMetric.Activity + (*LacpMetric_Timeout)(nil), // 1207: otg.LacpMetric.Timeout + (*LacpMetric_Synchronization)(nil), // 1208: otg.LacpMetric.Synchronization + (*LldpMetricsRequest_ColumnNames)(nil), // 1209: otg.LldpMetricsRequest.ColumnNames + (*RsvpMetricsRequest_ColumnNames)(nil), // 1210: otg.RsvpMetricsRequest.ColumnNames + (*StatesRequest_Choice)(nil), // 1211: otg.StatesRequest.Choice + (*StatesResponse_Choice)(nil), // 1212: otg.StatesResponse.Choice + (*BgpPrefixStateRequest_PrefixFilters)(nil), // 1213: otg.BgpPrefixStateRequest.PrefixFilters + (*BgpPrefixIpv4UnicastFilter_Origin)(nil), // 1214: otg.BgpPrefixIpv4UnicastFilter.Origin + (*BgpPrefixIpv6UnicastFilter_Origin)(nil), // 1215: otg.BgpPrefixIpv6UnicastFilter.Origin + (*BgpPrefixIpv4UnicastState_Origin)(nil), // 1216: otg.BgpPrefixIpv4UnicastState.Origin + (*BgpPrefixIpv6UnicastState_Origin)(nil), // 1217: otg.BgpPrefixIpv6UnicastState.Origin + (*ResultBgpCommunity_Type)(nil), // 1218: otg.ResultBgpCommunity.Type + (*ResultBgpAsPathSegment_Type)(nil), // 1219: otg.ResultBgpAsPathSegment.Type + (*IsisLspState_PduType)(nil), // 1220: otg.IsisLspState.PduType + (*IsisLspV4Prefix_RedistributionType)(nil), // 1221: otg.IsisLspV4Prefix.RedistributionType + (*IsisLspV4Prefix_OriginType)(nil), // 1222: otg.IsisLspV4Prefix.OriginType + (*IsisLspExtendedV4Prefix_RedistributionType)(nil), // 1223: otg.IsisLspExtendedV4Prefix.RedistributionType + (*IsisLspV6Prefix_RedistributionType)(nil), // 1224: otg.IsisLspV6Prefix.RedistributionType + (*IsisLspV6Prefix_OriginType)(nil), // 1225: otg.IsisLspV6Prefix.OriginType + (*LldpNeighborsState_ChassisIdType)(nil), // 1226: otg.LldpNeighborsState.ChassisIdType + (*LldpNeighborsState_PortIdType)(nil), // 1227: otg.LldpNeighborsState.PortIdType + (*LldpCapabilityState_CapabilityName)(nil), // 1228: otg.LldpCapabilityState.CapabilityName + (*RsvpLspState_SessionStatus)(nil), // 1229: otg.RsvpLspState.SessionStatus + (*RsvpLspState_LastFlapReason)(nil), // 1230: otg.RsvpLspState.LastFlapReason + (*RsvpLspIpv4Ero_Type)(nil), // 1231: otg.RsvpLspIpv4Ero.Type + (*PatternFlowEthernetDst_Choice)(nil), // 1232: otg.PatternFlowEthernetDst.Choice + (*PatternFlowEthernetSrc_Choice)(nil), // 1233: otg.PatternFlowEthernetSrc.Choice + (*PatternFlowEthernetEtherType_Choice)(nil), // 1234: otg.PatternFlowEthernetEtherType.Choice + (*PatternFlowEthernetPfcQueue_Choice)(nil), // 1235: otg.PatternFlowEthernetPfcQueue.Choice + (*PatternFlowVlanPriority_Choice)(nil), // 1236: otg.PatternFlowVlanPriority.Choice + (*PatternFlowVlanCfi_Choice)(nil), // 1237: otg.PatternFlowVlanCfi.Choice + (*PatternFlowVlanId_Choice)(nil), // 1238: otg.PatternFlowVlanId.Choice + (*PatternFlowVlanTpid_Choice)(nil), // 1239: otg.PatternFlowVlanTpid.Choice + (*PatternFlowVxlanFlags_Choice)(nil), // 1240: otg.PatternFlowVxlanFlags.Choice + (*PatternFlowVxlanReserved0_Choice)(nil), // 1241: otg.PatternFlowVxlanReserved0.Choice + (*PatternFlowVxlanVni_Choice)(nil), // 1242: otg.PatternFlowVxlanVni.Choice + (*PatternFlowVxlanReserved1_Choice)(nil), // 1243: otg.PatternFlowVxlanReserved1.Choice + (*PatternFlowIpv4Version_Choice)(nil), // 1244: otg.PatternFlowIpv4Version.Choice + (*PatternFlowIpv4HeaderLength_Choice)(nil), // 1245: otg.PatternFlowIpv4HeaderLength.Choice + (*PatternFlowIpv4TotalLength_Choice)(nil), // 1246: otg.PatternFlowIpv4TotalLength.Choice + (*PatternFlowIpv4Identification_Choice)(nil), // 1247: otg.PatternFlowIpv4Identification.Choice + (*PatternFlowIpv4Reserved_Choice)(nil), // 1248: otg.PatternFlowIpv4Reserved.Choice + (*PatternFlowIpv4DontFragment_Choice)(nil), // 1249: otg.PatternFlowIpv4DontFragment.Choice + (*PatternFlowIpv4MoreFragments_Choice)(nil), // 1250: otg.PatternFlowIpv4MoreFragments.Choice + (*PatternFlowIpv4FragmentOffset_Choice)(nil), // 1251: otg.PatternFlowIpv4FragmentOffset.Choice + (*PatternFlowIpv4TimeToLive_Choice)(nil), // 1252: otg.PatternFlowIpv4TimeToLive.Choice + (*PatternFlowIpv4Protocol_Choice)(nil), // 1253: otg.PatternFlowIpv4Protocol.Choice + (*PatternFlowIpv4HeaderChecksum_Choice)(nil), // 1254: otg.PatternFlowIpv4HeaderChecksum.Choice + (*PatternFlowIpv4HeaderChecksum_Generated)(nil), // 1255: otg.PatternFlowIpv4HeaderChecksum.Generated + (*PatternFlowIpv4Src_Choice)(nil), // 1256: otg.PatternFlowIpv4Src.Choice + (*PatternFlowIpv4Dst_Choice)(nil), // 1257: otg.PatternFlowIpv4Dst.Choice + (*PatternFlowIpv4PriorityRaw_Choice)(nil), // 1258: otg.PatternFlowIpv4PriorityRaw.Choice + (*PatternFlowIpv4DscpPhb_Choice)(nil), // 1259: otg.PatternFlowIpv4DscpPhb.Choice + (*PatternFlowIpv4DscpEcn_Choice)(nil), // 1260: otg.PatternFlowIpv4DscpEcn.Choice + (*PatternFlowIpv4TosPrecedence_Choice)(nil), // 1261: otg.PatternFlowIpv4TosPrecedence.Choice + (*PatternFlowIpv4TosDelay_Choice)(nil), // 1262: otg.PatternFlowIpv4TosDelay.Choice + (*PatternFlowIpv4TosThroughput_Choice)(nil), // 1263: otg.PatternFlowIpv4TosThroughput.Choice + (*PatternFlowIpv4TosReliability_Choice)(nil), // 1264: otg.PatternFlowIpv4TosReliability.Choice + (*PatternFlowIpv4TosMonetary_Choice)(nil), // 1265: otg.PatternFlowIpv4TosMonetary.Choice + (*PatternFlowIpv4TosUnused_Choice)(nil), // 1266: otg.PatternFlowIpv4TosUnused.Choice + (*PatternFlowIpv6Version_Choice)(nil), // 1267: otg.PatternFlowIpv6Version.Choice + (*PatternFlowIpv6TrafficClass_Choice)(nil), // 1268: otg.PatternFlowIpv6TrafficClass.Choice + (*PatternFlowIpv6FlowLabel_Choice)(nil), // 1269: otg.PatternFlowIpv6FlowLabel.Choice + (*PatternFlowIpv6PayloadLength_Choice)(nil), // 1270: otg.PatternFlowIpv6PayloadLength.Choice + (*PatternFlowIpv6NextHeader_Choice)(nil), // 1271: otg.PatternFlowIpv6NextHeader.Choice + (*PatternFlowIpv6HopLimit_Choice)(nil), // 1272: otg.PatternFlowIpv6HopLimit.Choice + (*PatternFlowIpv6Src_Choice)(nil), // 1273: otg.PatternFlowIpv6Src.Choice + (*PatternFlowIpv6Dst_Choice)(nil), // 1274: otg.PatternFlowIpv6Dst.Choice + (*PatternFlowPfcPauseDst_Choice)(nil), // 1275: otg.PatternFlowPfcPauseDst.Choice + (*PatternFlowPfcPauseSrc_Choice)(nil), // 1276: otg.PatternFlowPfcPauseSrc.Choice + (*PatternFlowPfcPauseEtherType_Choice)(nil), // 1277: otg.PatternFlowPfcPauseEtherType.Choice + (*PatternFlowPfcPauseControlOpCode_Choice)(nil), // 1278: otg.PatternFlowPfcPauseControlOpCode.Choice + (*PatternFlowPfcPauseClassEnableVector_Choice)(nil), // 1279: otg.PatternFlowPfcPauseClassEnableVector.Choice + (*PatternFlowPfcPausePauseClass0_Choice)(nil), // 1280: otg.PatternFlowPfcPausePauseClass0.Choice + (*PatternFlowPfcPausePauseClass1_Choice)(nil), // 1281: otg.PatternFlowPfcPausePauseClass1.Choice + (*PatternFlowPfcPausePauseClass2_Choice)(nil), // 1282: otg.PatternFlowPfcPausePauseClass2.Choice + (*PatternFlowPfcPausePauseClass3_Choice)(nil), // 1283: otg.PatternFlowPfcPausePauseClass3.Choice + (*PatternFlowPfcPausePauseClass4_Choice)(nil), // 1284: otg.PatternFlowPfcPausePauseClass4.Choice + (*PatternFlowPfcPausePauseClass5_Choice)(nil), // 1285: otg.PatternFlowPfcPausePauseClass5.Choice + (*PatternFlowPfcPausePauseClass6_Choice)(nil), // 1286: otg.PatternFlowPfcPausePauseClass6.Choice + (*PatternFlowPfcPausePauseClass7_Choice)(nil), // 1287: otg.PatternFlowPfcPausePauseClass7.Choice + (*PatternFlowEthernetPauseDst_Choice)(nil), // 1288: otg.PatternFlowEthernetPauseDst.Choice + (*PatternFlowEthernetPauseSrc_Choice)(nil), // 1289: otg.PatternFlowEthernetPauseSrc.Choice + (*PatternFlowEthernetPauseEtherType_Choice)(nil), // 1290: otg.PatternFlowEthernetPauseEtherType.Choice + (*PatternFlowEthernetPauseControlOpCode_Choice)(nil), // 1291: otg.PatternFlowEthernetPauseControlOpCode.Choice + (*PatternFlowEthernetPauseTime_Choice)(nil), // 1292: otg.PatternFlowEthernetPauseTime.Choice + (*PatternFlowTcpSrcPort_Choice)(nil), // 1293: otg.PatternFlowTcpSrcPort.Choice + (*PatternFlowTcpDstPort_Choice)(nil), // 1294: otg.PatternFlowTcpDstPort.Choice + (*PatternFlowTcpSeqNum_Choice)(nil), // 1295: otg.PatternFlowTcpSeqNum.Choice + (*PatternFlowTcpAckNum_Choice)(nil), // 1296: otg.PatternFlowTcpAckNum.Choice + (*PatternFlowTcpDataOffset_Choice)(nil), // 1297: otg.PatternFlowTcpDataOffset.Choice + (*PatternFlowTcpEcnNs_Choice)(nil), // 1298: otg.PatternFlowTcpEcnNs.Choice + (*PatternFlowTcpEcnCwr_Choice)(nil), // 1299: otg.PatternFlowTcpEcnCwr.Choice + (*PatternFlowTcpEcnEcho_Choice)(nil), // 1300: otg.PatternFlowTcpEcnEcho.Choice + (*PatternFlowTcpCtlUrg_Choice)(nil), // 1301: otg.PatternFlowTcpCtlUrg.Choice + (*PatternFlowTcpCtlAck_Choice)(nil), // 1302: otg.PatternFlowTcpCtlAck.Choice + (*PatternFlowTcpCtlPsh_Choice)(nil), // 1303: otg.PatternFlowTcpCtlPsh.Choice + (*PatternFlowTcpCtlRst_Choice)(nil), // 1304: otg.PatternFlowTcpCtlRst.Choice + (*PatternFlowTcpCtlSyn_Choice)(nil), // 1305: otg.PatternFlowTcpCtlSyn.Choice + (*PatternFlowTcpCtlFin_Choice)(nil), // 1306: otg.PatternFlowTcpCtlFin.Choice + (*PatternFlowTcpWindow_Choice)(nil), // 1307: otg.PatternFlowTcpWindow.Choice + (*PatternFlowUdpSrcPort_Choice)(nil), // 1308: otg.PatternFlowUdpSrcPort.Choice + (*PatternFlowUdpDstPort_Choice)(nil), // 1309: otg.PatternFlowUdpDstPort.Choice + (*PatternFlowUdpLength_Choice)(nil), // 1310: otg.PatternFlowUdpLength.Choice + (*PatternFlowUdpChecksum_Choice)(nil), // 1311: otg.PatternFlowUdpChecksum.Choice + (*PatternFlowUdpChecksum_Generated)(nil), // 1312: otg.PatternFlowUdpChecksum.Generated + (*PatternFlowGreChecksumPresent_Choice)(nil), // 1313: otg.PatternFlowGreChecksumPresent.Choice + (*PatternFlowGreReserved0_Choice)(nil), // 1314: otg.PatternFlowGreReserved0.Choice + (*PatternFlowGreVersion_Choice)(nil), // 1315: otg.PatternFlowGreVersion.Choice + (*PatternFlowGreProtocol_Choice)(nil), // 1316: otg.PatternFlowGreProtocol.Choice + (*PatternFlowGreChecksum_Choice)(nil), // 1317: otg.PatternFlowGreChecksum.Choice + (*PatternFlowGreChecksum_Generated)(nil), // 1318: otg.PatternFlowGreChecksum.Generated + (*PatternFlowGreReserved1_Choice)(nil), // 1319: otg.PatternFlowGreReserved1.Choice + (*PatternFlowGtpv1Version_Choice)(nil), // 1320: otg.PatternFlowGtpv1Version.Choice + (*PatternFlowGtpv1ProtocolType_Choice)(nil), // 1321: otg.PatternFlowGtpv1ProtocolType.Choice + (*PatternFlowGtpv1Reserved_Choice)(nil), // 1322: otg.PatternFlowGtpv1Reserved.Choice + (*PatternFlowGtpv1EFlag_Choice)(nil), // 1323: otg.PatternFlowGtpv1EFlag.Choice + (*PatternFlowGtpv1SFlag_Choice)(nil), // 1324: otg.PatternFlowGtpv1SFlag.Choice + (*PatternFlowGtpv1PnFlag_Choice)(nil), // 1325: otg.PatternFlowGtpv1PnFlag.Choice + (*PatternFlowGtpv1MessageType_Choice)(nil), // 1326: otg.PatternFlowGtpv1MessageType.Choice + (*PatternFlowGtpv1MessageLength_Choice)(nil), // 1327: otg.PatternFlowGtpv1MessageLength.Choice + (*PatternFlowGtpv1Teid_Choice)(nil), // 1328: otg.PatternFlowGtpv1Teid.Choice + (*PatternFlowGtpv1SquenceNumber_Choice)(nil), // 1329: otg.PatternFlowGtpv1SquenceNumber.Choice + (*PatternFlowGtpv1NPduNumber_Choice)(nil), // 1330: otg.PatternFlowGtpv1NPduNumber.Choice + (*PatternFlowGtpv1NextExtensionHeaderType_Choice)(nil), // 1331: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice + (*PatternFlowGtpExtensionExtensionLength_Choice)(nil), // 1332: otg.PatternFlowGtpExtensionExtensionLength.Choice + (*PatternFlowGtpExtensionContents_Choice)(nil), // 1333: otg.PatternFlowGtpExtensionContents.Choice + (*PatternFlowGtpExtensionNextExtensionHeader_Choice)(nil), // 1334: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice + (*PatternFlowGtpv2Version_Choice)(nil), // 1335: otg.PatternFlowGtpv2Version.Choice + (*PatternFlowGtpv2PiggybackingFlag_Choice)(nil), // 1336: otg.PatternFlowGtpv2PiggybackingFlag.Choice + (*PatternFlowGtpv2TeidFlag_Choice)(nil), // 1337: otg.PatternFlowGtpv2TeidFlag.Choice + (*PatternFlowGtpv2Spare1_Choice)(nil), // 1338: otg.PatternFlowGtpv2Spare1.Choice + (*PatternFlowGtpv2MessageType_Choice)(nil), // 1339: otg.PatternFlowGtpv2MessageType.Choice + (*PatternFlowGtpv2MessageLength_Choice)(nil), // 1340: otg.PatternFlowGtpv2MessageLength.Choice + (*PatternFlowGtpv2Teid_Choice)(nil), // 1341: otg.PatternFlowGtpv2Teid.Choice + (*PatternFlowGtpv2SequenceNumber_Choice)(nil), // 1342: otg.PatternFlowGtpv2SequenceNumber.Choice + (*PatternFlowGtpv2Spare2_Choice)(nil), // 1343: otg.PatternFlowGtpv2Spare2.Choice + (*PatternFlowArpHardwareType_Choice)(nil), // 1344: otg.PatternFlowArpHardwareType.Choice + (*PatternFlowArpProtocolType_Choice)(nil), // 1345: otg.PatternFlowArpProtocolType.Choice + (*PatternFlowArpHardwareLength_Choice)(nil), // 1346: otg.PatternFlowArpHardwareLength.Choice + (*PatternFlowArpProtocolLength_Choice)(nil), // 1347: otg.PatternFlowArpProtocolLength.Choice + (*PatternFlowArpOperation_Choice)(nil), // 1348: otg.PatternFlowArpOperation.Choice + (*PatternFlowArpSenderHardwareAddr_Choice)(nil), // 1349: otg.PatternFlowArpSenderHardwareAddr.Choice + (*PatternFlowArpSenderProtocolAddr_Choice)(nil), // 1350: otg.PatternFlowArpSenderProtocolAddr.Choice + (*PatternFlowArpTargetHardwareAddr_Choice)(nil), // 1351: otg.PatternFlowArpTargetHardwareAddr.Choice + (*PatternFlowArpTargetProtocolAddr_Choice)(nil), // 1352: otg.PatternFlowArpTargetProtocolAddr.Choice + (*PatternFlowIcmpEchoType_Choice)(nil), // 1353: otg.PatternFlowIcmpEchoType.Choice + (*PatternFlowIcmpEchoCode_Choice)(nil), // 1354: otg.PatternFlowIcmpEchoCode.Choice + (*PatternFlowIcmpEchoChecksum_Choice)(nil), // 1355: otg.PatternFlowIcmpEchoChecksum.Choice + (*PatternFlowIcmpEchoChecksum_Generated)(nil), // 1356: otg.PatternFlowIcmpEchoChecksum.Generated + (*PatternFlowIcmpEchoIdentifier_Choice)(nil), // 1357: otg.PatternFlowIcmpEchoIdentifier.Choice + (*PatternFlowIcmpEchoSequenceNumber_Choice)(nil), // 1358: otg.PatternFlowIcmpEchoSequenceNumber.Choice + (*PatternFlowIcmpCommonChecksum_Choice)(nil), // 1359: otg.PatternFlowIcmpCommonChecksum.Choice + (*PatternFlowIcmpCommonChecksum_Generated)(nil), // 1360: otg.PatternFlowIcmpCommonChecksum.Generated + (*PatternFlowIcmpNextFieldsIdentifier_Choice)(nil), // 1361: otg.PatternFlowIcmpNextFieldsIdentifier.Choice + (*PatternFlowIcmpNextFieldsSequenceNumber_Choice)(nil), // 1362: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice + (*PatternFlowIcmpv6EchoType_Choice)(nil), // 1363: otg.PatternFlowIcmpv6EchoType.Choice + (*PatternFlowIcmpv6EchoCode_Choice)(nil), // 1364: otg.PatternFlowIcmpv6EchoCode.Choice + (*PatternFlowIcmpv6EchoIdentifier_Choice)(nil), // 1365: otg.PatternFlowIcmpv6EchoIdentifier.Choice + (*PatternFlowIcmpv6EchoSequenceNumber_Choice)(nil), // 1366: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice + (*PatternFlowIcmpv6EchoChecksum_Choice)(nil), // 1367: otg.PatternFlowIcmpv6EchoChecksum.Choice + (*PatternFlowIcmpv6EchoChecksum_Generated)(nil), // 1368: otg.PatternFlowIcmpv6EchoChecksum.Generated + (*PatternFlowIcmpv6CommonChecksum_Choice)(nil), // 1369: otg.PatternFlowIcmpv6CommonChecksum.Choice + (*PatternFlowIcmpv6CommonChecksum_Generated)(nil), // 1370: otg.PatternFlowIcmpv6CommonChecksum.Generated + (*PatternFlowPppAddress_Choice)(nil), // 1371: otg.PatternFlowPppAddress.Choice + (*PatternFlowPppControl_Choice)(nil), // 1372: otg.PatternFlowPppControl.Choice + (*PatternFlowPppProtocolType_Choice)(nil), // 1373: otg.PatternFlowPppProtocolType.Choice + (*PatternFlowIgmpv1Version_Choice)(nil), // 1374: otg.PatternFlowIgmpv1Version.Choice + (*PatternFlowIgmpv1Type_Choice)(nil), // 1375: otg.PatternFlowIgmpv1Type.Choice + (*PatternFlowIgmpv1Unused_Choice)(nil), // 1376: otg.PatternFlowIgmpv1Unused.Choice + (*PatternFlowIgmpv1Checksum_Choice)(nil), // 1377: otg.PatternFlowIgmpv1Checksum.Choice + (*PatternFlowIgmpv1Checksum_Generated)(nil), // 1378: otg.PatternFlowIgmpv1Checksum.Generated + (*PatternFlowIgmpv1GroupAddress_Choice)(nil), // 1379: otg.PatternFlowIgmpv1GroupAddress.Choice + (*PatternFlowMplsLabel_Choice)(nil), // 1380: otg.PatternFlowMplsLabel.Choice + (*PatternFlowMplsTrafficClass_Choice)(nil), // 1381: otg.PatternFlowMplsTrafficClass.Choice + (*PatternFlowMplsBottomOfStack_Choice)(nil), // 1382: otg.PatternFlowMplsBottomOfStack.Choice + (*PatternFlowMplsTimeToLive_Choice)(nil), // 1383: otg.PatternFlowMplsTimeToLive.Choice + (*emptypb.Empty)(nil), // 1384: google.protobuf.Empty } var file_otg_proto_depIdxs = []int32{ - 307, // 0: otg.Config.ports:type_name -> otg.Port - 309, // 1: otg.Config.lags:type_name -> otg.Lag - 325, // 2: otg.Config.layer1:type_name -> otg.Layer1 - 330, // 3: otg.Config.captures:type_name -> otg.Capture - 338, // 4: otg.Config.devices:type_name -> otg.Device - 445, // 5: otg.Config.flows:type_name -> otg.Flow - 494, // 6: otg.Config.events:type_name -> otg.Event - 306, // 7: otg.Config.options:type_name -> otg.ConfigOptions - 500, // 8: otg.Config.lldp:type_name -> otg.Lldp - 308, // 9: otg.ConfigOptions.port_options:type_name -> otg.PortOptions - 339, // 10: otg.ConfigOptions.protocol_options:type_name -> otg.ProtocolOptions - 310, // 11: otg.Lag.ports:type_name -> otg.LagPort - 311, // 12: otg.Lag.protocol:type_name -> otg.LagProtocol - 314, // 13: otg.LagPort.lacp:type_name -> otg.LagPortLacp - 315, // 14: otg.LagPort.ethernet:type_name -> otg.DeviceEthernetBase + 314, // 0: otg.Config.ports:type_name -> otg.Port + 316, // 1: otg.Config.lags:type_name -> otg.Lag + 332, // 2: otg.Config.layer1:type_name -> otg.Layer1 + 337, // 3: otg.Config.captures:type_name -> otg.Capture + 345, // 4: otg.Config.devices:type_name -> otg.Device + 470, // 5: otg.Config.flows:type_name -> otg.Flow + 519, // 6: otg.Config.events:type_name -> otg.Event + 313, // 7: otg.Config.options:type_name -> otg.ConfigOptions + 525, // 8: otg.Config.lldp:type_name -> otg.Lldp + 315, // 9: otg.ConfigOptions.port_options:type_name -> otg.PortOptions + 346, // 10: otg.ConfigOptions.protocol_options:type_name -> otg.ProtocolOptions + 317, // 11: otg.Lag.ports:type_name -> otg.LagPort + 318, // 12: otg.Lag.protocol:type_name -> otg.LagProtocol + 321, // 13: otg.LagPort.lacp:type_name -> otg.LagPortLacp + 322, // 14: otg.LagPort.ethernet:type_name -> otg.DeviceEthernetBase 0, // 15: otg.LagProtocol.choice:type_name -> otg.LagProtocol.Choice.Enum - 313, // 16: otg.LagProtocol.lacp:type_name -> otg.LagProtocolLacp - 312, // 17: otg.LagProtocol.static:type_name -> otg.LagProtocolStatic + 320, // 16: otg.LagProtocol.lacp:type_name -> otg.LagProtocolLacp + 319, // 17: otg.LagProtocol.static:type_name -> otg.LagProtocolStatic 1, // 18: otg.LagPortLacp.actor_activity:type_name -> otg.LagPortLacp.ActorActivity.Enum - 318, // 19: otg.DeviceEthernetBase.vlans:type_name -> otg.DeviceVlan - 317, // 20: otg.DeviceEthernet.connection:type_name -> otg.EthernetConnection - 319, // 21: otg.DeviceEthernet.ipv4_addresses:type_name -> otg.DeviceIpv4 - 322, // 22: otg.DeviceEthernet.ipv6_addresses:type_name -> otg.DeviceIpv6 - 318, // 23: otg.DeviceEthernet.vlans:type_name -> otg.DeviceVlan + 325, // 19: otg.DeviceEthernetBase.vlans:type_name -> otg.DeviceVlan + 324, // 20: otg.DeviceEthernet.connection:type_name -> otg.EthernetConnection + 326, // 21: otg.DeviceEthernet.ipv4_addresses:type_name -> otg.DeviceIpv4 + 329, // 22: otg.DeviceEthernet.ipv6_addresses:type_name -> otg.DeviceIpv6 + 325, // 23: otg.DeviceEthernet.vlans:type_name -> otg.DeviceVlan 2, // 24: otg.EthernetConnection.choice:type_name -> otg.EthernetConnection.Choice.Enum 3, // 25: otg.DeviceVlan.tpid:type_name -> otg.DeviceVlan.Tpid.Enum - 321, // 26: otg.DeviceIpv4.gateway_mac:type_name -> otg.DeviceIpv4GatewayMAC + 328, // 26: otg.DeviceIpv4.gateway_mac:type_name -> otg.DeviceIpv4GatewayMAC 4, // 27: otg.DeviceIpv4GatewayMAC.choice:type_name -> otg.DeviceIpv4GatewayMAC.Choice.Enum - 324, // 28: otg.DeviceIpv6.gateway_mac:type_name -> otg.DeviceIpv6GatewayMAC + 331, // 28: otg.DeviceIpv6.gateway_mac:type_name -> otg.DeviceIpv6GatewayMAC 5, // 29: otg.DeviceIpv6GatewayMAC.choice:type_name -> otg.DeviceIpv6GatewayMAC.Choice.Enum 6, // 30: otg.Layer1.speed:type_name -> otg.Layer1.Speed.Enum 7, // 31: otg.Layer1.media:type_name -> otg.Layer1.Media.Enum - 326, // 32: otg.Layer1.auto_negotiation:type_name -> otg.Layer1AutoNegotiation - 327, // 33: otg.Layer1.flow_control:type_name -> otg.Layer1FlowControl + 333, // 32: otg.Layer1.auto_negotiation:type_name -> otg.Layer1AutoNegotiation + 334, // 33: otg.Layer1.flow_control:type_name -> otg.Layer1FlowControl 8, // 34: otg.Layer1FlowControl.choice:type_name -> otg.Layer1FlowControl.Choice.Enum - 329, // 35: otg.Layer1FlowControl.ieee_802_1qbb:type_name -> otg.Layer1Ieee8021qbb - 328, // 36: otg.Layer1FlowControl.ieee_802_3x:type_name -> otg.Layer1Ieee8023x - 331, // 37: otg.Capture.filters:type_name -> otg.CaptureFilter + 336, // 35: otg.Layer1FlowControl.ieee_802_1qbb:type_name -> otg.Layer1Ieee8021qbb + 335, // 36: otg.Layer1FlowControl.ieee_802_3x:type_name -> otg.Layer1Ieee8023x + 338, // 37: otg.Capture.filters:type_name -> otg.CaptureFilter 9, // 38: otg.Capture.format:type_name -> otg.Capture.Format.Enum 10, // 39: otg.CaptureFilter.choice:type_name -> otg.CaptureFilter.Choice.Enum - 332, // 40: otg.CaptureFilter.custom:type_name -> otg.CaptureCustom - 334, // 41: otg.CaptureFilter.ethernet:type_name -> otg.CaptureEthernet - 335, // 42: otg.CaptureFilter.vlan:type_name -> otg.CaptureVlan - 336, // 43: otg.CaptureFilter.ipv4:type_name -> otg.CaptureIpv4 - 337, // 44: otg.CaptureFilter.ipv6:type_name -> otg.CaptureIpv6 - 333, // 45: otg.CaptureEthernet.src:type_name -> otg.CaptureField - 333, // 46: otg.CaptureEthernet.dst:type_name -> otg.CaptureField - 333, // 47: otg.CaptureEthernet.ether_type:type_name -> otg.CaptureField - 333, // 48: otg.CaptureEthernet.pfc_queue:type_name -> otg.CaptureField - 333, // 49: otg.CaptureVlan.priority:type_name -> otg.CaptureField - 333, // 50: otg.CaptureVlan.cfi:type_name -> otg.CaptureField - 333, // 51: otg.CaptureVlan.id:type_name -> otg.CaptureField - 333, // 52: otg.CaptureVlan.protocol:type_name -> otg.CaptureField - 333, // 53: otg.CaptureIpv4.version:type_name -> otg.CaptureField - 333, // 54: otg.CaptureIpv4.header_length:type_name -> otg.CaptureField - 333, // 55: otg.CaptureIpv4.priority:type_name -> otg.CaptureField - 333, // 56: otg.CaptureIpv4.total_length:type_name -> otg.CaptureField - 333, // 57: otg.CaptureIpv4.identification:type_name -> otg.CaptureField - 333, // 58: otg.CaptureIpv4.reserved:type_name -> otg.CaptureField - 333, // 59: otg.CaptureIpv4.dont_fragment:type_name -> otg.CaptureField - 333, // 60: otg.CaptureIpv4.more_fragments:type_name -> otg.CaptureField - 333, // 61: otg.CaptureIpv4.fragment_offset:type_name -> otg.CaptureField - 333, // 62: otg.CaptureIpv4.time_to_live:type_name -> otg.CaptureField - 333, // 63: otg.CaptureIpv4.protocol:type_name -> otg.CaptureField - 333, // 64: otg.CaptureIpv4.header_checksum:type_name -> otg.CaptureField - 333, // 65: otg.CaptureIpv4.src:type_name -> otg.CaptureField - 333, // 66: otg.CaptureIpv4.dst:type_name -> otg.CaptureField - 333, // 67: otg.CaptureIpv6.version:type_name -> otg.CaptureField - 333, // 68: otg.CaptureIpv6.traffic_class:type_name -> otg.CaptureField - 333, // 69: otg.CaptureIpv6.flow_label:type_name -> otg.CaptureField - 333, // 70: otg.CaptureIpv6.payload_length:type_name -> otg.CaptureField - 333, // 71: otg.CaptureIpv6.next_header:type_name -> otg.CaptureField - 333, // 72: otg.CaptureIpv6.hop_limit:type_name -> otg.CaptureField - 333, // 73: otg.CaptureIpv6.src:type_name -> otg.CaptureField - 333, // 74: otg.CaptureIpv6.dst:type_name -> otg.CaptureField - 316, // 75: otg.Device.ethernets:type_name -> otg.DeviceEthernet - 320, // 76: otg.Device.ipv4_loopbacks:type_name -> otg.DeviceIpv4Loopback - 323, // 77: otg.Device.ipv6_loopbacks:type_name -> otg.DeviceIpv6Loopback - 340, // 78: otg.Device.isis:type_name -> otg.DeviceIsisRouter - 359, // 79: otg.Device.bgp:type_name -> otg.DeviceBgpRouter - 422, // 80: otg.Device.vxlan:type_name -> otg.DeviceVxlan - 434, // 81: otg.Device.rsvp:type_name -> otg.DeviceRsvp - 341, // 82: otg.DeviceIsisRouter.instance:type_name -> otg.DeviceIsisMultiInstance - 342, // 83: otg.DeviceIsisRouter.interfaces:type_name -> otg.IsisInterface - 350, // 84: otg.DeviceIsisRouter.basic:type_name -> otg.IsisBasic - 351, // 85: otg.DeviceIsisRouter.advanced:type_name -> otg.IsisAdvanced - 352, // 86: otg.DeviceIsisRouter.router_auth:type_name -> otg.IsisAuthentication - 354, // 87: otg.DeviceIsisRouter.v4_routes:type_name -> otg.IsisV4RouteRange - 358, // 88: otg.DeviceIsisRouter.v6_routes:type_name -> otg.IsisV6RouteRange + 339, // 40: otg.CaptureFilter.custom:type_name -> otg.CaptureCustom + 341, // 41: otg.CaptureFilter.ethernet:type_name -> otg.CaptureEthernet + 342, // 42: otg.CaptureFilter.vlan:type_name -> otg.CaptureVlan + 343, // 43: otg.CaptureFilter.ipv4:type_name -> otg.CaptureIpv4 + 344, // 44: otg.CaptureFilter.ipv6:type_name -> otg.CaptureIpv6 + 340, // 45: otg.CaptureEthernet.src:type_name -> otg.CaptureField + 340, // 46: otg.CaptureEthernet.dst:type_name -> otg.CaptureField + 340, // 47: otg.CaptureEthernet.ether_type:type_name -> otg.CaptureField + 340, // 48: otg.CaptureEthernet.pfc_queue:type_name -> otg.CaptureField + 340, // 49: otg.CaptureVlan.priority:type_name -> otg.CaptureField + 340, // 50: otg.CaptureVlan.cfi:type_name -> otg.CaptureField + 340, // 51: otg.CaptureVlan.id:type_name -> otg.CaptureField + 340, // 52: otg.CaptureVlan.protocol:type_name -> otg.CaptureField + 340, // 53: otg.CaptureIpv4.version:type_name -> otg.CaptureField + 340, // 54: otg.CaptureIpv4.header_length:type_name -> otg.CaptureField + 340, // 55: otg.CaptureIpv4.priority:type_name -> otg.CaptureField + 340, // 56: otg.CaptureIpv4.total_length:type_name -> otg.CaptureField + 340, // 57: otg.CaptureIpv4.identification:type_name -> otg.CaptureField + 340, // 58: otg.CaptureIpv4.reserved:type_name -> otg.CaptureField + 340, // 59: otg.CaptureIpv4.dont_fragment:type_name -> otg.CaptureField + 340, // 60: otg.CaptureIpv4.more_fragments:type_name -> otg.CaptureField + 340, // 61: otg.CaptureIpv4.fragment_offset:type_name -> otg.CaptureField + 340, // 62: otg.CaptureIpv4.time_to_live:type_name -> otg.CaptureField + 340, // 63: otg.CaptureIpv4.protocol:type_name -> otg.CaptureField + 340, // 64: otg.CaptureIpv4.header_checksum:type_name -> otg.CaptureField + 340, // 65: otg.CaptureIpv4.src:type_name -> otg.CaptureField + 340, // 66: otg.CaptureIpv4.dst:type_name -> otg.CaptureField + 340, // 67: otg.CaptureIpv6.version:type_name -> otg.CaptureField + 340, // 68: otg.CaptureIpv6.traffic_class:type_name -> otg.CaptureField + 340, // 69: otg.CaptureIpv6.flow_label:type_name -> otg.CaptureField + 340, // 70: otg.CaptureIpv6.payload_length:type_name -> otg.CaptureField + 340, // 71: otg.CaptureIpv6.next_header:type_name -> otg.CaptureField + 340, // 72: otg.CaptureIpv6.hop_limit:type_name -> otg.CaptureField + 340, // 73: otg.CaptureIpv6.src:type_name -> otg.CaptureField + 340, // 74: otg.CaptureIpv6.dst:type_name -> otg.CaptureField + 323, // 75: otg.Device.ethernets:type_name -> otg.DeviceEthernet + 327, // 76: otg.Device.ipv4_loopbacks:type_name -> otg.DeviceIpv4Loopback + 330, // 77: otg.Device.ipv6_loopbacks:type_name -> otg.DeviceIpv6Loopback + 347, // 78: otg.Device.isis:type_name -> otg.DeviceIsisRouter + 366, // 79: otg.Device.bgp:type_name -> otg.DeviceBgpRouter + 447, // 80: otg.Device.vxlan:type_name -> otg.DeviceVxlan + 459, // 81: otg.Device.rsvp:type_name -> otg.DeviceRsvp + 348, // 82: otg.DeviceIsisRouter.instance:type_name -> otg.DeviceIsisMultiInstance + 349, // 83: otg.DeviceIsisRouter.interfaces:type_name -> otg.IsisInterface + 357, // 84: otg.DeviceIsisRouter.basic:type_name -> otg.IsisBasic + 358, // 85: otg.DeviceIsisRouter.advanced:type_name -> otg.IsisAdvanced + 359, // 86: otg.DeviceIsisRouter.router_auth:type_name -> otg.IsisAuthentication + 361, // 87: otg.DeviceIsisRouter.v4_routes:type_name -> otg.IsisV4RouteRange + 365, // 88: otg.DeviceIsisRouter.v6_routes:type_name -> otg.IsisV6RouteRange 11, // 89: otg.IsisInterface.network_type:type_name -> otg.IsisInterface.NetworkType.Enum 12, // 90: otg.IsisInterface.level_type:type_name -> otg.IsisInterface.LevelType.Enum - 343, // 91: otg.IsisInterface.l1_settings:type_name -> otg.IsisInterfaceLevel - 343, // 92: otg.IsisInterface.l2_settings:type_name -> otg.IsisInterfaceLevel - 344, // 93: otg.IsisInterface.multi_topology_ids:type_name -> otg.IsisMT - 345, // 94: otg.IsisInterface.traffic_engineering:type_name -> otg.LinkStateTE - 347, // 95: otg.IsisInterface.authentication:type_name -> otg.IsisInterfaceAuthentication - 348, // 96: otg.IsisInterface.advanced:type_name -> otg.IsisInterfaceAdvanced - 349, // 97: otg.IsisInterface.link_protection:type_name -> otg.IsisInterfaceLinkProtection - 346, // 98: otg.LinkStateTE.priority_bandwidths:type_name -> otg.LinkStatepriorityBandwidths + 350, // 91: otg.IsisInterface.l1_settings:type_name -> otg.IsisInterfaceLevel + 350, // 92: otg.IsisInterface.l2_settings:type_name -> otg.IsisInterfaceLevel + 351, // 93: otg.IsisInterface.multi_topology_ids:type_name -> otg.IsisMT + 352, // 94: otg.IsisInterface.traffic_engineering:type_name -> otg.LinkStateTE + 354, // 95: otg.IsisInterface.authentication:type_name -> otg.IsisInterfaceAuthentication + 355, // 96: otg.IsisInterface.advanced:type_name -> otg.IsisInterfaceAdvanced + 356, // 97: otg.IsisInterface.link_protection:type_name -> otg.IsisInterfaceLinkProtection + 353, // 98: otg.LinkStateTE.priority_bandwidths:type_name -> otg.LinkStatepriorityBandwidths 13, // 99: otg.IsisInterfaceAuthentication.auth_type:type_name -> otg.IsisInterfaceAuthentication.AuthType.Enum - 353, // 100: otg.IsisAuthentication.area_auth:type_name -> otg.IsisAuthenticationBase - 353, // 101: otg.IsisAuthentication.domain_auth:type_name -> otg.IsisAuthenticationBase + 360, // 100: otg.IsisAuthentication.area_auth:type_name -> otg.IsisAuthenticationBase + 360, // 101: otg.IsisAuthentication.domain_auth:type_name -> otg.IsisAuthenticationBase 14, // 102: otg.IsisAuthenticationBase.auth_type:type_name -> otg.IsisAuthenticationBase.AuthType.Enum - 355, // 103: otg.IsisV4RouteRange.addresses:type_name -> otg.V4RouteAddress + 362, // 103: otg.IsisV4RouteRange.addresses:type_name -> otg.V4RouteAddress 15, // 104: otg.IsisV4RouteRange.origin_type:type_name -> otg.IsisV4RouteRange.OriginType.Enum 16, // 105: otg.IsisV4RouteRange.redistribution_type:type_name -> otg.IsisV4RouteRange.RedistributionType.Enum - 356, // 106: otg.IsisV6RouteRange.addresses:type_name -> otg.V6RouteAddress + 363, // 106: otg.IsisV6RouteRange.addresses:type_name -> otg.V6RouteAddress 17, // 107: otg.IsisV6RouteRange.origin_type:type_name -> otg.IsisV6RouteRange.OriginType.Enum 18, // 108: otg.IsisV6RouteRange.redistribution_type:type_name -> otg.IsisV6RouteRange.RedistributionType.Enum - 368, // 109: otg.DeviceBgpRouter.ipv4_interfaces:type_name -> otg.BgpV4Interface - 416, // 110: otg.DeviceBgpRouter.ipv6_interfaces:type_name -> otg.BgpV6Interface + 375, // 109: otg.DeviceBgpRouter.ipv4_interfaces:type_name -> otg.BgpV4Interface + 441, // 110: otg.DeviceBgpRouter.ipv6_interfaces:type_name -> otg.BgpV6Interface 19, // 111: otg.DeviceBgpMessageHeaderError.subcode:type_name -> otg.DeviceBgpMessageHeaderError.Subcode.Enum 20, // 112: otg.DeviceBgpOpenMessageError.subcode:type_name -> otg.DeviceBgpOpenMessageError.Subcode.Enum 21, // 113: otg.DeviceBgpUpdateMessageError.subcode:type_name -> otg.DeviceBgpUpdateMessageError.Subcode.Enum 22, // 114: otg.DeviceBgpCeaseError.subcode:type_name -> otg.DeviceBgpCeaseError.Subcode.Enum - 369, // 115: otg.BgpV4Peer.evpn_ethernet_segments:type_name -> otg.BgpV4EthernetSegment + 376, // 115: otg.BgpV4Peer.evpn_ethernet_segments:type_name -> otg.BgpV4EthernetSegment 23, // 116: otg.BgpV4Peer.as_type:type_name -> otg.BgpV4Peer.AsType.Enum 24, // 117: otg.BgpV4Peer.as_number_width:type_name -> otg.BgpV4Peer.AsNumberWidth.Enum - 382, // 118: otg.BgpV4Peer.advanced:type_name -> otg.BgpAdvanced - 383, // 119: otg.BgpV4Peer.capability:type_name -> otg.BgpCapability - 384, // 120: otg.BgpV4Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter - 385, // 121: otg.BgpV4Peer.v4_routes:type_name -> otg.BgpV4RouteRange - 387, // 122: otg.BgpV4Peer.v6_routes:type_name -> otg.BgpV6RouteRange - 388, // 123: otg.BgpV4Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy - 412, // 124: otg.BgpV4Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy - 414, // 125: otg.BgpV4Peer.graceful_restart:type_name -> otg.BgpGracefulRestart - 367, // 126: otg.BgpV4Interface.peers:type_name -> otg.BgpV4Peer - 370, // 127: otg.BgpV4EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection - 376, // 128: otg.BgpV4EthernetSegment.evis:type_name -> otg.BgpV4EvpnEvis + 389, // 118: otg.BgpV4Peer.advanced:type_name -> otg.BgpAdvanced + 390, // 119: otg.BgpV4Peer.capability:type_name -> otg.BgpCapability + 391, // 120: otg.BgpV4Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter + 392, // 121: otg.BgpV4Peer.v4_routes:type_name -> otg.BgpV4RouteRange + 412, // 122: otg.BgpV4Peer.v6_routes:type_name -> otg.BgpV6RouteRange + 413, // 123: otg.BgpV4Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy + 437, // 124: otg.BgpV4Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy + 439, // 125: otg.BgpV4Peer.graceful_restart:type_name -> otg.BgpGracefulRestart + 374, // 126: otg.BgpV4Interface.peers:type_name -> otg.BgpV4Peer + 377, // 127: otg.BgpV4EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection + 383, // 128: otg.BgpV4EthernetSegment.evis:type_name -> otg.BgpV4EvpnEvis 25, // 129: otg.BgpV4EthernetSegment.active_mode:type_name -> otg.BgpV4EthernetSegment.ActiveMode.Enum - 371, // 130: otg.BgpV4EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 131: otg.BgpV4EthernetSegment.communities:type_name -> otg.BgpCommunity - 373, // 132: otg.BgpV4EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 133: otg.BgpV4EthernetSegment.as_path:type_name -> otg.BgpAsPath + 378, // 130: otg.BgpV4EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 131: otg.BgpV4EthernetSegment.communities:type_name -> otg.BgpCommunity + 380, // 132: otg.BgpV4EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 133: otg.BgpV4EthernetSegment.as_path:type_name -> otg.BgpAsPath 26, // 134: otg.BgpRouteAdvanced.origin:type_name -> otg.BgpRouteAdvanced.Origin.Enum 27, // 135: otg.BgpCommunity.type:type_name -> otg.BgpCommunity.Type.Enum 28, // 136: otg.BgpExtCommunity.type:type_name -> otg.BgpExtCommunity.Type.Enum 29, // 137: otg.BgpExtCommunity.subtype:type_name -> otg.BgpExtCommunity.Subtype.Enum 30, // 138: otg.BgpAsPath.as_set_mode:type_name -> otg.BgpAsPath.AsSetMode.Enum - 375, // 139: otg.BgpAsPath.segments:type_name -> otg.BgpAsPathSegment + 382, // 139: otg.BgpAsPath.segments:type_name -> otg.BgpAsPathSegment 31, // 140: otg.BgpAsPathSegment.type:type_name -> otg.BgpAsPathSegment.Type.Enum 32, // 141: otg.BgpV4EvpnEvis.choice:type_name -> otg.BgpV4EvpnEvis.Choice.Enum - 377, // 142: otg.BgpV4EvpnEvis.evi_vxlan:type_name -> otg.BgpV4EviVxlan - 378, // 143: otg.BgpV4EviVxlan.broadcast_domains:type_name -> otg.BgpV4EviVxlanBroadcastDomain + 384, // 142: otg.BgpV4EvpnEvis.evi_vxlan:type_name -> otg.BgpV4EviVxlan + 385, // 143: otg.BgpV4EviVxlan.broadcast_domains:type_name -> otg.BgpV4EviVxlanBroadcastDomain 33, // 144: otg.BgpV4EviVxlan.replication_type:type_name -> otg.BgpV4EviVxlan.ReplicationType.Enum - 380, // 145: otg.BgpV4EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher - 381, // 146: otg.BgpV4EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget - 381, // 147: otg.BgpV4EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget - 381, // 148: otg.BgpV4EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget - 381, // 149: otg.BgpV4EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget - 371, // 150: otg.BgpV4EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 151: otg.BgpV4EviVxlan.communities:type_name -> otg.BgpCommunity - 373, // 152: otg.BgpV4EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 153: otg.BgpV4EviVxlan.as_path:type_name -> otg.BgpAsPath - 379, // 154: otg.BgpV4EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange - 357, // 155: otg.BgpCMacIpRange.mac_addresses:type_name -> otg.MACRouteAddress - 355, // 156: otg.BgpCMacIpRange.ipv4_addresses:type_name -> otg.V4RouteAddress - 356, // 157: otg.BgpCMacIpRange.ipv6_addresses:type_name -> otg.V6RouteAddress - 371, // 158: otg.BgpCMacIpRange.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 159: otg.BgpCMacIpRange.communities:type_name -> otg.BgpCommunity - 373, // 160: otg.BgpCMacIpRange.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 161: otg.BgpCMacIpRange.as_path:type_name -> otg.BgpAsPath + 387, // 145: otg.BgpV4EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher + 388, // 146: otg.BgpV4EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget + 388, // 147: otg.BgpV4EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget + 388, // 148: otg.BgpV4EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget + 388, // 149: otg.BgpV4EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget + 378, // 150: otg.BgpV4EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 151: otg.BgpV4EviVxlan.communities:type_name -> otg.BgpCommunity + 380, // 152: otg.BgpV4EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 153: otg.BgpV4EviVxlan.as_path:type_name -> otg.BgpAsPath + 386, // 154: otg.BgpV4EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange + 364, // 155: otg.BgpCMacIpRange.mac_addresses:type_name -> otg.MACRouteAddress + 362, // 156: otg.BgpCMacIpRange.ipv4_addresses:type_name -> otg.V4RouteAddress + 363, // 157: otg.BgpCMacIpRange.ipv6_addresses:type_name -> otg.V6RouteAddress + 378, // 158: otg.BgpCMacIpRange.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 159: otg.BgpCMacIpRange.communities:type_name -> otg.BgpCommunity + 380, // 160: otg.BgpCMacIpRange.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 161: otg.BgpCMacIpRange.as_path:type_name -> otg.BgpAsPath 34, // 162: otg.BgpRouteDistinguisher.rd_type:type_name -> otg.BgpRouteDistinguisher.RdType.Enum 35, // 163: otg.BgpRouteTarget.rt_type:type_name -> otg.BgpRouteTarget.RtType.Enum - 355, // 164: otg.BgpV4RouteRange.addresses:type_name -> otg.V4RouteAddress + 362, // 164: otg.BgpV4RouteRange.addresses:type_name -> otg.V4RouteAddress 36, // 165: otg.BgpV4RouteRange.next_hop_mode:type_name -> otg.BgpV4RouteRange.NextHopMode.Enum 37, // 166: otg.BgpV4RouteRange.next_hop_address_type:type_name -> otg.BgpV4RouteRange.NextHopAddressType.Enum - 371, // 167: otg.BgpV4RouteRange.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 168: otg.BgpV4RouteRange.communities:type_name -> otg.BgpCommunity - 374, // 169: otg.BgpV4RouteRange.as_path:type_name -> otg.BgpAsPath - 386, // 170: otg.BgpV4RouteRange.add_path:type_name -> otg.BgpAddPath - 373, // 171: otg.BgpV4RouteRange.ext_communities:type_name -> otg.BgpExtCommunity - 356, // 172: otg.BgpV6RouteRange.addresses:type_name -> otg.V6RouteAddress - 38, // 173: otg.BgpV6RouteRange.next_hop_mode:type_name -> otg.BgpV6RouteRange.NextHopMode.Enum - 39, // 174: otg.BgpV6RouteRange.next_hop_address_type:type_name -> otg.BgpV6RouteRange.NextHopAddressType.Enum - 371, // 175: otg.BgpV6RouteRange.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 176: otg.BgpV6RouteRange.communities:type_name -> otg.BgpCommunity - 374, // 177: otg.BgpV6RouteRange.as_path:type_name -> otg.BgpAsPath - 386, // 178: otg.BgpV6RouteRange.add_path:type_name -> otg.BgpAddPath - 373, // 179: otg.BgpV6RouteRange.ext_communities:type_name -> otg.BgpExtCommunity - 40, // 180: otg.BgpSrteV4Policy.next_hop_mode:type_name -> otg.BgpSrteV4Policy.NextHopMode.Enum - 41, // 181: otg.BgpSrteV4Policy.next_hop_address_type:type_name -> otg.BgpSrteV4Policy.NextHopAddressType.Enum - 371, // 182: otg.BgpSrteV4Policy.advanced:type_name -> otg.BgpRouteAdvanced - 386, // 183: otg.BgpSrteV4Policy.add_path:type_name -> otg.BgpAddPath - 374, // 184: otg.BgpSrteV4Policy.as_path:type_name -> otg.BgpAsPath - 372, // 185: otg.BgpSrteV4Policy.communities:type_name -> otg.BgpCommunity - 373, // 186: otg.BgpSrteV4Policy.ext_communities:type_name -> otg.BgpExtCommunity - 389, // 187: otg.BgpSrteV4Policy.tunnel_tlvs:type_name -> otg.BgpSrteV4TunnelTlv - 390, // 188: otg.BgpSrteV4TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv - 391, // 189: otg.BgpSrteV4TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv - 392, // 190: otg.BgpSrteV4TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv - 393, // 191: otg.BgpSrteV4TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv - 394, // 192: otg.BgpSrteV4TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv - 395, // 193: otg.BgpSrteV4TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv - 396, // 194: otg.BgpSrteV4TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv - 397, // 195: otg.BgpSrteV4TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList - 42, // 196: otg.BgpSrteRemoteEndpointSubTlv.address_family:type_name -> otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum - 43, // 197: otg.BgpSrteBindingSubTlv.binding_sid_type:type_name -> otg.BgpSrteBindingSubTlv.BindingSidType.Enum - 44, // 198: otg.BgpSrteExplicitNullLabelPolicySubTlv.explicit_null_label_policy:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum - 398, // 199: otg.BgpSrteSegmentList.segments:type_name -> otg.BgpSrteSegment - 45, // 200: otg.BgpSrteSegment.segment_type:type_name -> otg.BgpSrteSegment.SegmentType.Enum - 401, // 201: otg.BgpSrteSegment.type_a:type_name -> otg.BgpSrteSegmentATypeSubTlv - 402, // 202: otg.BgpSrteSegment.type_b:type_name -> otg.BgpSrteSegmentBTypeSubTlv - 403, // 203: otg.BgpSrteSegment.type_c:type_name -> otg.BgpSrteSegmentCTypeSubTlv - 404, // 204: otg.BgpSrteSegment.type_d:type_name -> otg.BgpSrteSegmentDTypeSubTlv - 405, // 205: otg.BgpSrteSegment.type_e:type_name -> otg.BgpSrteSegmentETypeSubTlv - 406, // 206: otg.BgpSrteSegment.type_f:type_name -> otg.BgpSrteSegmentFTypeSubTlv - 407, // 207: otg.BgpSrteSegment.type_g:type_name -> otg.BgpSrteSegmentGTypeSubTlv - 408, // 208: otg.BgpSrteSegment.type_h:type_name -> otg.BgpSrteSegmentHTypeSubTlv - 409, // 209: otg.BgpSrteSegment.type_i:type_name -> otg.BgpSrteSegmentITypeSubTlv - 410, // 210: otg.BgpSrteSegment.type_j:type_name -> otg.BgpSrteSegmentJTypeSubTlv - 411, // 211: otg.BgpSrteSegment.type_k:type_name -> otg.BgpSrteSegmentKTypeSubTlv - 400, // 212: otg.BgpSrteSegmentBTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 399, // 213: otg.BgpSrteSegmentCTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 214: otg.BgpSrteSegmentDTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 215: otg.BgpSrteSegmentETypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 216: otg.BgpSrteSegmentFTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 217: otg.BgpSrteSegmentGTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 399, // 218: otg.BgpSrteSegmentHTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 400, // 219: otg.BgpSrteSegmentITypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 400, // 220: otg.BgpSrteSegmentJTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 400, // 221: otg.BgpSrteSegmentKTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 46, // 222: otg.BgpSrteV6Policy.next_hop_mode:type_name -> otg.BgpSrteV6Policy.NextHopMode.Enum - 47, // 223: otg.BgpSrteV6Policy.next_hop_address_type:type_name -> otg.BgpSrteV6Policy.NextHopAddressType.Enum - 371, // 224: otg.BgpSrteV6Policy.advanced:type_name -> otg.BgpRouteAdvanced - 386, // 225: otg.BgpSrteV6Policy.add_path:type_name -> otg.BgpAddPath - 374, // 226: otg.BgpSrteV6Policy.as_path:type_name -> otg.BgpAsPath - 372, // 227: otg.BgpSrteV6Policy.communities:type_name -> otg.BgpCommunity - 373, // 228: otg.BgpSrteV6Policy.extcommunities:type_name -> otg.BgpExtCommunity - 413, // 229: otg.BgpSrteV6Policy.tunnel_tlvs:type_name -> otg.BgpSrteV6TunnelTlv - 390, // 230: otg.BgpSrteV6TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv - 391, // 231: otg.BgpSrteV6TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv - 392, // 232: otg.BgpSrteV6TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv - 393, // 233: otg.BgpSrteV6TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv - 394, // 234: otg.BgpSrteV6TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv - 395, // 235: otg.BgpSrteV6TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv - 396, // 236: otg.BgpSrteV6TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv - 397, // 237: otg.BgpSrteV6TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList - 417, // 238: otg.BgpV6Peer.segment_routing:type_name -> otg.BgpV6SegmentRouting - 418, // 239: otg.BgpV6Peer.evpn_ethernet_segments:type_name -> otg.BgpV6EthernetSegment - 48, // 240: otg.BgpV6Peer.as_type:type_name -> otg.BgpV6Peer.AsType.Enum - 49, // 241: otg.BgpV6Peer.as_number_width:type_name -> otg.BgpV6Peer.AsNumberWidth.Enum - 382, // 242: otg.BgpV6Peer.advanced:type_name -> otg.BgpAdvanced - 383, // 243: otg.BgpV6Peer.capability:type_name -> otg.BgpCapability - 384, // 244: otg.BgpV6Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter - 385, // 245: otg.BgpV6Peer.v4_routes:type_name -> otg.BgpV4RouteRange - 387, // 246: otg.BgpV6Peer.v6_routes:type_name -> otg.BgpV6RouteRange - 388, // 247: otg.BgpV6Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy - 412, // 248: otg.BgpV6Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy - 414, // 249: otg.BgpV6Peer.graceful_restart:type_name -> otg.BgpGracefulRestart - 415, // 250: otg.BgpV6Interface.peers:type_name -> otg.BgpV6Peer - 370, // 251: otg.BgpV6EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection - 419, // 252: otg.BgpV6EthernetSegment.evis:type_name -> otg.BgpV6EvpnEvis - 50, // 253: otg.BgpV6EthernetSegment.active_mode:type_name -> otg.BgpV6EthernetSegment.ActiveMode.Enum - 371, // 254: otg.BgpV6EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 255: otg.BgpV6EthernetSegment.communities:type_name -> otg.BgpCommunity - 373, // 256: otg.BgpV6EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 257: otg.BgpV6EthernetSegment.as_path:type_name -> otg.BgpAsPath - 51, // 258: otg.BgpV6EvpnEvis.choice:type_name -> otg.BgpV6EvpnEvis.Choice.Enum - 420, // 259: otg.BgpV6EvpnEvis.evi_vxlan:type_name -> otg.BgpV6EviVxlan - 421, // 260: otg.BgpV6EviVxlan.broadcast_domains:type_name -> otg.BgpV6EviVxlanBroadcastDomain - 52, // 261: otg.BgpV6EviVxlan.replication_type:type_name -> otg.BgpV6EviVxlan.ReplicationType.Enum - 380, // 262: otg.BgpV6EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher - 381, // 263: otg.BgpV6EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget - 381, // 264: otg.BgpV6EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget - 381, // 265: otg.BgpV6EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget - 381, // 266: otg.BgpV6EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget - 371, // 267: otg.BgpV6EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced - 372, // 268: otg.BgpV6EviVxlan.communities:type_name -> otg.BgpCommunity - 373, // 269: otg.BgpV6EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity - 374, // 270: otg.BgpV6EviVxlan.as_path:type_name -> otg.BgpAsPath - 379, // 271: otg.BgpV6EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange - 423, // 272: otg.DeviceVxlan.v4_tunnels:type_name -> otg.VxlanV4Tunnel - 424, // 273: otg.DeviceVxlan.v6_tunnels:type_name -> otg.VxlanV6Tunnel - 425, // 274: otg.VxlanV4Tunnel.destination_ip_mode:type_name -> otg.VxlanV4TunnelDestinationIPMode - 426, // 275: otg.VxlanV6Tunnel.destination_ip_mode:type_name -> otg.VxlanV6TunnelDestinationIPMode - 53, // 276: otg.VxlanV4TunnelDestinationIPMode.choice:type_name -> otg.VxlanV4TunnelDestinationIPMode.Choice.Enum - 427, // 277: otg.VxlanV4TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicast - 432, // 278: otg.VxlanV4TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV4TunnelDestinationIPModeMulticast - 54, // 279: otg.VxlanV6TunnelDestinationIPMode.choice:type_name -> otg.VxlanV6TunnelDestinationIPMode.Choice.Enum - 428, // 280: otg.VxlanV6TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicast - 433, // 281: otg.VxlanV6TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV6TunnelDestinationIPModeMulticast - 430, // 282: otg.VxlanV4TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicastVtep - 431, // 283: otg.VxlanV6TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicastVtep - 429, // 284: otg.VxlanV4TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - 429, // 285: otg.VxlanV6TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - 435, // 286: otg.DeviceRsvp.ipv4_interfaces:type_name -> otg.RsvpIpv4Interface - 436, // 287: otg.DeviceRsvp.lsp_ipv4_interfaces:type_name -> otg.RsvpLspIpv4Interface - 437, // 288: otg.RsvpLspIpv4Interface.p2p_egress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp - 438, // 289: otg.RsvpLspIpv4Interface.p2p_ingress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp - 55, // 290: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.reservation_style:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum - 439, // 291: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.session_attribute:type_name -> otg.RsvpSessionAttribute - 441, // 292: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.tspec:type_name -> otg.RsvpTspec - 442, // 293: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.fast_reroute:type_name -> otg.RsvpFastReroute - 443, // 294: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ero:type_name -> otg.RsvpEro - 440, // 295: otg.RsvpSessionAttribute.resource_affinities:type_name -> otg.RsvpResourceAffinities - 56, // 296: otg.RsvpEro.prepend_neighbor_ip:type_name -> otg.RsvpEro.PrependNeighborIp.Enum - 444, // 297: otg.RsvpEro.subobjects:type_name -> otg.RsvpEroSubobject - 57, // 298: otg.RsvpEroSubobject.type:type_name -> otg.RsvpEroSubobject.Type.Enum - 58, // 299: otg.RsvpEroSubobject.hop_type:type_name -> otg.RsvpEroSubobject.HopType.Enum - 446, // 300: otg.Flow.tx_rx:type_name -> otg.FlowTxRx - 449, // 301: otg.Flow.packet:type_name -> otg.FlowHeader - 449, // 302: otg.Flow.egress_packet:type_name -> otg.FlowHeader - 476, // 303: otg.Flow.size:type_name -> otg.FlowSize - 481, // 304: otg.Flow.rate:type_name -> otg.FlowRate - 482, // 305: otg.Flow.duration:type_name -> otg.FlowDuration - 489, // 306: otg.Flow.metrics:type_name -> otg.FlowMetrics - 59, // 307: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum - 447, // 308: otg.FlowTxRx.port:type_name -> otg.FlowPort - 448, // 309: otg.FlowTxRx.device:type_name -> otg.FlowRouter - 60, // 310: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum - 61, // 311: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum - 450, // 312: otg.FlowHeader.custom:type_name -> otg.FlowCustom - 452, // 313: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet - 453, // 314: otg.FlowHeader.vlan:type_name -> otg.FlowVlan - 454, // 315: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan - 455, // 316: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 - 459, // 317: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 - 460, // 318: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause - 461, // 319: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause - 462, // 320: otg.FlowHeader.tcp:type_name -> otg.FlowTcp - 463, // 321: otg.FlowHeader.udp:type_name -> otg.FlowUdp - 464, // 322: otg.FlowHeader.gre:type_name -> otg.FlowGre - 465, // 323: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 - 467, // 324: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 - 468, // 325: otg.FlowHeader.arp:type_name -> otg.FlowArp - 469, // 326: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp - 471, // 327: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 - 473, // 328: otg.FlowHeader.ppp:type_name -> otg.FlowPpp - 474, // 329: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 - 475, // 330: otg.FlowHeader.mpls:type_name -> otg.FlowMpls - 451, // 331: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag - 614, // 332: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst - 617, // 333: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc - 620, // 334: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType - 623, // 335: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue - 626, // 336: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority - 629, // 337: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi - 632, // 338: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId - 635, // 339: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid - 638, // 340: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags - 641, // 341: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 - 644, // 342: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni - 647, // 343: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 - 650, // 344: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version - 653, // 345: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength - 456, // 346: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority - 656, // 347: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength - 659, // 348: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification - 662, // 349: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved - 665, // 350: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment - 668, // 351: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments - 671, // 352: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset - 674, // 353: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive - 677, // 354: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol - 678, // 355: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum - 681, // 356: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src - 684, // 357: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst - 62, // 358: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum - 687, // 359: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw - 458, // 360: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos - 457, // 361: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp - 690, // 362: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb - 693, // 363: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn - 696, // 364: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence - 699, // 365: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay - 702, // 366: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput - 705, // 367: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability - 708, // 368: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary - 711, // 369: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused - 714, // 370: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version - 717, // 371: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass - 720, // 372: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel - 723, // 373: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength - 726, // 374: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader - 729, // 375: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit - 732, // 376: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src - 735, // 377: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst - 738, // 378: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst - 741, // 379: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc - 744, // 380: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType - 747, // 381: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode - 750, // 382: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector - 753, // 383: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 - 756, // 384: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 - 759, // 385: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 - 762, // 386: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 - 765, // 387: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 - 768, // 388: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 - 771, // 389: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 - 774, // 390: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 - 777, // 391: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst - 780, // 392: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc - 783, // 393: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType - 786, // 394: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode - 789, // 395: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime - 792, // 396: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort - 795, // 397: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort - 798, // 398: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum - 801, // 399: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum - 804, // 400: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset - 807, // 401: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs - 810, // 402: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr - 813, // 403: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho - 816, // 404: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg - 819, // 405: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck - 822, // 406: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh - 825, // 407: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst - 828, // 408: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn - 831, // 409: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin - 834, // 410: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow - 837, // 411: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort - 840, // 412: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort - 843, // 413: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength - 844, // 414: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum - 847, // 415: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent - 850, // 416: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 - 853, // 417: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion - 856, // 418: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol - 857, // 419: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum - 860, // 420: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 - 863, // 421: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version - 866, // 422: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType - 869, // 423: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved - 872, // 424: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag - 875, // 425: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag - 878, // 426: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag - 881, // 427: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType - 884, // 428: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength - 887, // 429: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid - 890, // 430: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber - 893, // 431: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber - 896, // 432: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType - 466, // 433: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension - 899, // 434: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength - 902, // 435: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents - 905, // 436: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader - 908, // 437: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version - 911, // 438: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag - 914, // 439: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag - 917, // 440: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 - 920, // 441: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType - 923, // 442: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength - 926, // 443: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid - 929, // 444: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber - 932, // 445: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 - 935, // 446: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType - 938, // 447: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType - 941, // 448: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength - 944, // 449: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength - 947, // 450: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation - 950, // 451: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr - 953, // 452: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr - 956, // 453: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr - 959, // 454: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr - 63, // 455: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum - 470, // 456: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho - 962, // 457: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType - 965, // 458: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode - 966, // 459: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum - 969, // 460: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier - 972, // 461: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber - 64, // 462: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum - 472, // 463: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo - 982, // 464: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType - 985, // 465: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode - 988, // 466: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier - 991, // 467: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber - 992, // 468: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum - 996, // 469: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress - 999, // 470: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl - 1002, // 471: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType - 1005, // 472: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version - 1008, // 473: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type - 1011, // 474: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused - 1012, // 475: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum - 1015, // 476: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress - 1018, // 477: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel - 1021, // 478: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass - 1024, // 479: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack - 1027, // 480: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive - 65, // 481: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum - 477, // 482: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement - 478, // 483: otg.FlowSize.random:type_name -> otg.FlowSizeRandom - 479, // 484: otg.FlowSize.weight_pairs:type_name -> otg.FlowSizeWeightPairs - 66, // 485: otg.FlowSizeWeightPairs.choice:type_name -> otg.FlowSizeWeightPairs.Choice.Enum - 67, // 486: otg.FlowSizeWeightPairs.predefined:type_name -> otg.FlowSizeWeightPairs.Predefined.Enum - 480, // 487: otg.FlowSizeWeightPairs.custom:type_name -> otg.FlowSizeWeightPairsCustom - 68, // 488: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum - 69, // 489: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum - 485, // 490: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets - 486, // 491: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds - 487, // 492: otg.FlowDuration.burst:type_name -> otg.FlowBurst - 483, // 493: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous - 484, // 494: otg.FlowContinuous.delay:type_name -> otg.FlowDelay - 70, // 495: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum - 484, // 496: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay - 484, // 497: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay - 488, // 498: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap - 71, // 499: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum - 492, // 500: otg.FlowMetrics.rx_tx_ratio:type_name -> otg.FlowRxTxRatio - 490, // 501: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics - 491, // 502: otg.FlowMetrics.predefined_metric_tags:type_name -> otg.FlowPredefinedTags - 72, // 503: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum - 73, // 504: otg.FlowRxTxRatio.choice:type_name -> otg.FlowRxTxRatio.Choice.Enum - 493, // 505: otg.FlowRxTxRatio.rx_count:type_name -> otg.FlowRxTxRatioRxCount - 496, // 506: otg.Event.link:type_name -> otg.EventLink - 495, // 507: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold - 497, // 508: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw - 74, // 509: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum - 498, // 510: otg.EventSubscription.events:type_name -> otg.EventRequest - 501, // 511: otg.Lldp.connection:type_name -> otg.LldpConnection - 502, // 512: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId - 503, // 513: otg.Lldp.port_id:type_name -> otg.LldpPortId - 506, // 514: otg.Lldp.system_name:type_name -> otg.LldpSystemName - 75, // 515: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum - 76, // 516: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum - 504, // 517: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType - 77, // 518: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum - 505, // 519: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType - 78, // 520: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum - 79, // 521: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum - 80, // 522: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum - 81, // 523: otg.Error.kind:type_name -> otg.Error.Kind.Enum - 82, // 524: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum - 510, // 525: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate - 83, // 526: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum - 445, // 527: otg.FlowsUpdate.flows:type_name -> otg.Flow - 84, // 528: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum - 512, // 529: otg.ControlState.port:type_name -> otg.StatePort - 514, // 530: otg.ControlState.protocol:type_name -> otg.StateProtocol - 513, // 531: otg.ControlState.traffic:type_name -> otg.StateTraffic - 85, // 532: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum - 515, // 533: otg.StatePort.link:type_name -> otg.StatePortLink - 516, // 534: otg.StatePort.capture:type_name -> otg.StatePortCapture - 86, // 535: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum - 517, // 536: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit - 87, // 537: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum - 518, // 538: otg.StateProtocol.all:type_name -> otg.StateProtocolAll - 519, // 539: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute - 520, // 540: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp - 88, // 541: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum - 89, // 542: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum - 90, // 543: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum - 91, // 544: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum - 92, // 545: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum - 93, // 546: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum - 521, // 547: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin - 94, // 548: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum - 95, // 549: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum - 525, // 550: otg.ControlAction.protocol:type_name -> otg.ActionProtocol - 524, // 551: otg.ControlActionResponse.response:type_name -> otg.ActionResponse - 96, // 552: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum - 526, // 553: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol - 97, // 554: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum - 527, // 555: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 - 533, // 556: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 - 539, // 557: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp - 98, // 558: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum - 528, // 559: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 - 534, // 560: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 - 99, // 561: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum - 529, // 562: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping - 100, // 563: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum - 531, // 564: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping - 530, // 565: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest - 532, // 566: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse - 101, // 567: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - 102, // 568: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum - 535, // 569: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping - 103, // 570: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum - 537, // 571: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping - 536, // 572: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest - 538, // 573: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse - 104, // 574: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - 105, // 575: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum - 540, // 576: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification - 541, // 577: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart - 106, // 578: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum - 365, // 579: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError - 360, // 580: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError - 361, // 581: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError - 362, // 582: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError - 363, // 583: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired - 364, // 584: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError - 366, // 585: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError - 107, // 586: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum - 544, // 587: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest - 546, // 588: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest - 555, // 589: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest - 557, // 590: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest - 559, // 591: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest - 561, // 592: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest - 563, // 593: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest - 565, // 594: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest - 567, // 595: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest - 108, // 596: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum - 545, // 597: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric - 549, // 598: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric - 556, // 599: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric - 558, // 600: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric - 560, // 601: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric - 562, // 602: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric - 564, // 603: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric - 566, // 604: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric - 568, // 605: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric - 109, // 606: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum - 110, // 607: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum - 111, // 608: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum - 112, // 609: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum - 113, // 610: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum - 547, // 611: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter - 114, // 612: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum - 548, // 613: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter - 115, // 614: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum - 553, // 615: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp - 554, // 616: otg.FlowMetric.latency:type_name -> otg.MetricLatency - 550, // 617: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric - 551, // 618: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag - 553, // 619: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp - 554, // 620: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency - 552, // 621: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue - 116, // 622: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum - 117, // 623: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum - 118, // 624: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum - 119, // 625: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum - 120, // 626: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum - 121, // 627: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum - 122, // 628: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum - 123, // 629: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum - 124, // 630: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum - 125, // 631: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum - 126, // 632: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum - 127, // 633: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum - 128, // 634: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum - 129, // 635: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum - 130, // 636: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum - 131, // 637: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum - 132, // 638: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum - 571, // 639: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest - 573, // 640: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest - 575, // 641: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest - 584, // 642: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest - 601, // 643: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest - 605, // 644: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest - 133, // 645: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum - 572, // 646: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State - 574, // 647: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State - 578, // 648: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState - 585, // 649: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState - 602, // 650: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState - 606, // 651: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState - 134, // 652: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum - 576, // 653: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter - 577, // 654: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter - 135, // 655: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - 136, // 656: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - 579, // 657: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState - 580, // 658: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState - 137, // 659: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum - 581, // 660: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity - 582, // 661: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 138, // 662: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum - 581, // 663: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity - 582, // 664: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 139, // 665: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum - 583, // 666: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment - 140, // 667: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum - 586, // 668: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState - 141, // 669: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum - 589, // 670: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags - 587, // 671: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs - 588, // 672: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname - 590, // 673: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv - 591, // 674: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv - 593, // 675: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv - 594, // 676: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv - 596, // 677: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv - 598, // 678: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv - 592, // 679: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 592, // 680: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 595, // 681: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 595, // 682: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 142, // 683: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum - 143, // 684: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum - 597, // 685: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix - 144, // 686: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - 600, // 687: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 599, // 688: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix - 145, // 689: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum - 146, // 690: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum - 600, // 691: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 147, // 692: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum - 148, // 693: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum - 603, // 694: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState - 604, // 695: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState - 149, // 696: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum - 607, // 697: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState - 608, // 698: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState - 609, // 699: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro - 610, // 700: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero - 150, // 701: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum - 151, // 702: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum - 152, // 703: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum - 153, // 704: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum - 612, // 705: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter - 612, // 706: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter - 613, // 707: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag - 154, // 708: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum - 615, // 709: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter - 615, // 710: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter - 616, // 711: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag - 155, // 712: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum - 618, // 713: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 618, // 714: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 619, // 715: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag - 156, // 716: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum - 621, // 717: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 621, // 718: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 622, // 719: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag - 157, // 720: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum - 624, // 721: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter - 624, // 722: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter - 625, // 723: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag - 158, // 724: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum - 627, // 725: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter - 627, // 726: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter - 628, // 727: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag - 159, // 728: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum - 630, // 729: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter - 630, // 730: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter - 631, // 731: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag - 160, // 732: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum - 633, // 733: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter - 633, // 734: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter - 634, // 735: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag - 161, // 736: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum - 636, // 737: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter - 636, // 738: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter - 637, // 739: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag - 162, // 740: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum - 639, // 741: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter - 639, // 742: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter - 640, // 743: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag - 163, // 744: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum - 642, // 745: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter - 642, // 746: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter - 643, // 747: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag - 164, // 748: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum - 645, // 749: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter - 645, // 750: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter - 646, // 751: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag - 165, // 752: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum - 648, // 753: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter - 648, // 754: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter - 649, // 755: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag - 166, // 756: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum - 651, // 757: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 651, // 758: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 652, // 759: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag - 167, // 760: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum - 654, // 761: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 654, // 762: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 655, // 763: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag - 168, // 764: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum - 657, // 765: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter - 657, // 766: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter - 658, // 767: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag - 169, // 768: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum - 660, // 769: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter - 660, // 770: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter - 661, // 771: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag - 170, // 772: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum - 663, // 773: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 663, // 774: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 664, // 775: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag - 171, // 776: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum - 666, // 777: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 666, // 778: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 667, // 779: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag - 172, // 780: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum - 669, // 781: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 669, // 782: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 670, // 783: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag - 173, // 784: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum - 672, // 785: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 672, // 786: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 673, // 787: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag - 174, // 788: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum - 675, // 789: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter - 675, // 790: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter - 676, // 791: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag - 175, // 792: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - 176, // 793: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - 177, // 794: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum - 679, // 795: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter - 679, // 796: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter - 680, // 797: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag - 178, // 798: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum - 682, // 799: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter - 682, // 800: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter - 683, // 801: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag - 179, // 802: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum - 685, // 803: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 685, // 804: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 686, // 805: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag - 180, // 806: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum - 688, // 807: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 688, // 808: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 689, // 809: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag - 181, // 810: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum - 691, // 811: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 691, // 812: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 692, // 813: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag - 182, // 814: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum - 694, // 815: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 694, // 816: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 695, // 817: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag - 183, // 818: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum - 697, // 819: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter - 697, // 820: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter - 698, // 821: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag - 184, // 822: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum - 700, // 823: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 700, // 824: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 701, // 825: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag - 185, // 826: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum - 703, // 827: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 703, // 828: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 704, // 829: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag - 186, // 830: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum - 706, // 831: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 706, // 832: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 707, // 833: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag - 187, // 834: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum - 709, // 835: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 709, // 836: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 710, // 837: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag - 188, // 838: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum - 712, // 839: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter - 712, // 840: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter - 713, // 841: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag - 189, // 842: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum - 715, // 843: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 715, // 844: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 716, // 845: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag - 190, // 846: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum - 718, // 847: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 718, // 848: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 719, // 849: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag - 191, // 850: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum - 721, // 851: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 721, // 852: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 722, // 853: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag - 192, // 854: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum - 724, // 855: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 724, // 856: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 725, // 857: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag - 193, // 858: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum - 727, // 859: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter - 727, // 860: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter - 728, // 861: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag - 194, // 862: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum - 730, // 863: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter - 730, // 864: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter - 731, // 865: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag - 195, // 866: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum - 733, // 867: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter - 733, // 868: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter - 734, // 869: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag - 196, // 870: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum - 736, // 871: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter - 736, // 872: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter - 737, // 873: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag - 197, // 874: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum - 739, // 875: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter - 739, // 876: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter - 740, // 877: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag - 198, // 878: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum - 742, // 879: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 742, // 880: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 743, // 881: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag - 199, // 882: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - 745, // 883: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 745, // 884: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 746, // 885: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag - 200, // 886: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - 748, // 887: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 748, // 888: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 749, // 889: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag - 201, // 890: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum - 751, // 891: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 751, // 892: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 752, // 893: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag - 202, // 894: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum - 754, // 895: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 754, // 896: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 755, // 897: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag - 203, // 898: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum - 757, // 899: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 757, // 900: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 758, // 901: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag - 204, // 902: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum - 760, // 903: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 760, // 904: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 761, // 905: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag - 205, // 906: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum - 763, // 907: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 763, // 908: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 764, // 909: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag - 206, // 910: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum - 766, // 911: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 766, // 912: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 767, // 913: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag - 207, // 914: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum - 769, // 915: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 769, // 916: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 770, // 917: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag - 208, // 918: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum - 772, // 919: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 772, // 920: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 773, // 921: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag - 209, // 922: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum - 775, // 923: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter - 775, // 924: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter - 776, // 925: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag - 210, // 926: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum - 778, // 927: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 778, // 928: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 779, // 929: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag - 211, // 930: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum - 781, // 931: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 781, // 932: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 782, // 933: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag - 212, // 934: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - 784, // 935: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 784, // 936: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 785, // 937: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag - 213, // 938: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum - 787, // 939: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 787, // 940: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 788, // 941: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag - 214, // 942: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum - 790, // 943: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter - 790, // 944: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter - 791, // 945: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag - 215, // 946: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum - 793, // 947: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter - 793, // 948: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter - 794, // 949: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag - 216, // 950: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum - 796, // 951: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter - 796, // 952: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter - 797, // 953: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag - 217, // 954: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum - 799, // 955: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter - 799, // 956: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter - 800, // 957: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag - 218, // 958: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum - 802, // 959: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter - 802, // 960: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter - 803, // 961: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag - 219, // 962: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum - 805, // 963: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter - 805, // 964: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter - 806, // 965: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag - 220, // 966: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum - 808, // 967: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter - 808, // 968: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter - 809, // 969: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag - 221, // 970: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum - 811, // 971: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter - 811, // 972: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter - 812, // 973: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag - 222, // 974: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum - 814, // 975: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter - 814, // 976: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter - 815, // 977: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag - 223, // 978: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum - 817, // 979: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter - 817, // 980: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter - 818, // 981: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag - 224, // 982: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum - 820, // 983: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter - 820, // 984: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter - 821, // 985: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag - 225, // 986: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum - 823, // 987: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter - 823, // 988: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter - 824, // 989: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag - 226, // 990: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum - 826, // 991: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter - 826, // 992: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter - 827, // 993: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag - 227, // 994: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum - 829, // 995: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter - 829, // 996: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter - 830, // 997: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag - 228, // 998: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum - 832, // 999: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter - 832, // 1000: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter - 833, // 1001: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag - 229, // 1002: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum - 835, // 1003: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter - 835, // 1004: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter - 836, // 1005: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag - 230, // 1006: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum - 838, // 1007: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter - 838, // 1008: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter - 839, // 1009: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag - 231, // 1010: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum - 841, // 1011: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter - 841, // 1012: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter - 842, // 1013: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag - 232, // 1014: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum - 233, // 1015: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum - 234, // 1016: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum - 845, // 1017: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter - 845, // 1018: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter - 846, // 1019: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag - 235, // 1020: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum - 848, // 1021: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter - 848, // 1022: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter - 849, // 1023: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag - 236, // 1024: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum - 851, // 1025: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter - 851, // 1026: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter - 852, // 1027: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag - 237, // 1028: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum - 854, // 1029: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter - 854, // 1030: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter - 855, // 1031: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag - 238, // 1032: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum - 239, // 1033: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum - 240, // 1034: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum - 858, // 1035: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter - 858, // 1036: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter - 859, // 1037: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag - 241, // 1038: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum - 861, // 1039: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter - 861, // 1040: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter - 862, // 1041: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag - 242, // 1042: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum - 864, // 1043: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 864, // 1044: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 865, // 1045: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag - 243, // 1046: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum - 867, // 1047: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter - 867, // 1048: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter - 868, // 1049: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag - 244, // 1050: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum - 870, // 1051: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter - 870, // 1052: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter - 871, // 1053: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag - 245, // 1054: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum - 873, // 1055: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter - 873, // 1056: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter - 874, // 1057: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag - 246, // 1058: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum - 876, // 1059: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 876, // 1060: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 877, // 1061: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag - 247, // 1062: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum - 879, // 1063: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 879, // 1064: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 880, // 1065: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag - 248, // 1066: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum - 882, // 1067: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 882, // 1068: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 883, // 1069: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag - 249, // 1070: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum - 885, // 1071: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter - 885, // 1072: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter - 886, // 1073: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag - 250, // 1074: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - 888, // 1075: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 888, // 1076: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 889, // 1077: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag - 251, // 1078: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum - 891, // 1079: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 891, // 1080: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 892, // 1081: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag - 252, // 1082: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - 894, // 1083: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 894, // 1084: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 895, // 1085: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - 253, // 1086: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - 897, // 1087: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 897, // 1088: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 898, // 1089: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag - 254, // 1090: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum - 900, // 1091: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 900, // 1092: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 901, // 1093: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag - 255, // 1094: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - 903, // 1095: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 903, // 1096: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 904, // 1097: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - 256, // 1098: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum - 906, // 1099: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter - 906, // 1100: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter - 907, // 1101: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag - 257, // 1102: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - 909, // 1103: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 909, // 1104: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 910, // 1105: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag - 258, // 1106: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum - 912, // 1107: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 912, // 1108: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 913, // 1109: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag - 259, // 1110: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum - 915, // 1111: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter - 915, // 1112: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter - 916, // 1113: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag - 260, // 1114: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum - 918, // 1115: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 918, // 1116: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 919, // 1117: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag - 261, // 1118: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum - 921, // 1119: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 921, // 1120: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 922, // 1121: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag - 262, // 1122: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum - 924, // 1123: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter - 924, // 1124: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter - 925, // 1125: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag - 263, // 1126: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - 927, // 1127: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 927, // 1128: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 928, // 1129: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag - 264, // 1130: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum - 930, // 1131: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter - 930, // 1132: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter - 931, // 1133: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag - 265, // 1134: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum - 933, // 1135: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter - 933, // 1136: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter - 934, // 1137: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag - 266, // 1138: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum - 936, // 1139: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter - 936, // 1140: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter - 937, // 1141: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag - 267, // 1142: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum - 939, // 1143: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter - 939, // 1144: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter - 940, // 1145: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag - 268, // 1146: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum - 942, // 1147: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter - 942, // 1148: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter - 943, // 1149: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag - 269, // 1150: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum - 945, // 1151: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter - 945, // 1152: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter - 946, // 1153: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag - 270, // 1154: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - 948, // 1155: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 948, // 1156: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 949, // 1157: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag - 271, // 1158: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - 951, // 1159: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 951, // 1160: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 952, // 1161: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag - 272, // 1162: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - 954, // 1163: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 954, // 1164: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 955, // 1165: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag - 273, // 1166: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - 957, // 1167: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 957, // 1168: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 958, // 1169: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag - 274, // 1170: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum - 960, // 1171: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 960, // 1172: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 961, // 1173: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag - 275, // 1174: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum - 963, // 1175: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 963, // 1176: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 964, // 1177: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag - 276, // 1178: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum - 277, // 1179: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum - 278, // 1180: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - 967, // 1181: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 967, // 1182: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 968, // 1183: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag - 279, // 1184: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - 970, // 1185: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 970, // 1186: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 971, // 1187: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag - 280, // 1188: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum - 281, // 1189: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum - 282, // 1190: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - 974, // 1191: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 974, // 1192: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 975, // 1193: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - 283, // 1194: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - 977, // 1195: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 977, // 1196: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 978, // 1197: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - 284, // 1198: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum - 980, // 1199: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 980, // 1200: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 981, // 1201: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag - 285, // 1202: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum - 983, // 1203: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 983, // 1204: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 984, // 1205: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag - 286, // 1206: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - 986, // 1207: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 986, // 1208: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 987, // 1209: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag - 287, // 1210: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - 989, // 1211: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 989, // 1212: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 990, // 1213: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - 288, // 1214: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - 289, // 1215: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - 290, // 1216: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - 291, // 1217: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - 292, // 1218: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum - 994, // 1219: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter - 994, // 1220: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter - 995, // 1221: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag - 293, // 1222: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum - 997, // 1223: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter - 997, // 1224: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter - 998, // 1225: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag - 294, // 1226: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum - 1000, // 1227: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1000, // 1228: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1001, // 1229: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag - 295, // 1230: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum - 1003, // 1231: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1003, // 1232: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1004, // 1233: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag - 296, // 1234: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum - 1006, // 1235: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1006, // 1236: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1007, // 1237: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag - 297, // 1238: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum - 1009, // 1239: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1009, // 1240: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1010, // 1241: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag - 298, // 1242: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum - 299, // 1243: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum - 300, // 1244: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - 1013, // 1245: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1013, // 1246: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1014, // 1247: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag - 301, // 1248: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum - 1016, // 1249: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter - 1016, // 1250: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter - 1017, // 1251: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag - 302, // 1252: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum - 1019, // 1253: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1019, // 1254: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1020, // 1255: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag - 303, // 1256: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum - 1022, // 1257: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1022, // 1258: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1023, // 1259: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag - 304, // 1260: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum - 1025, // 1261: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1025, // 1262: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1026, // 1263: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag - 508, // 1264: otg.Success.warning:type_name -> otg.Warning - 507, // 1265: otg.Failure.error:type_name -> otg.Error - 305, // 1266: otg.SetConfigRequest.config:type_name -> otg.Config - 509, // 1267: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate - 508, // 1268: otg.SetConfigResponse.warning:type_name -> otg.Warning - 305, // 1269: otg.GetConfigResponse.config:type_name -> otg.Config - 508, // 1270: otg.UpdateConfigResponse.warning:type_name -> otg.Warning - 511, // 1271: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState - 508, // 1272: otg.SetControlStateResponse.warning:type_name -> otg.Warning - 522, // 1273: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction - 523, // 1274: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse - 542, // 1275: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest - 543, // 1276: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse - 569, // 1277: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest - 570, // 1278: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse - 611, // 1279: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest - 1028, // 1280: otg.GetVersionResponse.version:type_name -> otg.Version - 1031, // 1281: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest - 1352, // 1282: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty - 1032, // 1283: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest - 1036, // 1284: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest - 1038, // 1285: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest - 1040, // 1286: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest - 1042, // 1287: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest - 1044, // 1288: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest - 1352, // 1289: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty - 1033, // 1290: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse - 1034, // 1291: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse - 1035, // 1292: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse - 1037, // 1293: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse - 1039, // 1294: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse - 1041, // 1295: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse - 1043, // 1296: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse - 1045, // 1297: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse - 1046, // 1298: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse - 1290, // [1290:1299] is the sub-list for method output_type - 1281, // [1281:1290] is the sub-list for method input_type - 1281, // [1281:1281] is the sub-list for extension type_name - 1281, // [1281:1281] is the sub-list for extension extendee - 0, // [0:1281] is the sub-list for field type_name + 378, // 167: otg.BgpV4RouteRange.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 168: otg.BgpV4RouteRange.communities:type_name -> otg.BgpCommunity + 381, // 169: otg.BgpV4RouteRange.as_path:type_name -> otg.BgpAsPath + 393, // 170: otg.BgpV4RouteRange.add_path:type_name -> otg.BgpAddPath + 380, // 171: otg.BgpV4RouteRange.ext_communities:type_name -> otg.BgpExtCommunity + 394, // 172: otg.BgpV4RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity + 38, // 173: otg.BgpExtendedCommunity.choice:type_name -> otg.BgpExtendedCommunity.Choice.Enum + 397, // 174: otg.BgpExtendedCommunity.transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType + 400, // 175: otg.BgpExtendedCommunity.transitive_ipv4_address_type:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType + 403, // 176: otg.BgpExtendedCommunity.transitive_4octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType + 406, // 177: otg.BgpExtendedCommunity.transitive_opaque_type:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType + 408, // 178: otg.BgpExtendedCommunity.transitive_evpn_type:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType + 410, // 179: otg.BgpExtendedCommunity.non_transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType + 411, // 180: otg.BgpExtendedCommunity.custom:type_name -> otg.BgpExtendedCommunityCustomType + 39, // 181: otg.BgpExtendedCommunityTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum + 395, // 182: otg.BgpExtendedCommunityTransitive2OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + 396, // 183: otg.BgpExtendedCommunityTransitive2OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + 40, // 184: otg.BgpExtendedCommunityTransitiveIpv4AddressType.choice:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + 399, // 185: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + 398, // 186: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + 41, // 187: otg.BgpExtendedCommunityTransitive4OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum + 401, // 188: otg.BgpExtendedCommunityTransitive4OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + 402, // 189: otg.BgpExtendedCommunityTransitive4OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + 42, // 190: otg.BgpExtendedCommunityTransitiveOpaqueType.choice:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum + 404, // 191: otg.BgpExtendedCommunityTransitiveOpaqueType.color_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + 405, // 192: otg.BgpExtendedCommunityTransitiveOpaqueType.encapsulation_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + 43, // 193: otg.BgpExtendedCommunityTransitiveEvpnType.choice:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum + 407, // 194: otg.BgpExtendedCommunityTransitiveEvpnType.router_mac_subtype:type_name -> otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + 44, // 195: otg.BgpExtendedCommunityNonTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + 409, // 196: otg.BgpExtendedCommunityNonTransitive2OctetAsType.link_bandwidth_subtype:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + 363, // 197: otg.BgpV6RouteRange.addresses:type_name -> otg.V6RouteAddress + 45, // 198: otg.BgpV6RouteRange.next_hop_mode:type_name -> otg.BgpV6RouteRange.NextHopMode.Enum + 46, // 199: otg.BgpV6RouteRange.next_hop_address_type:type_name -> otg.BgpV6RouteRange.NextHopAddressType.Enum + 378, // 200: otg.BgpV6RouteRange.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 201: otg.BgpV6RouteRange.communities:type_name -> otg.BgpCommunity + 381, // 202: otg.BgpV6RouteRange.as_path:type_name -> otg.BgpAsPath + 393, // 203: otg.BgpV6RouteRange.add_path:type_name -> otg.BgpAddPath + 380, // 204: otg.BgpV6RouteRange.ext_communities:type_name -> otg.BgpExtCommunity + 394, // 205: otg.BgpV6RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity + 47, // 206: otg.BgpSrteV4Policy.next_hop_mode:type_name -> otg.BgpSrteV4Policy.NextHopMode.Enum + 48, // 207: otg.BgpSrteV4Policy.next_hop_address_type:type_name -> otg.BgpSrteV4Policy.NextHopAddressType.Enum + 378, // 208: otg.BgpSrteV4Policy.advanced:type_name -> otg.BgpRouteAdvanced + 393, // 209: otg.BgpSrteV4Policy.add_path:type_name -> otg.BgpAddPath + 381, // 210: otg.BgpSrteV4Policy.as_path:type_name -> otg.BgpAsPath + 379, // 211: otg.BgpSrteV4Policy.communities:type_name -> otg.BgpCommunity + 380, // 212: otg.BgpSrteV4Policy.ext_communities:type_name -> otg.BgpExtCommunity + 414, // 213: otg.BgpSrteV4Policy.tunnel_tlvs:type_name -> otg.BgpSrteV4TunnelTlv + 415, // 214: otg.BgpSrteV4TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv + 416, // 215: otg.BgpSrteV4TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv + 417, // 216: otg.BgpSrteV4TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv + 418, // 217: otg.BgpSrteV4TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv + 419, // 218: otg.BgpSrteV4TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv + 420, // 219: otg.BgpSrteV4TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv + 421, // 220: otg.BgpSrteV4TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv + 422, // 221: otg.BgpSrteV4TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList + 49, // 222: otg.BgpSrteRemoteEndpointSubTlv.address_family:type_name -> otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum + 50, // 223: otg.BgpSrteBindingSubTlv.binding_sid_type:type_name -> otg.BgpSrteBindingSubTlv.BindingSidType.Enum + 51, // 224: otg.BgpSrteExplicitNullLabelPolicySubTlv.explicit_null_label_policy:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum + 423, // 225: otg.BgpSrteSegmentList.segments:type_name -> otg.BgpSrteSegment + 52, // 226: otg.BgpSrteSegment.segment_type:type_name -> otg.BgpSrteSegment.SegmentType.Enum + 426, // 227: otg.BgpSrteSegment.type_a:type_name -> otg.BgpSrteSegmentATypeSubTlv + 427, // 228: otg.BgpSrteSegment.type_b:type_name -> otg.BgpSrteSegmentBTypeSubTlv + 428, // 229: otg.BgpSrteSegment.type_c:type_name -> otg.BgpSrteSegmentCTypeSubTlv + 429, // 230: otg.BgpSrteSegment.type_d:type_name -> otg.BgpSrteSegmentDTypeSubTlv + 430, // 231: otg.BgpSrteSegment.type_e:type_name -> otg.BgpSrteSegmentETypeSubTlv + 431, // 232: otg.BgpSrteSegment.type_f:type_name -> otg.BgpSrteSegmentFTypeSubTlv + 432, // 233: otg.BgpSrteSegment.type_g:type_name -> otg.BgpSrteSegmentGTypeSubTlv + 433, // 234: otg.BgpSrteSegment.type_h:type_name -> otg.BgpSrteSegmentHTypeSubTlv + 434, // 235: otg.BgpSrteSegment.type_i:type_name -> otg.BgpSrteSegmentITypeSubTlv + 435, // 236: otg.BgpSrteSegment.type_j:type_name -> otg.BgpSrteSegmentJTypeSubTlv + 436, // 237: otg.BgpSrteSegment.type_k:type_name -> otg.BgpSrteSegmentKTypeSubTlv + 425, // 238: otg.BgpSrteSegmentBTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 424, // 239: otg.BgpSrteSegmentCTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 240: otg.BgpSrteSegmentDTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 241: otg.BgpSrteSegmentETypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 242: otg.BgpSrteSegmentFTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 243: otg.BgpSrteSegmentGTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 424, // 244: otg.BgpSrteSegmentHTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 425, // 245: otg.BgpSrteSegmentITypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 425, // 246: otg.BgpSrteSegmentJTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 425, // 247: otg.BgpSrteSegmentKTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 53, // 248: otg.BgpSrteV6Policy.next_hop_mode:type_name -> otg.BgpSrteV6Policy.NextHopMode.Enum + 54, // 249: otg.BgpSrteV6Policy.next_hop_address_type:type_name -> otg.BgpSrteV6Policy.NextHopAddressType.Enum + 378, // 250: otg.BgpSrteV6Policy.advanced:type_name -> otg.BgpRouteAdvanced + 393, // 251: otg.BgpSrteV6Policy.add_path:type_name -> otg.BgpAddPath + 381, // 252: otg.BgpSrteV6Policy.as_path:type_name -> otg.BgpAsPath + 379, // 253: otg.BgpSrteV6Policy.communities:type_name -> otg.BgpCommunity + 380, // 254: otg.BgpSrteV6Policy.extcommunities:type_name -> otg.BgpExtCommunity + 438, // 255: otg.BgpSrteV6Policy.tunnel_tlvs:type_name -> otg.BgpSrteV6TunnelTlv + 415, // 256: otg.BgpSrteV6TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv + 416, // 257: otg.BgpSrteV6TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv + 417, // 258: otg.BgpSrteV6TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv + 418, // 259: otg.BgpSrteV6TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv + 419, // 260: otg.BgpSrteV6TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv + 420, // 261: otg.BgpSrteV6TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv + 421, // 262: otg.BgpSrteV6TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv + 422, // 263: otg.BgpSrteV6TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList + 442, // 264: otg.BgpV6Peer.segment_routing:type_name -> otg.BgpV6SegmentRouting + 443, // 265: otg.BgpV6Peer.evpn_ethernet_segments:type_name -> otg.BgpV6EthernetSegment + 55, // 266: otg.BgpV6Peer.as_type:type_name -> otg.BgpV6Peer.AsType.Enum + 56, // 267: otg.BgpV6Peer.as_number_width:type_name -> otg.BgpV6Peer.AsNumberWidth.Enum + 389, // 268: otg.BgpV6Peer.advanced:type_name -> otg.BgpAdvanced + 390, // 269: otg.BgpV6Peer.capability:type_name -> otg.BgpCapability + 391, // 270: otg.BgpV6Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter + 392, // 271: otg.BgpV6Peer.v4_routes:type_name -> otg.BgpV4RouteRange + 412, // 272: otg.BgpV6Peer.v6_routes:type_name -> otg.BgpV6RouteRange + 413, // 273: otg.BgpV6Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy + 437, // 274: otg.BgpV6Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy + 439, // 275: otg.BgpV6Peer.graceful_restart:type_name -> otg.BgpGracefulRestart + 440, // 276: otg.BgpV6Interface.peers:type_name -> otg.BgpV6Peer + 377, // 277: otg.BgpV6EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection + 444, // 278: otg.BgpV6EthernetSegment.evis:type_name -> otg.BgpV6EvpnEvis + 57, // 279: otg.BgpV6EthernetSegment.active_mode:type_name -> otg.BgpV6EthernetSegment.ActiveMode.Enum + 378, // 280: otg.BgpV6EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 281: otg.BgpV6EthernetSegment.communities:type_name -> otg.BgpCommunity + 380, // 282: otg.BgpV6EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 283: otg.BgpV6EthernetSegment.as_path:type_name -> otg.BgpAsPath + 58, // 284: otg.BgpV6EvpnEvis.choice:type_name -> otg.BgpV6EvpnEvis.Choice.Enum + 445, // 285: otg.BgpV6EvpnEvis.evi_vxlan:type_name -> otg.BgpV6EviVxlan + 446, // 286: otg.BgpV6EviVxlan.broadcast_domains:type_name -> otg.BgpV6EviVxlanBroadcastDomain + 59, // 287: otg.BgpV6EviVxlan.replication_type:type_name -> otg.BgpV6EviVxlan.ReplicationType.Enum + 387, // 288: otg.BgpV6EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher + 388, // 289: otg.BgpV6EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget + 388, // 290: otg.BgpV6EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget + 388, // 291: otg.BgpV6EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget + 388, // 292: otg.BgpV6EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget + 378, // 293: otg.BgpV6EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced + 379, // 294: otg.BgpV6EviVxlan.communities:type_name -> otg.BgpCommunity + 380, // 295: otg.BgpV6EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity + 381, // 296: otg.BgpV6EviVxlan.as_path:type_name -> otg.BgpAsPath + 386, // 297: otg.BgpV6EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange + 448, // 298: otg.DeviceVxlan.v4_tunnels:type_name -> otg.VxlanV4Tunnel + 449, // 299: otg.DeviceVxlan.v6_tunnels:type_name -> otg.VxlanV6Tunnel + 450, // 300: otg.VxlanV4Tunnel.destination_ip_mode:type_name -> otg.VxlanV4TunnelDestinationIPMode + 451, // 301: otg.VxlanV6Tunnel.destination_ip_mode:type_name -> otg.VxlanV6TunnelDestinationIPMode + 60, // 302: otg.VxlanV4TunnelDestinationIPMode.choice:type_name -> otg.VxlanV4TunnelDestinationIPMode.Choice.Enum + 452, // 303: otg.VxlanV4TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicast + 457, // 304: otg.VxlanV4TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV4TunnelDestinationIPModeMulticast + 61, // 305: otg.VxlanV6TunnelDestinationIPMode.choice:type_name -> otg.VxlanV6TunnelDestinationIPMode.Choice.Enum + 453, // 306: otg.VxlanV6TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicast + 458, // 307: otg.VxlanV6TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV6TunnelDestinationIPModeMulticast + 455, // 308: otg.VxlanV4TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicastVtep + 456, // 309: otg.VxlanV6TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicastVtep + 454, // 310: otg.VxlanV4TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + 454, // 311: otg.VxlanV6TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + 460, // 312: otg.DeviceRsvp.ipv4_interfaces:type_name -> otg.RsvpIpv4Interface + 461, // 313: otg.DeviceRsvp.lsp_ipv4_interfaces:type_name -> otg.RsvpLspIpv4Interface + 462, // 314: otg.RsvpLspIpv4Interface.p2p_egress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp + 463, // 315: otg.RsvpLspIpv4Interface.p2p_ingress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp + 62, // 316: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.reservation_style:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum + 464, // 317: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.session_attribute:type_name -> otg.RsvpSessionAttribute + 466, // 318: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.tspec:type_name -> otg.RsvpTspec + 467, // 319: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.fast_reroute:type_name -> otg.RsvpFastReroute + 468, // 320: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ero:type_name -> otg.RsvpEro + 465, // 321: otg.RsvpSessionAttribute.resource_affinities:type_name -> otg.RsvpResourceAffinities + 63, // 322: otg.RsvpEro.prepend_neighbor_ip:type_name -> otg.RsvpEro.PrependNeighborIp.Enum + 469, // 323: otg.RsvpEro.subobjects:type_name -> otg.RsvpEroSubobject + 64, // 324: otg.RsvpEroSubobject.type:type_name -> otg.RsvpEroSubobject.Type.Enum + 65, // 325: otg.RsvpEroSubobject.hop_type:type_name -> otg.RsvpEroSubobject.HopType.Enum + 471, // 326: otg.Flow.tx_rx:type_name -> otg.FlowTxRx + 474, // 327: otg.Flow.packet:type_name -> otg.FlowHeader + 474, // 328: otg.Flow.egress_packet:type_name -> otg.FlowHeader + 501, // 329: otg.Flow.size:type_name -> otg.FlowSize + 506, // 330: otg.Flow.rate:type_name -> otg.FlowRate + 507, // 331: otg.Flow.duration:type_name -> otg.FlowDuration + 514, // 332: otg.Flow.metrics:type_name -> otg.FlowMetrics + 66, // 333: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum + 472, // 334: otg.FlowTxRx.port:type_name -> otg.FlowPort + 473, // 335: otg.FlowTxRx.device:type_name -> otg.FlowRouter + 67, // 336: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum + 68, // 337: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum + 475, // 338: otg.FlowHeader.custom:type_name -> otg.FlowCustom + 477, // 339: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet + 478, // 340: otg.FlowHeader.vlan:type_name -> otg.FlowVlan + 479, // 341: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan + 480, // 342: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 + 484, // 343: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 + 485, // 344: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause + 486, // 345: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause + 487, // 346: otg.FlowHeader.tcp:type_name -> otg.FlowTcp + 488, // 347: otg.FlowHeader.udp:type_name -> otg.FlowUdp + 489, // 348: otg.FlowHeader.gre:type_name -> otg.FlowGre + 490, // 349: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 + 492, // 350: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 + 493, // 351: otg.FlowHeader.arp:type_name -> otg.FlowArp + 494, // 352: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp + 496, // 353: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 + 498, // 354: otg.FlowHeader.ppp:type_name -> otg.FlowPpp + 499, // 355: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 + 500, // 356: otg.FlowHeader.mpls:type_name -> otg.FlowMpls + 476, // 357: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag + 639, // 358: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst + 642, // 359: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc + 645, // 360: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType + 648, // 361: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue + 651, // 362: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority + 654, // 363: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi + 657, // 364: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId + 660, // 365: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid + 663, // 366: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags + 666, // 367: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 + 669, // 368: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni + 672, // 369: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 + 675, // 370: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version + 678, // 371: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength + 481, // 372: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority + 681, // 373: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength + 684, // 374: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification + 687, // 375: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved + 690, // 376: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment + 693, // 377: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments + 696, // 378: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset + 699, // 379: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive + 702, // 380: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol + 703, // 381: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum + 706, // 382: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src + 709, // 383: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst + 69, // 384: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum + 712, // 385: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw + 483, // 386: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos + 482, // 387: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp + 715, // 388: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb + 718, // 389: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn + 721, // 390: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence + 724, // 391: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay + 727, // 392: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput + 730, // 393: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability + 733, // 394: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary + 736, // 395: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused + 739, // 396: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version + 742, // 397: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass + 745, // 398: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel + 748, // 399: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength + 751, // 400: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader + 754, // 401: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit + 757, // 402: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src + 760, // 403: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst + 763, // 404: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst + 766, // 405: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc + 769, // 406: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType + 772, // 407: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode + 775, // 408: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector + 778, // 409: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 + 781, // 410: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 + 784, // 411: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 + 787, // 412: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 + 790, // 413: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 + 793, // 414: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 + 796, // 415: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 + 799, // 416: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 + 802, // 417: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst + 805, // 418: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc + 808, // 419: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType + 811, // 420: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode + 814, // 421: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime + 817, // 422: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort + 820, // 423: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort + 823, // 424: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum + 826, // 425: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum + 829, // 426: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset + 832, // 427: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs + 835, // 428: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr + 838, // 429: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho + 841, // 430: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg + 844, // 431: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck + 847, // 432: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh + 850, // 433: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst + 853, // 434: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn + 856, // 435: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin + 859, // 436: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow + 862, // 437: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort + 865, // 438: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort + 868, // 439: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength + 869, // 440: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum + 872, // 441: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent + 875, // 442: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 + 878, // 443: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion + 881, // 444: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol + 882, // 445: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum + 885, // 446: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 + 888, // 447: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version + 891, // 448: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType + 894, // 449: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved + 897, // 450: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag + 900, // 451: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag + 903, // 452: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag + 906, // 453: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType + 909, // 454: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength + 912, // 455: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid + 915, // 456: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber + 918, // 457: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber + 921, // 458: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType + 491, // 459: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension + 924, // 460: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength + 927, // 461: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents + 930, // 462: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader + 933, // 463: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version + 936, // 464: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag + 939, // 465: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag + 942, // 466: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 + 945, // 467: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType + 948, // 468: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength + 951, // 469: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid + 954, // 470: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber + 957, // 471: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 + 960, // 472: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType + 963, // 473: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType + 966, // 474: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength + 969, // 475: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength + 972, // 476: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation + 975, // 477: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr + 978, // 478: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr + 981, // 479: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr + 984, // 480: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr + 70, // 481: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum + 495, // 482: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho + 987, // 483: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType + 990, // 484: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode + 991, // 485: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum + 994, // 486: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier + 997, // 487: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber + 71, // 488: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum + 497, // 489: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo + 1007, // 490: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType + 1010, // 491: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode + 1013, // 492: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier + 1016, // 493: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber + 1017, // 494: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum + 1021, // 495: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress + 1024, // 496: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl + 1027, // 497: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType + 1030, // 498: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version + 1033, // 499: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type + 1036, // 500: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused + 1037, // 501: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum + 1040, // 502: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress + 1043, // 503: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel + 1046, // 504: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass + 1049, // 505: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack + 1052, // 506: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive + 72, // 507: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum + 502, // 508: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement + 503, // 509: otg.FlowSize.random:type_name -> otg.FlowSizeRandom + 504, // 510: otg.FlowSize.weight_pairs:type_name -> otg.FlowSizeWeightPairs + 73, // 511: otg.FlowSizeWeightPairs.choice:type_name -> otg.FlowSizeWeightPairs.Choice.Enum + 74, // 512: otg.FlowSizeWeightPairs.predefined:type_name -> otg.FlowSizeWeightPairs.Predefined.Enum + 505, // 513: otg.FlowSizeWeightPairs.custom:type_name -> otg.FlowSizeWeightPairsCustom + 75, // 514: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum + 76, // 515: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum + 510, // 516: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets + 511, // 517: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds + 512, // 518: otg.FlowDuration.burst:type_name -> otg.FlowBurst + 508, // 519: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous + 509, // 520: otg.FlowContinuous.delay:type_name -> otg.FlowDelay + 77, // 521: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum + 509, // 522: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay + 509, // 523: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay + 513, // 524: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap + 78, // 525: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum + 517, // 526: otg.FlowMetrics.rx_tx_ratio:type_name -> otg.FlowRxTxRatio + 515, // 527: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics + 516, // 528: otg.FlowMetrics.predefined_metric_tags:type_name -> otg.FlowPredefinedTags + 79, // 529: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum + 80, // 530: otg.FlowRxTxRatio.choice:type_name -> otg.FlowRxTxRatio.Choice.Enum + 518, // 531: otg.FlowRxTxRatio.rx_count:type_name -> otg.FlowRxTxRatioRxCount + 521, // 532: otg.Event.link:type_name -> otg.EventLink + 520, // 533: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold + 522, // 534: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw + 81, // 535: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum + 523, // 536: otg.EventSubscription.events:type_name -> otg.EventRequest + 526, // 537: otg.Lldp.connection:type_name -> otg.LldpConnection + 527, // 538: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId + 528, // 539: otg.Lldp.port_id:type_name -> otg.LldpPortId + 531, // 540: otg.Lldp.system_name:type_name -> otg.LldpSystemName + 82, // 541: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum + 83, // 542: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum + 529, // 543: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType + 84, // 544: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum + 530, // 545: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType + 85, // 546: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum + 86, // 547: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum + 87, // 548: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum + 88, // 549: otg.Error.kind:type_name -> otg.Error.Kind.Enum + 89, // 550: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum + 535, // 551: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate + 90, // 552: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum + 470, // 553: otg.FlowsUpdate.flows:type_name -> otg.Flow + 91, // 554: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum + 537, // 555: otg.ControlState.port:type_name -> otg.StatePort + 539, // 556: otg.ControlState.protocol:type_name -> otg.StateProtocol + 538, // 557: otg.ControlState.traffic:type_name -> otg.StateTraffic + 92, // 558: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum + 540, // 559: otg.StatePort.link:type_name -> otg.StatePortLink + 541, // 560: otg.StatePort.capture:type_name -> otg.StatePortCapture + 93, // 561: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum + 542, // 562: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit + 94, // 563: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum + 543, // 564: otg.StateProtocol.all:type_name -> otg.StateProtocolAll + 544, // 565: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute + 545, // 566: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp + 95, // 567: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum + 96, // 568: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum + 97, // 569: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum + 98, // 570: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum + 99, // 571: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum + 100, // 572: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum + 546, // 573: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin + 101, // 574: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum + 102, // 575: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum + 550, // 576: otg.ControlAction.protocol:type_name -> otg.ActionProtocol + 549, // 577: otg.ControlActionResponse.response:type_name -> otg.ActionResponse + 103, // 578: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum + 551, // 579: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol + 104, // 580: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum + 552, // 581: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 + 558, // 582: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 + 564, // 583: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp + 105, // 584: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum + 553, // 585: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 + 559, // 586: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 + 106, // 587: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum + 554, // 588: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping + 107, // 589: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum + 556, // 590: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping + 555, // 591: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest + 557, // 592: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse + 108, // 593: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + 109, // 594: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum + 560, // 595: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping + 110, // 596: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum + 562, // 597: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping + 561, // 598: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest + 563, // 599: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse + 111, // 600: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + 112, // 601: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum + 565, // 602: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification + 566, // 603: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart + 113, // 604: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum + 372, // 605: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError + 367, // 606: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError + 368, // 607: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError + 369, // 608: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError + 370, // 609: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired + 371, // 610: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError + 373, // 611: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError + 114, // 612: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum + 569, // 613: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest + 571, // 614: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest + 580, // 615: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest + 582, // 616: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest + 584, // 617: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest + 586, // 618: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest + 588, // 619: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest + 590, // 620: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest + 592, // 621: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest + 115, // 622: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum + 570, // 623: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric + 574, // 624: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric + 581, // 625: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric + 583, // 626: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric + 585, // 627: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric + 587, // 628: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric + 589, // 629: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric + 591, // 630: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric + 593, // 631: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric + 116, // 632: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum + 117, // 633: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum + 118, // 634: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum + 119, // 635: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum + 120, // 636: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum + 572, // 637: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter + 121, // 638: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum + 573, // 639: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter + 122, // 640: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum + 578, // 641: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp + 579, // 642: otg.FlowMetric.latency:type_name -> otg.MetricLatency + 575, // 643: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric + 576, // 644: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag + 578, // 645: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp + 579, // 646: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency + 577, // 647: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue + 123, // 648: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum + 124, // 649: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum + 125, // 650: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum + 126, // 651: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum + 127, // 652: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum + 128, // 653: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum + 129, // 654: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum + 130, // 655: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum + 131, // 656: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum + 132, // 657: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum + 133, // 658: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum + 134, // 659: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum + 135, // 660: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum + 136, // 661: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum + 137, // 662: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum + 138, // 663: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum + 139, // 664: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum + 596, // 665: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest + 598, // 666: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest + 600, // 667: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest + 609, // 668: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest + 626, // 669: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest + 630, // 670: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest + 140, // 671: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum + 597, // 672: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State + 599, // 673: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State + 603, // 674: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState + 610, // 675: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState + 627, // 676: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState + 631, // 677: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState + 141, // 678: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum + 601, // 679: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter + 602, // 680: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter + 142, // 681: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + 143, // 682: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + 604, // 683: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState + 605, // 684: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState + 144, // 685: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum + 606, // 686: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity + 607, // 687: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 145, // 688: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum + 606, // 689: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity + 607, // 690: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 146, // 691: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum + 608, // 692: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment + 147, // 693: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum + 611, // 694: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState + 148, // 695: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum + 614, // 696: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags + 612, // 697: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs + 613, // 698: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname + 615, // 699: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv + 616, // 700: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv + 618, // 701: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv + 619, // 702: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv + 621, // 703: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv + 623, // 704: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv + 617, // 705: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 617, // 706: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 620, // 707: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 620, // 708: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 149, // 709: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum + 150, // 710: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum + 622, // 711: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix + 151, // 712: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + 625, // 713: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 624, // 714: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix + 152, // 715: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum + 153, // 716: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum + 625, // 717: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 154, // 718: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum + 155, // 719: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum + 628, // 720: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState + 629, // 721: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState + 156, // 722: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum + 632, // 723: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState + 633, // 724: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState + 634, // 725: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro + 635, // 726: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero + 157, // 727: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum + 158, // 728: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum + 159, // 729: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum + 160, // 730: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum + 637, // 731: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter + 637, // 732: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter + 638, // 733: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag + 161, // 734: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum + 640, // 735: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter + 640, // 736: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter + 641, // 737: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag + 162, // 738: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum + 643, // 739: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 643, // 740: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 644, // 741: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag + 163, // 742: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum + 646, // 743: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 646, // 744: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 647, // 745: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag + 164, // 746: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum + 649, // 747: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter + 649, // 748: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter + 650, // 749: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag + 165, // 750: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum + 652, // 751: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter + 652, // 752: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter + 653, // 753: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag + 166, // 754: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum + 655, // 755: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter + 655, // 756: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter + 656, // 757: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag + 167, // 758: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum + 658, // 759: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter + 658, // 760: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter + 659, // 761: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag + 168, // 762: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum + 661, // 763: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter + 661, // 764: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter + 662, // 765: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag + 169, // 766: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum + 664, // 767: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter + 664, // 768: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter + 665, // 769: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag + 170, // 770: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum + 667, // 771: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter + 667, // 772: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter + 668, // 773: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag + 171, // 774: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum + 670, // 775: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter + 670, // 776: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter + 671, // 777: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag + 172, // 778: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum + 673, // 779: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter + 673, // 780: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter + 674, // 781: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag + 173, // 782: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum + 676, // 783: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 676, // 784: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 677, // 785: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag + 174, // 786: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum + 679, // 787: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 679, // 788: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 680, // 789: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag + 175, // 790: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum + 682, // 791: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter + 682, // 792: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter + 683, // 793: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag + 176, // 794: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum + 685, // 795: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter + 685, // 796: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter + 686, // 797: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag + 177, // 798: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum + 688, // 799: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 688, // 800: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 689, // 801: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag + 178, // 802: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum + 691, // 803: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 691, // 804: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 692, // 805: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag + 179, // 806: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum + 694, // 807: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 694, // 808: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 695, // 809: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag + 180, // 810: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum + 697, // 811: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 697, // 812: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 698, // 813: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag + 181, // 814: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum + 700, // 815: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter + 700, // 816: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter + 701, // 817: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag + 182, // 818: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + 183, // 819: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + 184, // 820: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum + 704, // 821: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter + 704, // 822: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter + 705, // 823: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag + 185, // 824: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum + 707, // 825: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter + 707, // 826: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter + 708, // 827: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag + 186, // 828: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum + 710, // 829: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 710, // 830: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 711, // 831: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag + 187, // 832: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum + 713, // 833: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 713, // 834: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 714, // 835: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag + 188, // 836: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum + 716, // 837: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 716, // 838: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 717, // 839: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag + 189, // 840: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum + 719, // 841: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 719, // 842: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 720, // 843: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag + 190, // 844: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum + 722, // 845: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter + 722, // 846: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter + 723, // 847: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag + 191, // 848: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum + 725, // 849: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 725, // 850: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 726, // 851: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag + 192, // 852: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum + 728, // 853: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 728, // 854: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 729, // 855: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag + 193, // 856: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum + 731, // 857: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 731, // 858: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 732, // 859: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag + 194, // 860: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum + 734, // 861: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 734, // 862: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 735, // 863: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag + 195, // 864: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum + 737, // 865: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter + 737, // 866: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter + 738, // 867: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag + 196, // 868: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum + 740, // 869: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 740, // 870: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 741, // 871: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag + 197, // 872: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum + 743, // 873: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 743, // 874: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 744, // 875: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag + 198, // 876: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum + 746, // 877: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 746, // 878: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 747, // 879: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag + 199, // 880: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum + 749, // 881: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 749, // 882: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 750, // 883: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag + 200, // 884: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum + 752, // 885: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter + 752, // 886: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter + 753, // 887: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag + 201, // 888: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum + 755, // 889: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter + 755, // 890: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter + 756, // 891: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag + 202, // 892: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum + 758, // 893: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter + 758, // 894: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter + 759, // 895: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag + 203, // 896: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum + 761, // 897: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter + 761, // 898: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter + 762, // 899: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag + 204, // 900: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum + 764, // 901: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter + 764, // 902: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter + 765, // 903: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag + 205, // 904: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum + 767, // 905: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 767, // 906: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 768, // 907: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag + 206, // 908: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + 770, // 909: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 770, // 910: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 771, // 911: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag + 207, // 912: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + 773, // 913: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 773, // 914: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 774, // 915: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag + 208, // 916: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum + 776, // 917: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 776, // 918: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 777, // 919: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag + 209, // 920: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum + 779, // 921: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 779, // 922: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 780, // 923: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag + 210, // 924: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum + 782, // 925: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 782, // 926: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 783, // 927: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag + 211, // 928: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum + 785, // 929: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 785, // 930: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 786, // 931: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag + 212, // 932: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum + 788, // 933: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 788, // 934: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 789, // 935: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag + 213, // 936: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum + 791, // 937: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 791, // 938: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 792, // 939: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag + 214, // 940: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum + 794, // 941: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 794, // 942: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 795, // 943: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag + 215, // 944: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum + 797, // 945: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 797, // 946: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 798, // 947: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag + 216, // 948: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum + 800, // 949: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter + 800, // 950: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter + 801, // 951: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag + 217, // 952: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum + 803, // 953: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 803, // 954: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 804, // 955: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag + 218, // 956: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum + 806, // 957: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 806, // 958: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 807, // 959: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag + 219, // 960: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + 809, // 961: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 809, // 962: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 810, // 963: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag + 220, // 964: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum + 812, // 965: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 812, // 966: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 813, // 967: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag + 221, // 968: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum + 815, // 969: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter + 815, // 970: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter + 816, // 971: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag + 222, // 972: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum + 818, // 973: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter + 818, // 974: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter + 819, // 975: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag + 223, // 976: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum + 821, // 977: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter + 821, // 978: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter + 822, // 979: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag + 224, // 980: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum + 824, // 981: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter + 824, // 982: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter + 825, // 983: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag + 225, // 984: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum + 827, // 985: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter + 827, // 986: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter + 828, // 987: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag + 226, // 988: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum + 830, // 989: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter + 830, // 990: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter + 831, // 991: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag + 227, // 992: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum + 833, // 993: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter + 833, // 994: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter + 834, // 995: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag + 228, // 996: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum + 836, // 997: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter + 836, // 998: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter + 837, // 999: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag + 229, // 1000: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum + 839, // 1001: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter + 839, // 1002: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter + 840, // 1003: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag + 230, // 1004: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum + 842, // 1005: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter + 842, // 1006: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter + 843, // 1007: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag + 231, // 1008: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum + 845, // 1009: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter + 845, // 1010: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter + 846, // 1011: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag + 232, // 1012: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum + 848, // 1013: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter + 848, // 1014: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter + 849, // 1015: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag + 233, // 1016: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum + 851, // 1017: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter + 851, // 1018: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter + 852, // 1019: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag + 234, // 1020: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum + 854, // 1021: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter + 854, // 1022: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter + 855, // 1023: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag + 235, // 1024: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum + 857, // 1025: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter + 857, // 1026: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter + 858, // 1027: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag + 236, // 1028: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum + 860, // 1029: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter + 860, // 1030: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter + 861, // 1031: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag + 237, // 1032: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum + 863, // 1033: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter + 863, // 1034: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter + 864, // 1035: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag + 238, // 1036: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum + 866, // 1037: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter + 866, // 1038: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter + 867, // 1039: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag + 239, // 1040: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum + 240, // 1041: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum + 241, // 1042: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum + 870, // 1043: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter + 870, // 1044: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter + 871, // 1045: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag + 242, // 1046: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum + 873, // 1047: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter + 873, // 1048: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter + 874, // 1049: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag + 243, // 1050: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum + 876, // 1051: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter + 876, // 1052: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter + 877, // 1053: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag + 244, // 1054: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum + 879, // 1055: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter + 879, // 1056: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter + 880, // 1057: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag + 245, // 1058: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum + 246, // 1059: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum + 247, // 1060: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum + 883, // 1061: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter + 883, // 1062: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter + 884, // 1063: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag + 248, // 1064: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum + 886, // 1065: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter + 886, // 1066: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter + 887, // 1067: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag + 249, // 1068: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum + 889, // 1069: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 889, // 1070: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 890, // 1071: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag + 250, // 1072: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum + 892, // 1073: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter + 892, // 1074: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter + 893, // 1075: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag + 251, // 1076: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum + 895, // 1077: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter + 895, // 1078: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter + 896, // 1079: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag + 252, // 1080: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum + 898, // 1081: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter + 898, // 1082: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter + 899, // 1083: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag + 253, // 1084: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum + 901, // 1085: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 901, // 1086: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 902, // 1087: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag + 254, // 1088: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum + 904, // 1089: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 904, // 1090: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 905, // 1091: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag + 255, // 1092: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum + 907, // 1093: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 907, // 1094: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 908, // 1095: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag + 256, // 1096: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum + 910, // 1097: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter + 910, // 1098: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter + 911, // 1099: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag + 257, // 1100: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + 913, // 1101: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 913, // 1102: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 914, // 1103: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag + 258, // 1104: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum + 916, // 1105: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 916, // 1106: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 917, // 1107: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag + 259, // 1108: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + 919, // 1109: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 919, // 1110: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 920, // 1111: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + 260, // 1112: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + 922, // 1113: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 922, // 1114: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 923, // 1115: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag + 261, // 1116: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum + 925, // 1117: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 925, // 1118: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 926, // 1119: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag + 262, // 1120: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + 928, // 1121: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 928, // 1122: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 929, // 1123: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + 263, // 1124: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum + 931, // 1125: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter + 931, // 1126: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter + 932, // 1127: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag + 264, // 1128: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + 934, // 1129: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 934, // 1130: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 935, // 1131: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag + 265, // 1132: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum + 937, // 1133: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 937, // 1134: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 938, // 1135: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag + 266, // 1136: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum + 940, // 1137: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter + 940, // 1138: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter + 941, // 1139: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag + 267, // 1140: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum + 943, // 1141: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 943, // 1142: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 944, // 1143: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag + 268, // 1144: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum + 946, // 1145: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 946, // 1146: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 947, // 1147: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag + 269, // 1148: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum + 949, // 1149: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter + 949, // 1150: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter + 950, // 1151: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag + 270, // 1152: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + 952, // 1153: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 952, // 1154: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 953, // 1155: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag + 271, // 1156: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum + 955, // 1157: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter + 955, // 1158: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter + 956, // 1159: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag + 272, // 1160: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum + 958, // 1161: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter + 958, // 1162: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter + 959, // 1163: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag + 273, // 1164: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum + 961, // 1165: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter + 961, // 1166: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter + 962, // 1167: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag + 274, // 1168: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum + 964, // 1169: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter + 964, // 1170: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter + 965, // 1171: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag + 275, // 1172: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum + 967, // 1173: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter + 967, // 1174: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter + 968, // 1175: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag + 276, // 1176: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum + 970, // 1177: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter + 970, // 1178: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter + 971, // 1179: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag + 277, // 1180: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + 973, // 1181: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 973, // 1182: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 974, // 1183: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag + 278, // 1184: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + 976, // 1185: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 976, // 1186: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 977, // 1187: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag + 279, // 1188: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + 979, // 1189: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 979, // 1190: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 980, // 1191: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag + 280, // 1192: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + 982, // 1193: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 982, // 1194: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 983, // 1195: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag + 281, // 1196: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum + 985, // 1197: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 985, // 1198: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 986, // 1199: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag + 282, // 1200: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum + 988, // 1201: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 988, // 1202: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 989, // 1203: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag + 283, // 1204: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum + 284, // 1205: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum + 285, // 1206: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + 992, // 1207: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 992, // 1208: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 993, // 1209: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag + 286, // 1210: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + 995, // 1211: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 995, // 1212: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 996, // 1213: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag + 287, // 1214: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum + 288, // 1215: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum + 289, // 1216: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + 999, // 1217: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 999, // 1218: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 1000, // 1219: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + 290, // 1220: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + 1002, // 1221: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 1002, // 1222: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 1003, // 1223: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + 291, // 1224: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum + 1005, // 1225: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 1005, // 1226: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 1006, // 1227: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag + 292, // 1228: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum + 1008, // 1229: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 1008, // 1230: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 1009, // 1231: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag + 293, // 1232: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + 1011, // 1233: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1011, // 1234: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1012, // 1235: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag + 294, // 1236: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + 1014, // 1237: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1014, // 1238: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1015, // 1239: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + 295, // 1240: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + 296, // 1241: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + 297, // 1242: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + 298, // 1243: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + 299, // 1244: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum + 1019, // 1245: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter + 1019, // 1246: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter + 1020, // 1247: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag + 300, // 1248: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum + 1022, // 1249: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter + 1022, // 1250: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter + 1023, // 1251: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag + 301, // 1252: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum + 1025, // 1253: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1025, // 1254: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1026, // 1255: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag + 302, // 1256: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum + 1028, // 1257: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1028, // 1258: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1029, // 1259: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag + 303, // 1260: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum + 1031, // 1261: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1031, // 1262: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1032, // 1263: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag + 304, // 1264: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum + 1034, // 1265: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1034, // 1266: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1035, // 1267: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag + 305, // 1268: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum + 306, // 1269: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum + 307, // 1270: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + 1038, // 1271: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1038, // 1272: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1039, // 1273: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag + 308, // 1274: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum + 1041, // 1275: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter + 1041, // 1276: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter + 1042, // 1277: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag + 309, // 1278: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum + 1044, // 1279: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1044, // 1280: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1045, // 1281: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag + 310, // 1282: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum + 1047, // 1283: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1047, // 1284: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1048, // 1285: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag + 311, // 1286: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum + 1050, // 1287: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1050, // 1288: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1051, // 1289: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag + 533, // 1290: otg.Success.warning:type_name -> otg.Warning + 532, // 1291: otg.Failure.error:type_name -> otg.Error + 312, // 1292: otg.SetConfigRequest.config:type_name -> otg.Config + 534, // 1293: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate + 533, // 1294: otg.SetConfigResponse.warning:type_name -> otg.Warning + 312, // 1295: otg.GetConfigResponse.config:type_name -> otg.Config + 533, // 1296: otg.UpdateConfigResponse.warning:type_name -> otg.Warning + 536, // 1297: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState + 533, // 1298: otg.SetControlStateResponse.warning:type_name -> otg.Warning + 547, // 1299: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction + 548, // 1300: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse + 567, // 1301: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest + 568, // 1302: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse + 594, // 1303: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest + 595, // 1304: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse + 636, // 1305: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest + 1053, // 1306: otg.GetVersionResponse.version:type_name -> otg.Version + 1056, // 1307: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest + 1384, // 1308: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty + 1057, // 1309: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest + 1061, // 1310: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest + 1063, // 1311: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest + 1065, // 1312: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest + 1067, // 1313: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest + 1069, // 1314: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest + 1384, // 1315: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty + 1058, // 1316: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse + 1059, // 1317: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse + 1060, // 1318: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse + 1062, // 1319: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse + 1064, // 1320: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse + 1066, // 1321: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse + 1068, // 1322: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse + 1070, // 1323: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse + 1071, // 1324: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse + 1316, // [1316:1325] is the sub-list for method output_type + 1307, // [1307:1316] is the sub-list for method input_type + 1307, // [1307:1307] is the sub-list for extension type_name + 1307, // [1307:1307] is the sub-list for extension extendee + 0, // [0:1307] is the sub-list for field type_name } func init() { file_otg_proto_init() } @@ -108319,8 +110635,224 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4Peer); i { + file_otg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4Peer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4Interface); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4EthernetSegment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpEthernetSegmentDfElection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpRouteAdvanced); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpCommunity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtCommunity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpAsPath); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpAsPathSegment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4EvpnEvis); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4EviVxlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4EviVxlanBroadcastDomain); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpCMacIpRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpRouteDistinguisher); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpRouteTarget); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpAdvanced); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpCapability); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpLearnedInformationFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4RouteRange); i { case 0: return &v.state case 1: @@ -108331,8 +110863,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4Interface); i { + file_otg_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpAddPath); i { case 0: return &v.state case 1: @@ -108343,8 +110875,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EthernetSegment); i { + file_otg_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunity); i { case 0: return &v.state case 1: @@ -108355,8 +110887,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpEthernetSegmentDfElection); i { + file_otg_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget); i { case 0: return &v.state case 1: @@ -108367,8 +110899,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteAdvanced); i { + file_otg_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -108379,8 +110911,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCommunity); i { + file_otg_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsType); i { case 0: return &v.state case 1: @@ -108391,8 +110923,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtCommunity); i { + file_otg_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -108403,8 +110935,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAsPath); i { + file_otg_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget); i { case 0: return &v.state case 1: @@ -108415,8 +110947,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAsPathSegment); i { + file_otg_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressType); i { case 0: return &v.state case 1: @@ -108427,8 +110959,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EvpnEvis); i { + file_otg_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget); i { case 0: return &v.state case 1: @@ -108439,8 +110971,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EviVxlan); i { + file_otg_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -108451,8 +110983,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EviVxlanBroadcastDomain); i { + file_otg_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsType); i { case 0: return &v.state case 1: @@ -108463,8 +110995,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCMacIpRange); i { + file_otg_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueTypeColor); i { case 0: return &v.state case 1: @@ -108475,8 +111007,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteDistinguisher); i { + file_otg_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation); i { case 0: return &v.state case 1: @@ -108487,8 +111019,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteTarget); i { + file_otg_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueType); i { case 0: return &v.state case 1: @@ -108499,8 +111031,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAdvanced); i { + file_otg_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveEvpnTypeRouterMac); i { case 0: return &v.state case 1: @@ -108511,8 +111043,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCapability); i { + file_otg_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveEvpnType); i { case 0: return &v.state case 1: @@ -108523,8 +111055,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpLearnedInformationFilter); i { + file_otg_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth); i { case 0: return &v.state case 1: @@ -108535,8 +111067,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4RouteRange); i { + file_otg_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsType); i { case 0: return &v.state case 1: @@ -108547,8 +111079,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAddPath); i { + file_otg_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityCustomType); i { case 0: return &v.state case 1: @@ -108559,7 +111091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange); i { case 0: return &v.state @@ -108571,7 +111103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy); i { case 0: return &v.state @@ -108583,7 +111115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4TunnelTlv); i { case 0: return &v.state @@ -108595,7 +111127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteRemoteEndpointSubTlv); i { case 0: return &v.state @@ -108607,7 +111139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteColorSubTlv); i { case 0: return &v.state @@ -108619,7 +111151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteBindingSubTlv); i { case 0: return &v.state @@ -108631,7 +111163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrtePreferenceSubTlv); i { case 0: return &v.state @@ -108643,7 +111175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrtePolicyPrioritySubTlv); i { case 0: return &v.state @@ -108655,7 +111187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrtePolicyNameSubTlv); i { case 0: return &v.state @@ -108667,7 +111199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteExplicitNullLabelPolicySubTlv); i { case 0: return &v.state @@ -108679,7 +111211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentList); i { case 0: return &v.state @@ -108691,7 +111223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegment); i { case 0: return &v.state @@ -108703,7 +111235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSrMplsSid); i { case 0: return &v.state @@ -108715,7 +111247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSRv6SIDEndpointBehaviorAndStructure); i { case 0: return &v.state @@ -108727,7 +111259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentATypeSubTlv); i { case 0: return &v.state @@ -108739,7 +111271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentBTypeSubTlv); i { case 0: return &v.state @@ -108751,7 +111283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentCTypeSubTlv); i { case 0: return &v.state @@ -108763,7 +111295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentDTypeSubTlv); i { case 0: return &v.state @@ -108775,7 +111307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentETypeSubTlv); i { case 0: return &v.state @@ -108787,7 +111319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentFTypeSubTlv); i { case 0: return &v.state @@ -108799,7 +111331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentGTypeSubTlv); i { case 0: return &v.state @@ -108811,7 +111343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentHTypeSubTlv); i { case 0: return &v.state @@ -108823,7 +111355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentITypeSubTlv); i { case 0: return &v.state @@ -108835,7 +111367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentJTypeSubTlv); i { case 0: return &v.state @@ -108847,7 +111379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentKTypeSubTlv); i { case 0: return &v.state @@ -108859,7 +111391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy); i { case 0: return &v.state @@ -108871,7 +111403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6TunnelTlv); i { case 0: return &v.state @@ -108883,7 +111415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpGracefulRestart); i { case 0: return &v.state @@ -108895,7 +111427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer); i { case 0: return &v.state @@ -108907,7 +111439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Interface); i { case 0: return &v.state @@ -108919,7 +111451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6SegmentRouting); i { case 0: return &v.state @@ -108931,7 +111463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EthernetSegment); i { case 0: return &v.state @@ -108943,7 +111475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EvpnEvis); i { case 0: return &v.state @@ -108955,7 +111487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlan); i { case 0: return &v.state @@ -108967,7 +111499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlanBroadcastDomain); i { case 0: return &v.state @@ -108979,7 +111511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceVxlan); i { case 0: return &v.state @@ -108991,7 +111523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4Tunnel); i { case 0: return &v.state @@ -109003,7 +111535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6Tunnel); i { case 0: return &v.state @@ -109015,7 +111547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPMode); i { case 0: return &v.state @@ -109027,7 +111559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPMode); i { case 0: return &v.state @@ -109039,7 +111571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeUnicast); i { case 0: return &v.state @@ -109051,7 +111583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeUnicast); i { case 0: return &v.state @@ -109063,7 +111595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache); i { case 0: return &v.state @@ -109075,7 +111607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeUnicastVtep); i { case 0: return &v.state @@ -109087,7 +111619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeUnicastVtep); i { case 0: return &v.state @@ -109099,7 +111631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeMulticast); i { case 0: return &v.state @@ -109111,7 +111643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeMulticast); i { case 0: return &v.state @@ -109123,7 +111655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceRsvp); i { case 0: return &v.state @@ -109135,7 +111667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpIpv4Interface); i { case 0: return &v.state @@ -109147,7 +111679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Interface); i { case 0: return &v.state @@ -109159,7 +111691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp); i { case 0: return &v.state @@ -109171,7 +111703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp); i { case 0: return &v.state @@ -109183,7 +111715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpSessionAttribute); i { case 0: return &v.state @@ -109195,7 +111727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpResourceAffinities); i { case 0: return &v.state @@ -109207,7 +111739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpTspec); i { case 0: return &v.state @@ -109219,7 +111751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpFastReroute); i { case 0: return &v.state @@ -109231,7 +111763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEro); i { case 0: return &v.state @@ -109243,7 +111775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject); i { case 0: return &v.state @@ -109255,7 +111787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Flow); i { case 0: return &v.state @@ -109267,7 +111799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTxRx); i { case 0: return &v.state @@ -109279,7 +111811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPort); i { case 0: return &v.state @@ -109291,7 +111823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRouter); i { case 0: return &v.state @@ -109303,7 +111835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowHeader); i { case 0: return &v.state @@ -109315,7 +111847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowCustom); i { case 0: return &v.state @@ -109327,7 +111859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowCustomMetricTag); i { case 0: return &v.state @@ -109339,7 +111871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowEthernet); i { case 0: return &v.state @@ -109351,7 +111883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowVlan); i { case 0: return &v.state @@ -109363,7 +111895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowVxlan); i { case 0: return &v.state @@ -109375,7 +111907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4); i { case 0: return &v.state @@ -109387,7 +111919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Priority); i { case 0: return &v.state @@ -109399,7 +111931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Dscp); i { case 0: return &v.state @@ -109411,7 +111943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Tos); i { case 0: return &v.state @@ -109423,7 +111955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv6); i { case 0: return &v.state @@ -109435,7 +111967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPfcPause); i { case 0: return &v.state @@ -109447,7 +111979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowEthernetPause); i { case 0: return &v.state @@ -109459,7 +111991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTcp); i { case 0: return &v.state @@ -109471,7 +112003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowUdp); i { case 0: return &v.state @@ -109483,7 +112015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGre); i { case 0: return &v.state @@ -109495,7 +112027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpv1); i { case 0: return &v.state @@ -109507,7 +112039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpExtension); i { case 0: return &v.state @@ -109519,7 +112051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpv2); i { case 0: return &v.state @@ -109531,7 +112063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowArp); i { case 0: return &v.state @@ -109543,7 +112075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmp); i { case 0: return &v.state @@ -109555,7 +112087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpEcho); i { case 0: return &v.state @@ -109567,7 +112099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6); i { case 0: return &v.state @@ -109579,7 +112111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6Echo); i { case 0: return &v.state @@ -109591,7 +112123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPpp); i { case 0: return &v.state @@ -109603,7 +112135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIgmpv1); i { case 0: return &v.state @@ -109615,7 +112147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMpls); i { case 0: return &v.state @@ -109627,7 +112159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSize); i { case 0: return &v.state @@ -109639,7 +112171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeIncrement); i { case 0: return &v.state @@ -109651,7 +112183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeRandom); i { case 0: return &v.state @@ -109663,7 +112195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs); i { case 0: return &v.state @@ -109675,7 +112207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairsCustom); i { case 0: return &v.state @@ -109687,7 +112219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRate); i { case 0: return &v.state @@ -109699,7 +112231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDuration); i { case 0: return &v.state @@ -109711,7 +112243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowContinuous); i { case 0: return &v.state @@ -109723,7 +112255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDelay); i { case 0: return &v.state @@ -109735,7 +112267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowFixedPackets); i { case 0: return &v.state @@ -109747,7 +112279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowFixedSeconds); i { case 0: return &v.state @@ -109759,7 +112291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowBurst); i { case 0: return &v.state @@ -109771,7 +112303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDurationInterBurstGap); i { case 0: return &v.state @@ -109783,7 +112315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetrics); i { case 0: return &v.state @@ -109795,7 +112327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowLatencyMetrics); i { case 0: return &v.state @@ -109807,7 +112339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPredefinedTags); i { case 0: return &v.state @@ -109819,7 +112351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatio); i { case 0: return &v.state @@ -109831,7 +112363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatioRxCount); i { case 0: return &v.state @@ -109843,7 +112375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Event); i { case 0: return &v.state @@ -109855,7 +112387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRxRateThreshold); i { case 0: return &v.state @@ -109867,7 +112399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventLink); i { case 0: return &v.state @@ -109879,7 +112411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRouteAdvertiseWithdraw); i { case 0: return &v.state @@ -109891,7 +112423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRequest); i { case 0: return &v.state @@ -109903,7 +112435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventSubscription); i { case 0: return &v.state @@ -109915,7 +112447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Lldp); i { case 0: return &v.state @@ -109927,7 +112459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpConnection); i { case 0: return &v.state @@ -109939,7 +112471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisId); i { case 0: return &v.state @@ -109951,7 +112483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortId); i { case 0: return &v.state @@ -109963,7 +112495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisMacSubType); i { case 0: return &v.state @@ -109975,7 +112507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortInterfaceNameSubType); i { case 0: return &v.state @@ -109987,7 +112519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpSystemName); i { case 0: return &v.state @@ -109999,7 +112531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Error); i { case 0: return &v.state @@ -110011,7 +112543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Warning); i { case 0: return &v.state @@ -110023,7 +112555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigUpdate); i { case 0: return &v.state @@ -110035,7 +112567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowsUpdate); i { case 0: return &v.state @@ -110047,7 +112579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlState); i { case 0: return &v.state @@ -110059,7 +112591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePort); i { case 0: return &v.state @@ -110071,7 +112603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTraffic); i { case 0: return &v.state @@ -110083,7 +112615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocol); i { case 0: return &v.state @@ -110095,7 +112627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortLink); i { case 0: return &v.state @@ -110107,7 +112639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortCapture); i { case 0: return &v.state @@ -110119,7 +112651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTrafficFlowTransmit); i { case 0: return &v.state @@ -110131,7 +112663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolAll); i { case 0: return &v.state @@ -110143,7 +112675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolRoute); i { case 0: return &v.state @@ -110155,7 +112687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacp); i { case 0: return &v.state @@ -110167,7 +112699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpAdmin); i { case 0: return &v.state @@ -110179,7 +112711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlAction); i { case 0: return &v.state @@ -110191,7 +112723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlActionResponse); i { case 0: return &v.state @@ -110203,7 +112735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponse); i { case 0: return &v.state @@ -110215,7 +112747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocol); i { case 0: return &v.state @@ -110227,7 +112759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocol); i { case 0: return &v.state @@ -110239,7 +112771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4); i { case 0: return &v.state @@ -110251,7 +112783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4); i { case 0: return &v.state @@ -110263,7 +112795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4Ping); i { case 0: return &v.state @@ -110275,7 +112807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4PingRequest); i { case 0: return &v.state @@ -110287,7 +112819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4Ping); i { case 0: return &v.state @@ -110299,7 +112831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4PingResponse); i { case 0: return &v.state @@ -110311,7 +112843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6); i { case 0: return &v.state @@ -110323,7 +112855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6); i { case 0: return &v.state @@ -110335,7 +112867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6Ping); i { case 0: return &v.state @@ -110347,7 +112879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6PingRequest); i { case 0: return &v.state @@ -110359,7 +112891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6Ping); i { case 0: return &v.state @@ -110371,7 +112903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6PingResponse); i { case 0: return &v.state @@ -110383,7 +112915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgp); i { case 0: return &v.state @@ -110395,7 +112927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpNotification); i { case 0: return &v.state @@ -110407,7 +112939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpInitiateGracefulRestart); i { case 0: return &v.state @@ -110419,7 +112951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsRequest); i { case 0: return &v.state @@ -110431,7 +112963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsResponse); i { case 0: return &v.state @@ -110443,7 +112975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetricsRequest); i { case 0: return &v.state @@ -110455,7 +112987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric); i { case 0: return &v.state @@ -110467,7 +112999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricsRequest); i { case 0: return &v.state @@ -110479,7 +113011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetricsFilter); i { case 0: return &v.state @@ -110491,7 +113023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagFilter); i { case 0: return &v.state @@ -110503,7 +113035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetric); i { case 0: return &v.state @@ -110515,7 +113047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetric); i { case 0: return &v.state @@ -110527,7 +113059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTag); i { case 0: return &v.state @@ -110539,7 +113071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagValue); i { case 0: return &v.state @@ -110551,7 +113083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricTimestamp); i { case 0: return &v.state @@ -110563,7 +113095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricLatency); i { case 0: return &v.state @@ -110575,7 +113107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4MetricsRequest); i { case 0: return &v.state @@ -110587,7 +113119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric); i { case 0: return &v.state @@ -110599,7 +113131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6MetricsRequest); i { case 0: return &v.state @@ -110611,7 +113143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric); i { case 0: return &v.state @@ -110623,7 +113155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetricsRequest); i { case 0: return &v.state @@ -110635,7 +113167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetric); i { case 0: return &v.state @@ -110647,7 +113179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetricsRequest); i { case 0: return &v.state @@ -110659,7 +113191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetric); i { case 0: return &v.state @@ -110671,7 +113203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetricsRequest); i { case 0: return &v.state @@ -110683,7 +113215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric); i { case 0: return &v.state @@ -110695,7 +113227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetricsRequest); i { case 0: return &v.state @@ -110707,7 +113239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetric); i { case 0: return &v.state @@ -110719,7 +113251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetricsRequest); i { case 0: return &v.state @@ -110731,7 +113263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetric); i { case 0: return &v.state @@ -110743,7 +113275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesRequest); i { case 0: return &v.state @@ -110755,7 +113287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesResponse); i { case 0: return &v.state @@ -110767,7 +113299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv4StatesRequest); i { case 0: return &v.state @@ -110779,7 +113311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv4State); i { case 0: return &v.state @@ -110791,7 +113323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv6StatesRequest); i { case 0: return &v.state @@ -110803,7 +113335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv6State); i { case 0: return &v.state @@ -110815,7 +113347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixStateRequest); i { case 0: return &v.state @@ -110827,7 +113359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastFilter); i { case 0: return &v.state @@ -110839,7 +113371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastFilter); i { case 0: return &v.state @@ -110851,7 +113383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixesState); i { case 0: return &v.state @@ -110863,7 +113395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastState); i { case 0: return &v.state @@ -110875,7 +113407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastState); i { case 0: return &v.state @@ -110887,7 +113419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpCommunity); i { case 0: return &v.state @@ -110899,7 +113431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPath); i { case 0: return &v.state @@ -110911,7 +113443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPathSegment); i { case 0: return &v.state @@ -110923,7 +113455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspsStateRequest); i { case 0: return &v.state @@ -110935,7 +113467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspsState); i { case 0: return &v.state @@ -110947,7 +113479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspState); i { case 0: return &v.state @@ -110959,7 +113491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspTlvs); i { case 0: return &v.state @@ -110971,7 +113503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspHostname); i { case 0: return &v.state @@ -110983,7 +113515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspFlags); i { case 0: return &v.state @@ -110995,7 +113527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIsReachabilityTlv); i { case 0: return &v.state @@ -111007,7 +113539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedIsReachabilityTlv); i { case 0: return &v.state @@ -111019,7 +113551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspneighbor); i { case 0: return &v.state @@ -111031,7 +113563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv4InternalReachabilityTlv); i { case 0: return &v.state @@ -111043,7 +113575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv4ExternalReachabilityTlv); i { case 0: return &v.state @@ -111055,7 +113587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix); i { case 0: return &v.state @@ -111067,7 +113599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedIpv4ReachabilityTlv); i { case 0: return &v.state @@ -111079,7 +113611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedV4Prefix); i { case 0: return &v.state @@ -111091,7 +113623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv6ReachabilityTlv); i { case 0: return &v.state @@ -111103,7 +113635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix); i { case 0: return &v.state @@ -111115,7 +113647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspPrefixAttributes); i { case 0: return &v.state @@ -111127,7 +113659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsStateRequest); i { case 0: return &v.state @@ -111139,7 +113671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState); i { case 0: return &v.state @@ -111151,7 +113683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCustomTLVState); i { case 0: return &v.state @@ -111163,7 +113695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCapabilityState); i { case 0: return &v.state @@ -111175,7 +113707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspsStateRequest); i { case 0: return &v.state @@ -111187,7 +113719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspsState); i { case 0: return &v.state @@ -111199,7 +113731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpIPv4LspState); i { case 0: return &v.state @@ -111211,7 +113743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState); i { case 0: return &v.state @@ -111223,7 +113755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Rro); i { case 0: return &v.state @@ -111235,7 +113767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Ero); i { case 0: return &v.state @@ -111247,7 +113779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaptureRequest); i { case 0: return &v.state @@ -111259,7 +113791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDstCounter); i { case 0: return &v.state @@ -111271,7 +113803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDstMetricTag); i { case 0: return &v.state @@ -111283,7 +113815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDst); i { case 0: return &v.state @@ -111295,7 +113827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrcCounter); i { case 0: return &v.state @@ -111307,7 +113839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrcMetricTag); i { case 0: return &v.state @@ -111319,7 +113851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrc); i { case 0: return &v.state @@ -111331,7 +113863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherTypeCounter); i { case 0: return &v.state @@ -111343,7 +113875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherTypeMetricTag); i { case 0: return &v.state @@ -111355,7 +113887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherType); i { case 0: return &v.state @@ -111367,7 +113899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueueCounter); i { case 0: return &v.state @@ -111379,7 +113911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueueMetricTag); i { case 0: return &v.state @@ -111391,7 +113923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueue); i { case 0: return &v.state @@ -111403,7 +113935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriorityCounter); i { case 0: return &v.state @@ -111415,7 +113947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriorityMetricTag); i { case 0: return &v.state @@ -111427,7 +113959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriority); i { case 0: return &v.state @@ -111439,7 +113971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfiCounter); i { case 0: return &v.state @@ -111451,7 +113983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfiMetricTag); i { case 0: return &v.state @@ -111463,7 +113995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfi); i { case 0: return &v.state @@ -111475,7 +114007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanIdCounter); i { case 0: return &v.state @@ -111487,7 +114019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanIdMetricTag); i { case 0: return &v.state @@ -111499,7 +114031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanId); i { case 0: return &v.state @@ -111511,7 +114043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpidCounter); i { case 0: return &v.state @@ -111523,7 +114055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpidMetricTag); i { case 0: return &v.state @@ -111535,7 +114067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpid); i { case 0: return &v.state @@ -111547,7 +114079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlagsCounter); i { case 0: return &v.state @@ -111559,7 +114091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlagsMetricTag); i { case 0: return &v.state @@ -111571,7 +114103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlags); i { case 0: return &v.state @@ -111583,7 +114115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0Counter); i { case 0: return &v.state @@ -111595,7 +114127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0MetricTag); i { case 0: return &v.state @@ -111607,7 +114139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0); i { case 0: return &v.state @@ -111619,7 +114151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVniCounter); i { case 0: return &v.state @@ -111631,7 +114163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVniMetricTag); i { case 0: return &v.state @@ -111643,7 +114175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVni); i { case 0: return &v.state @@ -111655,7 +114187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1Counter); i { case 0: return &v.state @@ -111667,7 +114199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1MetricTag); i { case 0: return &v.state @@ -111679,7 +114211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1); i { case 0: return &v.state @@ -111691,7 +114223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4VersionCounter); i { case 0: return &v.state @@ -111703,7 +114235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4VersionMetricTag); i { case 0: return &v.state @@ -111715,7 +114247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Version); i { case 0: return &v.state @@ -111727,7 +114259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLengthCounter); i { case 0: return &v.state @@ -111739,7 +114271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLengthMetricTag); i { case 0: return &v.state @@ -111751,7 +114283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLength); i { case 0: return &v.state @@ -111763,7 +114295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLengthCounter); i { case 0: return &v.state @@ -111775,7 +114307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLengthMetricTag); i { case 0: return &v.state @@ -111787,7 +114319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLength); i { case 0: return &v.state @@ -111799,7 +114331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4IdentificationCounter); i { case 0: return &v.state @@ -111811,7 +114343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4IdentificationMetricTag); i { case 0: return &v.state @@ -111823,7 +114355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Identification); i { case 0: return &v.state @@ -111835,7 +114367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ReservedCounter); i { case 0: return &v.state @@ -111847,7 +114379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ReservedMetricTag); i { case 0: return &v.state @@ -111859,7 +114391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Reserved); i { case 0: return &v.state @@ -111871,7 +114403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragmentCounter); i { case 0: return &v.state @@ -111883,7 +114415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragmentMetricTag); i { case 0: return &v.state @@ -111895,7 +114427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragment); i { case 0: return &v.state @@ -111907,7 +114439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[379].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragmentsCounter); i { case 0: return &v.state @@ -111919,7 +114451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[380].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragmentsMetricTag); i { case 0: return &v.state @@ -111931,7 +114463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[381].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragments); i { case 0: return &v.state @@ -111943,7 +114475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[382].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffsetCounter); i { case 0: return &v.state @@ -111955,7 +114487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[383].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffsetMetricTag); i { case 0: return &v.state @@ -111967,7 +114499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[384].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffset); i { case 0: return &v.state @@ -111979,7 +114511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[385].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLiveCounter); i { case 0: return &v.state @@ -111991,7 +114523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[386].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLiveMetricTag); i { case 0: return &v.state @@ -112003,7 +114535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLive); i { case 0: return &v.state @@ -112015,7 +114547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ProtocolCounter); i { case 0: return &v.state @@ -112027,7 +114559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[389].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ProtocolMetricTag); i { case 0: return &v.state @@ -112039,7 +114571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[390].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Protocol); i { case 0: return &v.state @@ -112051,7 +114583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[391].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum); i { case 0: return &v.state @@ -112063,7 +114595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[392].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4SrcCounter); i { case 0: return &v.state @@ -112075,7 +114607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[393].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4SrcMetricTag); i { case 0: return &v.state @@ -112087,7 +114619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[394].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Src); i { case 0: return &v.state @@ -112099,7 +114631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[395].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DstCounter); i { case 0: return &v.state @@ -112111,7 +114643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[396].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DstMetricTag); i { case 0: return &v.state @@ -112123,7 +114655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[379].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[397].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Dst); i { case 0: return &v.state @@ -112135,7 +114667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[380].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[398].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRawCounter); i { case 0: return &v.state @@ -112147,7 +114679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[381].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[399].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRawMetricTag); i { case 0: return &v.state @@ -112159,7 +114691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[382].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[400].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRaw); i { case 0: return &v.state @@ -112171,7 +114703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[383].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[401].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhbCounter); i { case 0: return &v.state @@ -112183,7 +114715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[384].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[402].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhbMetricTag); i { case 0: return &v.state @@ -112195,7 +114727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[385].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[403].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhb); i { case 0: return &v.state @@ -112207,7 +114739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[386].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[404].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcnCounter); i { case 0: return &v.state @@ -112219,7 +114751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[405].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcnMetricTag); i { case 0: return &v.state @@ -112231,7 +114763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[406].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcn); i { case 0: return &v.state @@ -112243,7 +114775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[389].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[407].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedenceCounter); i { case 0: return &v.state @@ -112255,7 +114787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[390].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[408].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedenceMetricTag); i { case 0: return &v.state @@ -112267,7 +114799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[391].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[409].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedence); i { case 0: return &v.state @@ -112279,7 +114811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[392].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelayCounter); i { case 0: return &v.state @@ -112291,7 +114823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[393].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[411].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelayMetricTag); i { case 0: return &v.state @@ -112303,7 +114835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[394].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelay); i { case 0: return &v.state @@ -112315,7 +114847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[395].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughputCounter); i { case 0: return &v.state @@ -112327,7 +114859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[396].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughputMetricTag); i { case 0: return &v.state @@ -112339,7 +114871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[397].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[415].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughput); i { case 0: return &v.state @@ -112351,7 +114883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[398].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[416].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliabilityCounter); i { case 0: return &v.state @@ -112363,7 +114895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[399].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[417].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliabilityMetricTag); i { case 0: return &v.state @@ -112375,7 +114907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[400].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[418].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliability); i { case 0: return &v.state @@ -112387,7 +114919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[401].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[419].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetaryCounter); i { case 0: return &v.state @@ -112399,7 +114931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[402].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[420].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetaryMetricTag); i { case 0: return &v.state @@ -112411,7 +114943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[403].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetary); i { case 0: return &v.state @@ -112423,7 +114955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[404].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[422].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnusedCounter); i { case 0: return &v.state @@ -112435,7 +114967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[405].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnusedMetricTag); i { case 0: return &v.state @@ -112447,7 +114979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[406].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnused); i { case 0: return &v.state @@ -112459,7 +114991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[407].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6VersionCounter); i { case 0: return &v.state @@ -112471,7 +115003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[408].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[426].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6VersionMetricTag); i { case 0: return &v.state @@ -112483,7 +115015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[409].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[427].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Version); i { case 0: return &v.state @@ -112495,7 +115027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[428].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClassCounter); i { case 0: return &v.state @@ -112507,7 +115039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[411].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[429].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClassMetricTag); i { case 0: return &v.state @@ -112519,7 +115051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[430].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClass); i { case 0: return &v.state @@ -112531,7 +115063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[431].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabelCounter); i { case 0: return &v.state @@ -112543,7 +115075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[432].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabelMetricTag); i { case 0: return &v.state @@ -112555,7 +115087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[415].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[433].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabel); i { case 0: return &v.state @@ -112567,7 +115099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[416].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[434].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLengthCounter); i { case 0: return &v.state @@ -112579,7 +115111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[417].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[435].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLengthMetricTag); i { case 0: return &v.state @@ -112591,7 +115123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[418].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[436].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLength); i { case 0: return &v.state @@ -112603,7 +115135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[419].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[437].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeaderCounter); i { case 0: return &v.state @@ -112615,7 +115147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[420].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[438].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeaderMetricTag); i { case 0: return &v.state @@ -112627,7 +115159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[439].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeader); i { case 0: return &v.state @@ -112639,7 +115171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[422].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[440].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimitCounter); i { case 0: return &v.state @@ -112651,7 +115183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[441].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimitMetricTag); i { case 0: return &v.state @@ -112663,7 +115195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[442].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimit); i { case 0: return &v.state @@ -112675,7 +115207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[443].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6SrcCounter); i { case 0: return &v.state @@ -112687,7 +115219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[426].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[444].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6SrcMetricTag); i { case 0: return &v.state @@ -112699,7 +115231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[427].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[445].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Src); i { case 0: return &v.state @@ -112711,7 +115243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[428].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[446].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6DstCounter); i { case 0: return &v.state @@ -112723,7 +115255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[429].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[447].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6DstMetricTag); i { case 0: return &v.state @@ -112735,7 +115267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[430].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[448].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Dst); i { case 0: return &v.state @@ -112747,7 +115279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[431].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[449].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDstCounter); i { case 0: return &v.state @@ -112759,7 +115291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[432].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[450].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDstMetricTag); i { case 0: return &v.state @@ -112771,7 +115303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[433].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[451].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDst); i { case 0: return &v.state @@ -112783,7 +115315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[434].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[452].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrcCounter); i { case 0: return &v.state @@ -112795,7 +115327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[435].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[453].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrcMetricTag); i { case 0: return &v.state @@ -112807,7 +115339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[436].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[454].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrc); i { case 0: return &v.state @@ -112819,7 +115351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[437].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[455].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherTypeCounter); i { case 0: return &v.state @@ -112831,7 +115363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[438].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[456].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherTypeMetricTag); i { case 0: return &v.state @@ -112843,7 +115375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[439].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[457].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherType); i { case 0: return &v.state @@ -112855,7 +115387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[440].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[458].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCodeCounter); i { case 0: return &v.state @@ -112867,7 +115399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[441].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[459].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCodeMetricTag); i { case 0: return &v.state @@ -112879,7 +115411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[442].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[460].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCode); i { case 0: return &v.state @@ -112891,7 +115423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[443].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[461].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVectorCounter); i { case 0: return &v.state @@ -112903,7 +115435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[444].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[462].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVectorMetricTag); i { case 0: return &v.state @@ -112915,7 +115447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[445].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[463].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVector); i { case 0: return &v.state @@ -112927,7 +115459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[446].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[464].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0Counter); i { case 0: return &v.state @@ -112939,7 +115471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[447].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[465].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0MetricTag); i { case 0: return &v.state @@ -112951,7 +115483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[448].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[466].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0); i { case 0: return &v.state @@ -112963,7 +115495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[449].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[467].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1Counter); i { case 0: return &v.state @@ -112975,7 +115507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[450].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[468].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1MetricTag); i { case 0: return &v.state @@ -112987,7 +115519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[451].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[469].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1); i { case 0: return &v.state @@ -112999,7 +115531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[452].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[470].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2Counter); i { case 0: return &v.state @@ -113011,7 +115543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[453].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[471].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2MetricTag); i { case 0: return &v.state @@ -113023,7 +115555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[454].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[472].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2); i { case 0: return &v.state @@ -113035,7 +115567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[455].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[473].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3Counter); i { case 0: return &v.state @@ -113047,7 +115579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[456].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[474].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3MetricTag); i { case 0: return &v.state @@ -113059,7 +115591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[457].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[475].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3); i { case 0: return &v.state @@ -113071,7 +115603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[458].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[476].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4Counter); i { case 0: return &v.state @@ -113083,7 +115615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[459].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[477].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4MetricTag); i { case 0: return &v.state @@ -113095,7 +115627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[460].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[478].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4); i { case 0: return &v.state @@ -113107,7 +115639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[461].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[479].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5Counter); i { case 0: return &v.state @@ -113119,7 +115651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[462].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[480].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5MetricTag); i { case 0: return &v.state @@ -113131,7 +115663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[463].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[481].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5); i { case 0: return &v.state @@ -113143,7 +115675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[464].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[482].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6Counter); i { case 0: return &v.state @@ -113155,7 +115687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[465].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[483].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6MetricTag); i { case 0: return &v.state @@ -113167,7 +115699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[466].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[484].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6); i { case 0: return &v.state @@ -113179,7 +115711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[467].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[485].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7Counter); i { case 0: return &v.state @@ -113191,7 +115723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[468].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[486].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7MetricTag); i { case 0: return &v.state @@ -113203,7 +115735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[469].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[487].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7); i { case 0: return &v.state @@ -113215,7 +115747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[470].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[488].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDstCounter); i { case 0: return &v.state @@ -113227,7 +115759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[471].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[489].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDstMetricTag); i { case 0: return &v.state @@ -113239,7 +115771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[472].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[490].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDst); i { case 0: return &v.state @@ -113251,7 +115783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[473].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[491].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrcCounter); i { case 0: return &v.state @@ -113263,7 +115795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[474].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[492].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrcMetricTag); i { case 0: return &v.state @@ -113275,7 +115807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[475].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[493].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrc); i { case 0: return &v.state @@ -113287,7 +115819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[476].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[494].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherTypeCounter); i { case 0: return &v.state @@ -113299,7 +115831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[477].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[495].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherTypeMetricTag); i { case 0: return &v.state @@ -113311,7 +115843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[478].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[496].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherType); i { case 0: return &v.state @@ -113323,7 +115855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[479].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[497].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCodeCounter); i { case 0: return &v.state @@ -113335,7 +115867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[480].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[498].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCodeMetricTag); i { case 0: return &v.state @@ -113347,7 +115879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[481].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[499].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCode); i { case 0: return &v.state @@ -113359,7 +115891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[482].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[500].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTimeCounter); i { case 0: return &v.state @@ -113371,7 +115903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[483].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[501].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTimeMetricTag); i { case 0: return &v.state @@ -113383,7 +115915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[484].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[502].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTime); i { case 0: return &v.state @@ -113395,7 +115927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[485].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[503].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPortCounter); i { case 0: return &v.state @@ -113407,7 +115939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[486].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[504].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPortMetricTag); i { case 0: return &v.state @@ -113419,7 +115951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[487].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[505].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPort); i { case 0: return &v.state @@ -113431,7 +115963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[488].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[506].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPortCounter); i { case 0: return &v.state @@ -113443,7 +115975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[489].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[507].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPortMetricTag); i { case 0: return &v.state @@ -113455,7 +115987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[490].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[508].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPort); i { case 0: return &v.state @@ -113467,7 +115999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[491].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[509].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNumCounter); i { case 0: return &v.state @@ -113479,7 +116011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[492].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[510].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNumMetricTag); i { case 0: return &v.state @@ -113491,7 +116023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[493].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[511].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNum); i { case 0: return &v.state @@ -113503,7 +116035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[494].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[512].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNumCounter); i { case 0: return &v.state @@ -113515,7 +116047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[495].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[513].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNumMetricTag); i { case 0: return &v.state @@ -113527,7 +116059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[496].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[514].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNum); i { case 0: return &v.state @@ -113539,7 +116071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[497].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[515].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffsetCounter); i { case 0: return &v.state @@ -113551,7 +116083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[498].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[516].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffsetMetricTag); i { case 0: return &v.state @@ -113563,7 +116095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[499].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[517].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffset); i { case 0: return &v.state @@ -113575,7 +116107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[500].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[518].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNsCounter); i { case 0: return &v.state @@ -113587,7 +116119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[501].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[519].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNsMetricTag); i { case 0: return &v.state @@ -113599,7 +116131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[502].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[520].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNs); i { case 0: return &v.state @@ -113611,7 +116143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[503].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[521].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwrCounter); i { case 0: return &v.state @@ -113623,7 +116155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[504].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[522].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwrMetricTag); i { case 0: return &v.state @@ -113635,7 +116167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[505].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[523].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwr); i { case 0: return &v.state @@ -113647,7 +116179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[506].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[524].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEchoCounter); i { case 0: return &v.state @@ -113659,7 +116191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[507].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[525].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEchoMetricTag); i { case 0: return &v.state @@ -113671,7 +116203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[508].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[526].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEcho); i { case 0: return &v.state @@ -113683,7 +116215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[509].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[527].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrgCounter); i { case 0: return &v.state @@ -113695,7 +116227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[510].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[528].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrgMetricTag); i { case 0: return &v.state @@ -113707,7 +116239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[511].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[529].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrg); i { case 0: return &v.state @@ -113719,7 +116251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[512].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[530].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAckCounter); i { case 0: return &v.state @@ -113731,7 +116263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[513].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[531].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAckMetricTag); i { case 0: return &v.state @@ -113743,7 +116275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[514].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[532].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAck); i { case 0: return &v.state @@ -113755,7 +116287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[515].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[533].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPshCounter); i { case 0: return &v.state @@ -113767,7 +116299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[516].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[534].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPshMetricTag); i { case 0: return &v.state @@ -113779,7 +116311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[517].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[535].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPsh); i { case 0: return &v.state @@ -113791,7 +116323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[518].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[536].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRstCounter); i { case 0: return &v.state @@ -113803,7 +116335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[519].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[537].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRstMetricTag); i { case 0: return &v.state @@ -113815,7 +116347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[520].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[538].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRst); i { case 0: return &v.state @@ -113827,7 +116359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[521].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[539].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSynCounter); i { case 0: return &v.state @@ -113839,7 +116371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[522].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[540].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSynMetricTag); i { case 0: return &v.state @@ -113851,7 +116383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[523].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[541].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSyn); i { case 0: return &v.state @@ -113863,7 +116395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[524].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[542].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFinCounter); i { case 0: return &v.state @@ -113875,7 +116407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[525].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[543].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFinMetricTag); i { case 0: return &v.state @@ -113887,7 +116419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[526].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[544].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFin); i { case 0: return &v.state @@ -113899,7 +116431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[527].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[545].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindowCounter); i { case 0: return &v.state @@ -113911,7 +116443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[528].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[546].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindowMetricTag); i { case 0: return &v.state @@ -113923,7 +116455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[529].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[547].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindow); i { case 0: return &v.state @@ -113935,7 +116467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[530].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[548].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPortCounter); i { case 0: return &v.state @@ -113947,7 +116479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[531].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[549].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPortMetricTag); i { case 0: return &v.state @@ -113959,7 +116491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[532].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[550].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPort); i { case 0: return &v.state @@ -113971,7 +116503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[533].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[551].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPortCounter); i { case 0: return &v.state @@ -113983,7 +116515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[534].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[552].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPortMetricTag); i { case 0: return &v.state @@ -113995,7 +116527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[535].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[553].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPort); i { case 0: return &v.state @@ -114007,7 +116539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[536].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[554].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLengthCounter); i { case 0: return &v.state @@ -114019,7 +116551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[537].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[555].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLengthMetricTag); i { case 0: return &v.state @@ -114031,7 +116563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[538].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[556].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLength); i { case 0: return &v.state @@ -114043,7 +116575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[539].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[557].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum); i { case 0: return &v.state @@ -114055,7 +116587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[540].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[558].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresentCounter); i { case 0: return &v.state @@ -114067,7 +116599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[541].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[559].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresentMetricTag); i { case 0: return &v.state @@ -114079,7 +116611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[542].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[560].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresent); i { case 0: return &v.state @@ -114091,7 +116623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[543].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[561].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0Counter); i { case 0: return &v.state @@ -114103,7 +116635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[544].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[562].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0MetricTag); i { case 0: return &v.state @@ -114115,7 +116647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[545].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[563].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0); i { case 0: return &v.state @@ -114127,7 +116659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[546].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[564].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersionCounter); i { case 0: return &v.state @@ -114139,7 +116671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[547].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[565].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersionMetricTag); i { case 0: return &v.state @@ -114151,7 +116683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[548].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[566].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersion); i { case 0: return &v.state @@ -114163,7 +116695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[549].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[567].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocolCounter); i { case 0: return &v.state @@ -114175,7 +116707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[550].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[568].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocolMetricTag); i { case 0: return &v.state @@ -114187,7 +116719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[551].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[569].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocol); i { case 0: return &v.state @@ -114199,7 +116731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[552].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[570].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum); i { case 0: return &v.state @@ -114211,7 +116743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[553].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[571].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1Counter); i { case 0: return &v.state @@ -114223,7 +116755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[554].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[572].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1MetricTag); i { case 0: return &v.state @@ -114235,7 +116767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[555].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[573].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1); i { case 0: return &v.state @@ -114247,7 +116779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[556].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[574].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1VersionCounter); i { case 0: return &v.state @@ -114259,7 +116791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[557].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[575].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1VersionMetricTag); i { case 0: return &v.state @@ -114271,7 +116803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[558].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[576].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Version); i { case 0: return &v.state @@ -114283,7 +116815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[559].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[577].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolTypeCounter); i { case 0: return &v.state @@ -114295,7 +116827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[560].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[578].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolTypeMetricTag); i { case 0: return &v.state @@ -114307,7 +116839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[561].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[579].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolType); i { case 0: return &v.state @@ -114319,7 +116851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[562].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[580].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ReservedCounter); i { case 0: return &v.state @@ -114331,7 +116863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[563].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[581].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ReservedMetricTag); i { case 0: return &v.state @@ -114343,7 +116875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[564].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[582].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Reserved); i { case 0: return &v.state @@ -114355,7 +116887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[565].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[583].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlagCounter); i { case 0: return &v.state @@ -114367,7 +116899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[566].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[584].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlagMetricTag); i { case 0: return &v.state @@ -114379,7 +116911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[567].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[585].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlag); i { case 0: return &v.state @@ -114391,7 +116923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[568].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[586].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlagCounter); i { case 0: return &v.state @@ -114403,7 +116935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[569].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[587].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlagMetricTag); i { case 0: return &v.state @@ -114415,7 +116947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[570].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[588].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlag); i { case 0: return &v.state @@ -114427,7 +116959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[571].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[589].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlagCounter); i { case 0: return &v.state @@ -114439,7 +116971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[572].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[590].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlagMetricTag); i { case 0: return &v.state @@ -114451,7 +116983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[573].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[591].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlag); i { case 0: return &v.state @@ -114463,7 +116995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[574].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[592].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageTypeCounter); i { case 0: return &v.state @@ -114475,7 +117007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[575].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[593].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageTypeMetricTag); i { case 0: return &v.state @@ -114487,7 +117019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[576].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[594].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageType); i { case 0: return &v.state @@ -114499,7 +117031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[577].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[595].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLengthCounter); i { case 0: return &v.state @@ -114511,7 +117043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[578].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[596].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLengthMetricTag); i { case 0: return &v.state @@ -114523,7 +117055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[579].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[597].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLength); i { case 0: return &v.state @@ -114535,7 +117067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[580].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[598].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1TeidCounter); i { case 0: return &v.state @@ -114547,7 +117079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[581].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[599].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1TeidMetricTag); i { case 0: return &v.state @@ -114559,7 +117091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[582].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[600].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Teid); i { case 0: return &v.state @@ -114571,7 +117103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[583].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[601].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumberCounter); i { case 0: return &v.state @@ -114583,7 +117115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[584].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[602].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumberMetricTag); i { case 0: return &v.state @@ -114595,7 +117127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[585].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[603].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumber); i { case 0: return &v.state @@ -114607,7 +117139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[586].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[604].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumberCounter); i { case 0: return &v.state @@ -114619,7 +117151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[587].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[605].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumberMetricTag); i { case 0: return &v.state @@ -114631,7 +117163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[588].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[606].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumber); i { case 0: return &v.state @@ -114643,7 +117175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[589].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[607].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeCounter); i { case 0: return &v.state @@ -114655,7 +117187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[590].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[608].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag); i { case 0: return &v.state @@ -114667,7 +117199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[591].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[609].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType); i { case 0: return &v.state @@ -114679,7 +117211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[592].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[610].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLengthCounter); i { case 0: return &v.state @@ -114691,7 +117223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[593].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[611].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLengthMetricTag); i { case 0: return &v.state @@ -114703,7 +117235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[594].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[612].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLength); i { case 0: return &v.state @@ -114715,7 +117247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[595].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[613].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContentsCounter); i { case 0: return &v.state @@ -114727,7 +117259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[596].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[614].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContentsMetricTag); i { case 0: return &v.state @@ -114739,7 +117271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[597].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[615].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContents); i { case 0: return &v.state @@ -114751,7 +117283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[598].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[616].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderCounter); i { case 0: return &v.state @@ -114763,7 +117295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[599].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[617].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderMetricTag); i { case 0: return &v.state @@ -114775,7 +117307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[600].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[618].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader); i { case 0: return &v.state @@ -114787,7 +117319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[601].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[619].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2VersionCounter); i { case 0: return &v.state @@ -114799,7 +117331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[602].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[620].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2VersionMetricTag); i { case 0: return &v.state @@ -114811,7 +117343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[603].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[621].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Version); i { case 0: return &v.state @@ -114823,7 +117355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[604].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[622].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlagCounter); i { case 0: return &v.state @@ -114835,7 +117367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[605].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[623].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlagMetricTag); i { case 0: return &v.state @@ -114847,7 +117379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[606].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[624].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlag); i { case 0: return &v.state @@ -114859,7 +117391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[607].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[625].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlagCounter); i { case 0: return &v.state @@ -114871,7 +117403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[608].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[626].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlagMetricTag); i { case 0: return &v.state @@ -114883,7 +117415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[609].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[627].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlag); i { case 0: return &v.state @@ -114895,7 +117427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[610].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[628].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1Counter); i { case 0: return &v.state @@ -114907,7 +117439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[611].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[629].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1MetricTag); i { case 0: return &v.state @@ -114919,7 +117451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[612].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[630].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1); i { case 0: return &v.state @@ -114931,7 +117463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[613].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[631].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageTypeCounter); i { case 0: return &v.state @@ -114943,7 +117475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[614].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[632].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageTypeMetricTag); i { case 0: return &v.state @@ -114955,7 +117487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[615].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[633].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageType); i { case 0: return &v.state @@ -114967,7 +117499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[616].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[634].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLengthCounter); i { case 0: return &v.state @@ -114979,7 +117511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[617].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[635].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLengthMetricTag); i { case 0: return &v.state @@ -114991,7 +117523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[618].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[636].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLength); i { case 0: return &v.state @@ -115003,7 +117535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[619].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[637].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidCounter); i { case 0: return &v.state @@ -115015,7 +117547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[620].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[638].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidMetricTag); i { case 0: return &v.state @@ -115027,7 +117559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[621].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[639].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Teid); i { case 0: return &v.state @@ -115039,7 +117571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[622].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[640].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumberCounter); i { case 0: return &v.state @@ -115051,7 +117583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[623].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[641].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumberMetricTag); i { case 0: return &v.state @@ -115063,7 +117595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[624].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[642].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumber); i { case 0: return &v.state @@ -115075,7 +117607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[625].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[643].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2Counter); i { case 0: return &v.state @@ -115087,7 +117619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[626].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[644].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2MetricTag); i { case 0: return &v.state @@ -115099,7 +117631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[627].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[645].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2); i { case 0: return &v.state @@ -115111,7 +117643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[628].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[646].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareTypeCounter); i { case 0: return &v.state @@ -115123,7 +117655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[629].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[647].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareTypeMetricTag); i { case 0: return &v.state @@ -115135,7 +117667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[630].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[648].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareType); i { case 0: return &v.state @@ -115147,7 +117679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[631].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[649].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolTypeCounter); i { case 0: return &v.state @@ -115159,7 +117691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[632].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[650].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolTypeMetricTag); i { case 0: return &v.state @@ -115171,7 +117703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[633].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[651].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolType); i { case 0: return &v.state @@ -115183,7 +117715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[634].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[652].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLengthCounter); i { case 0: return &v.state @@ -115195,7 +117727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[635].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[653].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLengthMetricTag); i { case 0: return &v.state @@ -115207,7 +117739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[636].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[654].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLength); i { case 0: return &v.state @@ -115219,7 +117751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[637].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[655].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLengthCounter); i { case 0: return &v.state @@ -115231,7 +117763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[638].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[656].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLengthMetricTag); i { case 0: return &v.state @@ -115243,7 +117775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[639].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[657].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLength); i { case 0: return &v.state @@ -115255,7 +117787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[640].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[658].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperationCounter); i { case 0: return &v.state @@ -115267,7 +117799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[641].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[659].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperationMetricTag); i { case 0: return &v.state @@ -115279,7 +117811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[642].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[660].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperation); i { case 0: return &v.state @@ -115291,7 +117823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[643].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[661].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddrCounter); i { case 0: return &v.state @@ -115303,7 +117835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[644].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[662].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddrMetricTag); i { case 0: return &v.state @@ -115315,7 +117847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[645].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[663].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddr); i { case 0: return &v.state @@ -115327,7 +117859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[646].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[664].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddrCounter); i { case 0: return &v.state @@ -115339,7 +117871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[647].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[665].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddrMetricTag); i { case 0: return &v.state @@ -115351,7 +117883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[648].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[666].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddr); i { case 0: return &v.state @@ -115363,7 +117895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[649].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[667].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddrCounter); i { case 0: return &v.state @@ -115375,7 +117907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[650].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[668].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddrMetricTag); i { case 0: return &v.state @@ -115387,7 +117919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[651].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[669].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddr); i { case 0: return &v.state @@ -115399,7 +117931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[652].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[670].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddrCounter); i { case 0: return &v.state @@ -115411,7 +117943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[653].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[671].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddrMetricTag); i { case 0: return &v.state @@ -115423,7 +117955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[654].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[672].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddr); i { case 0: return &v.state @@ -115435,7 +117967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[655].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[673].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoTypeCounter); i { case 0: return &v.state @@ -115447,7 +117979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[656].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[674].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoTypeMetricTag); i { case 0: return &v.state @@ -115459,7 +117991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[657].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[675].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoType); i { case 0: return &v.state @@ -115471,7 +118003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[658].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[676].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCodeCounter); i { case 0: return &v.state @@ -115483,7 +118015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[659].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[677].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCodeMetricTag); i { case 0: return &v.state @@ -115495,7 +118027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[660].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[678].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCode); i { case 0: return &v.state @@ -115507,7 +118039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[661].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[679].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum); i { case 0: return &v.state @@ -115519,7 +118051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[662].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[680].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifierCounter); i { case 0: return &v.state @@ -115531,7 +118063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[663].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[681].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifierMetricTag); i { case 0: return &v.state @@ -115543,7 +118075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[664].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[682].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifier); i { case 0: return &v.state @@ -115555,7 +118087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[665].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[683].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumberCounter); i { case 0: return &v.state @@ -115567,7 +118099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[666].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[684].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumberMetricTag); i { case 0: return &v.state @@ -115579,7 +118111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[667].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[685].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumber); i { case 0: return &v.state @@ -115591,7 +118123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[668].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[686].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum); i { case 0: return &v.state @@ -115603,7 +118135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[669].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[687].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifierCounter); i { case 0: return &v.state @@ -115615,7 +118147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[670].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[688].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifierMetricTag); i { case 0: return &v.state @@ -115627,7 +118159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[671].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[689].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifier); i { case 0: return &v.state @@ -115639,7 +118171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[672].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[690].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberCounter); i { case 0: return &v.state @@ -115651,7 +118183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[673].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[691].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberMetricTag); i { case 0: return &v.state @@ -115663,7 +118195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[674].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[692].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber); i { case 0: return &v.state @@ -115675,7 +118207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[675].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[693].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoTypeCounter); i { case 0: return &v.state @@ -115687,7 +118219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[676].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[694].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoTypeMetricTag); i { case 0: return &v.state @@ -115699,7 +118231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[677].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[695].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoType); i { case 0: return &v.state @@ -115711,7 +118243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[678].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[696].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCodeCounter); i { case 0: return &v.state @@ -115723,7 +118255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[679].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[697].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCodeMetricTag); i { case 0: return &v.state @@ -115735,7 +118267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[680].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[698].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCode); i { case 0: return &v.state @@ -115747,7 +118279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[681].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[699].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifierCounter); i { case 0: return &v.state @@ -115759,7 +118291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[682].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[700].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifierMetricTag); i { case 0: return &v.state @@ -115771,7 +118303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[683].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[701].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifier); i { case 0: return &v.state @@ -115783,7 +118315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[684].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[702].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberCounter); i { case 0: return &v.state @@ -115795,7 +118327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[685].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[703].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberMetricTag); i { case 0: return &v.state @@ -115807,7 +118339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[686].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[704].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber); i { case 0: return &v.state @@ -115819,7 +118351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[687].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[705].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum); i { case 0: return &v.state @@ -115831,7 +118363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[688].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[706].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum); i { case 0: return &v.state @@ -115843,7 +118375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[689].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[707].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddressCounter); i { case 0: return &v.state @@ -115855,7 +118387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[690].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[708].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddressMetricTag); i { case 0: return &v.state @@ -115867,7 +118399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[691].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[709].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddress); i { case 0: return &v.state @@ -115879,7 +118411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[692].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[710].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControlCounter); i { case 0: return &v.state @@ -115891,7 +118423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[693].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[711].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControlMetricTag); i { case 0: return &v.state @@ -115903,7 +118435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[694].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[712].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControl); i { case 0: return &v.state @@ -115915,7 +118447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[695].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[713].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolTypeCounter); i { case 0: return &v.state @@ -115927,7 +118459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[696].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[714].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolTypeMetricTag); i { case 0: return &v.state @@ -115939,7 +118471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[697].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[715].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolType); i { case 0: return &v.state @@ -115951,7 +118483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[698].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[716].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1VersionCounter); i { case 0: return &v.state @@ -115963,7 +118495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[699].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[717].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1VersionMetricTag); i { case 0: return &v.state @@ -115975,7 +118507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[700].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[718].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Version); i { case 0: return &v.state @@ -115987,7 +118519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[701].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[719].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1TypeCounter); i { case 0: return &v.state @@ -115999,7 +118531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[702].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[720].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1TypeMetricTag); i { case 0: return &v.state @@ -116011,7 +118543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[703].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[721].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Type); i { case 0: return &v.state @@ -116023,7 +118555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[704].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[722].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1UnusedCounter); i { case 0: return &v.state @@ -116035,7 +118567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[705].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[723].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1UnusedMetricTag); i { case 0: return &v.state @@ -116047,7 +118579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[706].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[724].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Unused); i { case 0: return &v.state @@ -116059,7 +118591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[707].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[725].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum); i { case 0: return &v.state @@ -116071,7 +118603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[708].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[726].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddressCounter); i { case 0: return &v.state @@ -116083,7 +118615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[709].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[727].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddressMetricTag); i { case 0: return &v.state @@ -116095,7 +118627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[710].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[728].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddress); i { case 0: return &v.state @@ -116107,7 +118639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[711].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[729].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabelCounter); i { case 0: return &v.state @@ -116119,7 +118651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[712].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[730].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabelMetricTag); i { case 0: return &v.state @@ -116131,7 +118663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[713].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[731].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabel); i { case 0: return &v.state @@ -116143,7 +118675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[714].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[732].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClassCounter); i { case 0: return &v.state @@ -116155,7 +118687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[715].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[733].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClassMetricTag); i { case 0: return &v.state @@ -116167,7 +118699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[716].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[734].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClass); i { case 0: return &v.state @@ -116179,7 +118711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[717].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[735].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStackCounter); i { case 0: return &v.state @@ -116191,7 +118723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[718].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[736].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStackMetricTag); i { case 0: return &v.state @@ -116203,7 +118735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[719].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[737].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStack); i { case 0: return &v.state @@ -116215,7 +118747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[720].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[738].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLiveCounter); i { case 0: return &v.state @@ -116227,7 +118759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[721].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[739].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLiveMetricTag); i { case 0: return &v.state @@ -116239,7 +118771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[722].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[740].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLive); i { case 0: return &v.state @@ -116251,7 +118783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[723].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[741].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Version); i { case 0: return &v.state @@ -116263,7 +118795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[724].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[742].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Success); i { case 0: return &v.state @@ -116275,7 +118807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[725].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[743].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Failure); i { case 0: return &v.state @@ -116287,7 +118819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[726].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[744].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetConfigRequest); i { case 0: return &v.state @@ -116299,7 +118831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[727].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[745].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigRequest); i { case 0: return &v.state @@ -116311,7 +118843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[728].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[746].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetConfigResponse); i { case 0: return &v.state @@ -116323,7 +118855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[729].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[747].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetConfigResponse); i { case 0: return &v.state @@ -116335,7 +118867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[730].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[748].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigResponse); i { case 0: return &v.state @@ -116347,7 +118879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[731].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[749].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlStateRequest); i { case 0: return &v.state @@ -116359,7 +118891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[732].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[750].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlStateResponse); i { case 0: return &v.state @@ -116371,7 +118903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[733].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[751].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlActionRequest); i { case 0: return &v.state @@ -116383,7 +118915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[734].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[752].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlActionResponse); i { case 0: return &v.state @@ -116395,7 +118927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[735].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[753].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsRequest); i { case 0: return &v.state @@ -116407,7 +118939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[736].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[754].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsResponse); i { case 0: return &v.state @@ -116419,7 +118951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[737].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[755].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatesRequest); i { case 0: return &v.state @@ -116431,7 +118963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[738].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[756].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatesResponse); i { case 0: return &v.state @@ -116443,7 +118975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[739].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[757].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCaptureRequest); i { case 0: return &v.state @@ -116455,7 +118987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[740].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[758].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCaptureResponse); i { case 0: return &v.state @@ -116467,7 +118999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[741].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[759].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetVersionResponse); i { case 0: return &v.state @@ -116479,7 +119011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[742].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[760].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagProtocol_Choice); i { case 0: return &v.state @@ -116491,7 +119023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[743].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[761].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagPortLacp_ActorActivity); i { case 0: return &v.state @@ -116503,7 +119035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[744].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[762].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EthernetConnection_Choice); i { case 0: return &v.state @@ -116515,7 +119047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[745].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[763].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceVlan_Tpid); i { case 0: return &v.state @@ -116527,7 +119059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[746].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[764].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceIpv4GatewayMAC_Choice); i { case 0: return &v.state @@ -116539,7 +119071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[747].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[765].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceIpv6GatewayMAC_Choice); i { case 0: return &v.state @@ -116551,7 +119083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[748].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[766].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Speed); i { case 0: return &v.state @@ -116563,7 +119095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[749].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[767].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Media); i { case 0: return &v.state @@ -116575,7 +119107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[750].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[768].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1FlowControl_Choice); i { case 0: return &v.state @@ -116587,7 +119119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[751].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[769].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Capture_Format); i { case 0: return &v.state @@ -116599,7 +119131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[752].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[770].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaptureFilter_Choice); i { case 0: return &v.state @@ -116611,7 +119143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[753].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[771].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterface_NetworkType); i { case 0: return &v.state @@ -116623,7 +119155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[754].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[772].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterface_LevelType); i { case 0: return &v.state @@ -116635,7 +119167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[755].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[773].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterfaceAuthentication_AuthType); i { case 0: return &v.state @@ -116647,7 +119179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[756].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[774].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisAuthenticationBase_AuthType); i { case 0: return &v.state @@ -116659,7 +119191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[757].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[775].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV4RouteRange_OriginType); i { case 0: return &v.state @@ -116671,7 +119203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[758].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[776].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV4RouteRange_RedistributionType); i { case 0: return &v.state @@ -116683,7 +119215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[759].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[777].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV6RouteRange_OriginType); i { case 0: return &v.state @@ -116695,7 +119227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[760].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[778].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV6RouteRange_RedistributionType); i { case 0: return &v.state @@ -116707,7 +119239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[761].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[779].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpMessageHeaderError_Subcode); i { case 0: return &v.state @@ -116719,7 +119251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[762].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[780].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpOpenMessageError_Subcode); i { case 0: return &v.state @@ -116731,7 +119263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[763].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[781].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpUpdateMessageError_Subcode); i { case 0: return &v.state @@ -116743,7 +119275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[764].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[782].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpCeaseError_Subcode); i { case 0: return &v.state @@ -116755,7 +119287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[765].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[783].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4Peer_AsType); i { case 0: return &v.state @@ -116767,7 +119299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[766].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[784].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4Peer_AsNumberWidth); i { case 0: return &v.state @@ -116779,7 +119311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[767].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[785].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EthernetSegment_ActiveMode); i { case 0: return &v.state @@ -116791,7 +119323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[768].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[786].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteAdvanced_Origin); i { case 0: return &v.state @@ -116803,7 +119335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[769].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[787].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpCommunity_Type); i { case 0: return &v.state @@ -116815,7 +119347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[770].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[788].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtCommunity_Type); i { case 0: return &v.state @@ -116827,7 +119359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[771].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[789].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtCommunity_Subtype); i { case 0: return &v.state @@ -116839,7 +119371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[772].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[790].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAsPath_AsSetMode); i { case 0: return &v.state @@ -116851,7 +119383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[773].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[791].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAsPathSegment_Type); i { case 0: return &v.state @@ -116863,7 +119395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[774].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[792].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EvpnEvis_Choice); i { case 0: return &v.state @@ -116875,7 +119407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[775].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[793].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EviVxlan_ReplicationType); i { case 0: return &v.state @@ -116887,7 +119419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[776].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[794].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteDistinguisher_RdType); i { case 0: return &v.state @@ -116899,7 +119431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[777].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[795].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteTarget_RtType); i { case 0: return &v.state @@ -116911,7 +119443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[778].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[796].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4RouteRange_NextHopMode); i { case 0: return &v.state @@ -116923,8 +119455,92 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[779].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4RouteRange_NextHopAddressType); i { + file_otg_proto_msgTypes[797].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV4RouteRange_NextHopAddressType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[798].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunity_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[799].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[800].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[801].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[802].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[803].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveEvpnType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[804].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsType_Choice); i { case 0: return &v.state case 1: @@ -116935,7 +119551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[780].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[805].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange_NextHopMode); i { case 0: return &v.state @@ -116947,7 +119563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[781].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[806].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange_NextHopAddressType); i { case 0: return &v.state @@ -116959,7 +119575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[782].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[807].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy_NextHopMode); i { case 0: return &v.state @@ -116971,7 +119587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[783].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[808].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy_NextHopAddressType); i { case 0: return &v.state @@ -116983,7 +119599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[784].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[809].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteRemoteEndpointSubTlv_AddressFamily); i { case 0: return &v.state @@ -116995,7 +119611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[785].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[810].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteBindingSubTlv_BindingSidType); i { case 0: return &v.state @@ -117007,7 +119623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[786].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[811].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy); i { case 0: return &v.state @@ -117019,7 +119635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[787].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[812].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegment_SegmentType); i { case 0: return &v.state @@ -117031,7 +119647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[788].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[813].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy_NextHopMode); i { case 0: return &v.state @@ -117043,7 +119659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[789].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[814].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy_NextHopAddressType); i { case 0: return &v.state @@ -117055,7 +119671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[790].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[815].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer_AsType); i { case 0: return &v.state @@ -117067,7 +119683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[791].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[816].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer_AsNumberWidth); i { case 0: return &v.state @@ -117079,7 +119695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[792].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[817].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EthernetSegment_ActiveMode); i { case 0: return &v.state @@ -117091,7 +119707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[793].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[818].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EvpnEvis_Choice); i { case 0: return &v.state @@ -117103,7 +119719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[794].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[819].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlan_ReplicationType); i { case 0: return &v.state @@ -117115,7 +119731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[795].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[820].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPMode_Choice); i { case 0: return &v.state @@ -117127,7 +119743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[796].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[821].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPMode_Choice); i { case 0: return &v.state @@ -117139,7 +119755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[797].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[822].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle); i { case 0: return &v.state @@ -117151,7 +119767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[798].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[823].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEro_PrependNeighborIp); i { case 0: return &v.state @@ -117163,7 +119779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[799].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[824].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject_Type); i { case 0: return &v.state @@ -117175,7 +119791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[800].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[825].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject_HopType); i { case 0: return &v.state @@ -117187,7 +119803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[801].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[826].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTxRx_Choice); i { case 0: return &v.state @@ -117199,7 +119815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[802].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[827].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRouter_Mode); i { case 0: return &v.state @@ -117211,7 +119827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[803].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[828].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowHeader_Choice); i { case 0: return &v.state @@ -117223,7 +119839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[804].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[829].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Priority_Choice); i { case 0: return &v.state @@ -117235,7 +119851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[805].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[830].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmp_Choice); i { case 0: return &v.state @@ -117247,7 +119863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[806].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[831].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6_Choice); i { case 0: return &v.state @@ -117259,7 +119875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[807].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[832].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSize_Choice); i { case 0: return &v.state @@ -117271,7 +119887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[808].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[833].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs_Choice); i { case 0: return &v.state @@ -117283,7 +119899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[809].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[834].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs_Predefined); i { case 0: return &v.state @@ -117295,7 +119911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[810].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[835].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRate_Choice); i { case 0: return &v.state @@ -117307,7 +119923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[811].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[836].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDuration_Choice); i { case 0: return &v.state @@ -117319,7 +119935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[812].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[837].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDelay_Choice); i { case 0: return &v.state @@ -117331,7 +119947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[813].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[838].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDurationInterBurstGap_Choice); i { case 0: return &v.state @@ -117343,7 +119959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[814].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[839].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowLatencyMetrics_Mode); i { case 0: return &v.state @@ -117355,7 +119971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[815].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[840].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatio_Choice); i { case 0: return &v.state @@ -117367,7 +119983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[816].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[841].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRequest_Type); i { case 0: return &v.state @@ -117379,7 +119995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[817].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[842].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpConnection_Choice); i { case 0: return &v.state @@ -117391,7 +120007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[818].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[843].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisId_Choice); i { case 0: return &v.state @@ -117403,7 +120019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[819].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[844].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortId_Choice); i { case 0: return &v.state @@ -117415,7 +120031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[820].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[845].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisMacSubType_Choice); i { case 0: return &v.state @@ -117427,7 +120043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[821].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[846].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortInterfaceNameSubType_Choice); i { case 0: return &v.state @@ -117439,7 +120055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[822].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[847].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpSystemName_Choice); i { case 0: return &v.state @@ -117451,7 +120067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[823].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[848].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Error_Kind); i { case 0: return &v.state @@ -117463,7 +120079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[824].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[849].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigUpdate_Choice); i { case 0: return &v.state @@ -117475,7 +120091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[825].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[850].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowsUpdate_PropertyNames); i { case 0: return &v.state @@ -117487,7 +120103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[826].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[851].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlState_Choice); i { case 0: return &v.state @@ -117499,7 +120115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[827].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[852].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePort_Choice); i { case 0: return &v.state @@ -117511,7 +120127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[828].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[853].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTraffic_Choice); i { case 0: return &v.state @@ -117523,7 +120139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[829].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[854].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocol_Choice); i { case 0: return &v.state @@ -117535,7 +120151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[830].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[855].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortLink_State); i { case 0: return &v.state @@ -117547,7 +120163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[831].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[856].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortCapture_State); i { case 0: return &v.state @@ -117559,7 +120175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[832].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[857].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTrafficFlowTransmit_State); i { case 0: return &v.state @@ -117571,7 +120187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[833].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[858].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolAll_State); i { case 0: return &v.state @@ -117583,7 +120199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[834].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[859].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolRoute_State); i { case 0: return &v.state @@ -117595,7 +120211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[835].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[860].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacp_Choice); i { case 0: return &v.state @@ -117607,7 +120223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[836].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[861].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpAdmin_State); i { case 0: return &v.state @@ -117619,7 +120235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[837].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[862].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlAction_Choice); i { case 0: return &v.state @@ -117631,7 +120247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[838].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[863].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponse_Choice); i { case 0: return &v.state @@ -117643,7 +120259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[839].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[864].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocol_Choice); i { case 0: return &v.state @@ -117655,7 +120271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[840].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[865].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocol_Choice); i { case 0: return &v.state @@ -117667,7 +120283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[841].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[866].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4_Choice); i { case 0: return &v.state @@ -117679,7 +120295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[842].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[867].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4_Choice); i { case 0: return &v.state @@ -117691,7 +120307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[843].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[868].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4PingResponse_Result); i { case 0: return &v.state @@ -117703,7 +120319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[844].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[869].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6_Choice); i { case 0: return &v.state @@ -117715,7 +120331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[845].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[870].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6_Choice); i { case 0: return &v.state @@ -117727,7 +120343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[846].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[871].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6PingResponse_Result); i { case 0: return &v.state @@ -117739,7 +120355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[847].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[872].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgp_Choice); i { case 0: return &v.state @@ -117751,7 +120367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[848].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[873].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpNotification_Choice); i { case 0: return &v.state @@ -117763,7 +120379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[849].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[874].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsRequest_Choice); i { case 0: return &v.state @@ -117775,7 +120391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[850].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[875].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsResponse_Choice); i { case 0: return &v.state @@ -117787,7 +120403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[851].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[876].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117799,7 +120415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[852].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[877].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Link); i { case 0: return &v.state @@ -117811,7 +120427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[853].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[878].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Capture); i { case 0: return &v.state @@ -117823,7 +120439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[854].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[879].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Transmit); i { case 0: return &v.state @@ -117835,7 +120451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[855].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[880].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricsRequest_MetricNames); i { case 0: return &v.state @@ -117847,7 +120463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[856].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[881].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetricsFilter_MetricNames); i { case 0: return &v.state @@ -117859,7 +120475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[857].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[882].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetric_Transmit); i { case 0: return &v.state @@ -117871,7 +120487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[858].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[883].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagValue_Choice); i { case 0: return &v.state @@ -117883,7 +120499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[859].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[884].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4MetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117895,7 +120511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[860].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[885].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric_SessionState); i { case 0: return &v.state @@ -117907,7 +120523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[861].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[886].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric_FsmState); i { case 0: return &v.state @@ -117919,7 +120535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[862].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[887].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6MetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117931,7 +120547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[863].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[888].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric_SessionState); i { case 0: return &v.state @@ -117943,7 +120559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[864].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[889].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric_FsmState); i { case 0: return &v.state @@ -117955,7 +120571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[865].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[890].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117967,7 +120583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[866].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[891].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -117979,7 +120595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[867].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[892].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetric_OperStatus); i { case 0: return &v.state @@ -117991,7 +120607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[868].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[893].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -118003,7 +120619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[869].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[894].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Activity); i { case 0: return &v.state @@ -118015,7 +120631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[870].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[895].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Timeout); i { case 0: return &v.state @@ -118027,7 +120643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[871].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[896].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Synchronization); i { case 0: return &v.state @@ -118039,7 +120655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[872].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[897].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -118051,7 +120667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[873].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[898].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -118063,7 +120679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[874].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[899].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesRequest_Choice); i { case 0: return &v.state @@ -118075,7 +120691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[875].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[900].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesResponse_Choice); i { case 0: return &v.state @@ -118087,7 +120703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[876].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[901].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixStateRequest_PrefixFilters); i { case 0: return &v.state @@ -118099,7 +120715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[877].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[902].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastFilter_Origin); i { case 0: return &v.state @@ -118111,7 +120727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[878].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[903].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastFilter_Origin); i { case 0: return &v.state @@ -118123,7 +120739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[879].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[904].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastState_Origin); i { case 0: return &v.state @@ -118135,7 +120751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[880].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[905].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastState_Origin); i { case 0: return &v.state @@ -118147,7 +120763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[881].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[906].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpCommunity_Type); i { case 0: return &v.state @@ -118159,7 +120775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[882].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[907].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPathSegment_Type); i { case 0: return &v.state @@ -118171,7 +120787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[883].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[908].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspState_PduType); i { case 0: return &v.state @@ -118183,7 +120799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[884].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[909].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix_RedistributionType); i { case 0: return &v.state @@ -118195,7 +120811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[885].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[910].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix_OriginType); i { case 0: return &v.state @@ -118207,7 +120823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[886].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[911].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedV4Prefix_RedistributionType); i { case 0: return &v.state @@ -118219,7 +120835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[887].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[912].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix_RedistributionType); i { case 0: return &v.state @@ -118231,7 +120847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[888].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[913].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix_OriginType); i { case 0: return &v.state @@ -118243,7 +120859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[889].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[914].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState_ChassisIdType); i { case 0: return &v.state @@ -118255,7 +120871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[890].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[915].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState_PortIdType); i { case 0: return &v.state @@ -118267,7 +120883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[891].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[916].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCapabilityState_CapabilityName); i { case 0: return &v.state @@ -118279,7 +120895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[892].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[917].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState_SessionStatus); i { case 0: return &v.state @@ -118291,7 +120907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[893].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[918].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState_LastFlapReason); i { case 0: return &v.state @@ -118303,7 +120919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[894].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[919].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Ero_Type); i { case 0: return &v.state @@ -118315,7 +120931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[895].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[920].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDst_Choice); i { case 0: return &v.state @@ -118327,7 +120943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[896].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[921].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrc_Choice); i { case 0: return &v.state @@ -118339,7 +120955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[897].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[922].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherType_Choice); i { case 0: return &v.state @@ -118351,7 +120967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[898].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[923].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueue_Choice); i { case 0: return &v.state @@ -118363,7 +120979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[899].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[924].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriority_Choice); i { case 0: return &v.state @@ -118375,7 +120991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[900].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[925].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfi_Choice); i { case 0: return &v.state @@ -118387,7 +121003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[901].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[926].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanId_Choice); i { case 0: return &v.state @@ -118399,7 +121015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[902].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[927].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpid_Choice); i { case 0: return &v.state @@ -118411,7 +121027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[903].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[928].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlags_Choice); i { case 0: return &v.state @@ -118423,7 +121039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[904].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[929].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0_Choice); i { case 0: return &v.state @@ -118435,7 +121051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[905].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[930].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVni_Choice); i { case 0: return &v.state @@ -118447,7 +121063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[906].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[931].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1_Choice); i { case 0: return &v.state @@ -118459,7 +121075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[907].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[932].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Version_Choice); i { case 0: return &v.state @@ -118471,7 +121087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[908].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[933].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLength_Choice); i { case 0: return &v.state @@ -118483,7 +121099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[909].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[934].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLength_Choice); i { case 0: return &v.state @@ -118495,7 +121111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[910].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[935].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Identification_Choice); i { case 0: return &v.state @@ -118507,7 +121123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[911].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[936].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Reserved_Choice); i { case 0: return &v.state @@ -118519,7 +121135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[912].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[937].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragment_Choice); i { case 0: return &v.state @@ -118531,7 +121147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[913].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[938].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragments_Choice); i { case 0: return &v.state @@ -118543,7 +121159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[914].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[939].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffset_Choice); i { case 0: return &v.state @@ -118555,7 +121171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[915].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[940].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLive_Choice); i { case 0: return &v.state @@ -118567,7 +121183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[916].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[941].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Protocol_Choice); i { case 0: return &v.state @@ -118579,7 +121195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[917].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[942].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum_Choice); i { case 0: return &v.state @@ -118591,7 +121207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[918].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[943].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum_Generated); i { case 0: return &v.state @@ -118603,7 +121219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[919].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[944].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Src_Choice); i { case 0: return &v.state @@ -118615,7 +121231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[920].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[945].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Dst_Choice); i { case 0: return &v.state @@ -118627,7 +121243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[921].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[946].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRaw_Choice); i { case 0: return &v.state @@ -118639,7 +121255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[922].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[947].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhb_Choice); i { case 0: return &v.state @@ -118651,7 +121267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[923].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[948].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcn_Choice); i { case 0: return &v.state @@ -118663,7 +121279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[924].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[949].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedence_Choice); i { case 0: return &v.state @@ -118675,7 +121291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[925].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[950].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelay_Choice); i { case 0: return &v.state @@ -118687,7 +121303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[926].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[951].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughput_Choice); i { case 0: return &v.state @@ -118699,7 +121315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[927].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[952].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliability_Choice); i { case 0: return &v.state @@ -118711,7 +121327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[928].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[953].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetary_Choice); i { case 0: return &v.state @@ -118723,7 +121339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[929].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[954].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnused_Choice); i { case 0: return &v.state @@ -118735,7 +121351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[930].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[955].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Version_Choice); i { case 0: return &v.state @@ -118747,7 +121363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[931].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[956].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClass_Choice); i { case 0: return &v.state @@ -118759,7 +121375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[932].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[957].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabel_Choice); i { case 0: return &v.state @@ -118771,7 +121387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[933].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[958].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLength_Choice); i { case 0: return &v.state @@ -118783,7 +121399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[934].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[959].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeader_Choice); i { case 0: return &v.state @@ -118795,7 +121411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[935].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[960].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimit_Choice); i { case 0: return &v.state @@ -118807,7 +121423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[936].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[961].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Src_Choice); i { case 0: return &v.state @@ -118819,7 +121435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[937].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[962].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Dst_Choice); i { case 0: return &v.state @@ -118831,7 +121447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[938].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[963].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDst_Choice); i { case 0: return &v.state @@ -118843,7 +121459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[939].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[964].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrc_Choice); i { case 0: return &v.state @@ -118855,7 +121471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[940].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[965].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherType_Choice); i { case 0: return &v.state @@ -118867,7 +121483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[941].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[966].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCode_Choice); i { case 0: return &v.state @@ -118879,7 +121495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[942].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[967].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVector_Choice); i { case 0: return &v.state @@ -118891,7 +121507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[943].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[968].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0_Choice); i { case 0: return &v.state @@ -118903,7 +121519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[944].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[969].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1_Choice); i { case 0: return &v.state @@ -118915,7 +121531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[945].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[970].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2_Choice); i { case 0: return &v.state @@ -118927,7 +121543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[946].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[971].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3_Choice); i { case 0: return &v.state @@ -118939,7 +121555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[947].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[972].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4_Choice); i { case 0: return &v.state @@ -118951,7 +121567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[948].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[973].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5_Choice); i { case 0: return &v.state @@ -118963,7 +121579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[949].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[974].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6_Choice); i { case 0: return &v.state @@ -118975,7 +121591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[950].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[975].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7_Choice); i { case 0: return &v.state @@ -118987,7 +121603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[951].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[976].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDst_Choice); i { case 0: return &v.state @@ -118999,7 +121615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[952].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[977].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrc_Choice); i { case 0: return &v.state @@ -119011,7 +121627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[953].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[978].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherType_Choice); i { case 0: return &v.state @@ -119023,7 +121639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[954].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[979].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCode_Choice); i { case 0: return &v.state @@ -119035,7 +121651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[955].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[980].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTime_Choice); i { case 0: return &v.state @@ -119047,7 +121663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[956].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[981].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPort_Choice); i { case 0: return &v.state @@ -119059,7 +121675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[957].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[982].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPort_Choice); i { case 0: return &v.state @@ -119071,7 +121687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[958].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[983].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNum_Choice); i { case 0: return &v.state @@ -119083,7 +121699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[959].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[984].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNum_Choice); i { case 0: return &v.state @@ -119095,7 +121711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[960].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[985].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffset_Choice); i { case 0: return &v.state @@ -119107,7 +121723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[961].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[986].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNs_Choice); i { case 0: return &v.state @@ -119119,7 +121735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[962].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[987].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwr_Choice); i { case 0: return &v.state @@ -119131,7 +121747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[963].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[988].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEcho_Choice); i { case 0: return &v.state @@ -119143,7 +121759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[964].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[989].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrg_Choice); i { case 0: return &v.state @@ -119155,7 +121771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[965].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[990].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAck_Choice); i { case 0: return &v.state @@ -119167,7 +121783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[966].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[991].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPsh_Choice); i { case 0: return &v.state @@ -119179,7 +121795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[967].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[992].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRst_Choice); i { case 0: return &v.state @@ -119191,7 +121807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[968].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[993].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSyn_Choice); i { case 0: return &v.state @@ -119203,7 +121819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[969].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[994].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFin_Choice); i { case 0: return &v.state @@ -119215,7 +121831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[970].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[995].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindow_Choice); i { case 0: return &v.state @@ -119227,7 +121843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[971].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[996].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPort_Choice); i { case 0: return &v.state @@ -119239,7 +121855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[972].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[997].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPort_Choice); i { case 0: return &v.state @@ -119251,7 +121867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[973].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[998].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLength_Choice); i { case 0: return &v.state @@ -119263,7 +121879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[974].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[999].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum_Choice); i { case 0: return &v.state @@ -119275,7 +121891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[975].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1000].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum_Generated); i { case 0: return &v.state @@ -119287,7 +121903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[976].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1001].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresent_Choice); i { case 0: return &v.state @@ -119299,7 +121915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[977].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1002].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0_Choice); i { case 0: return &v.state @@ -119311,7 +121927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[978].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1003].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersion_Choice); i { case 0: return &v.state @@ -119323,7 +121939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[979].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1004].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocol_Choice); i { case 0: return &v.state @@ -119335,7 +121951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[980].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1005].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum_Choice); i { case 0: return &v.state @@ -119347,7 +121963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[981].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1006].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum_Generated); i { case 0: return &v.state @@ -119359,7 +121975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[982].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1007].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1_Choice); i { case 0: return &v.state @@ -119371,7 +121987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[983].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1008].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Version_Choice); i { case 0: return &v.state @@ -119383,7 +121999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[984].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1009].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolType_Choice); i { case 0: return &v.state @@ -119395,7 +122011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[985].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1010].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Reserved_Choice); i { case 0: return &v.state @@ -119407,7 +122023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[986].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1011].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlag_Choice); i { case 0: return &v.state @@ -119419,7 +122035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[987].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1012].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlag_Choice); i { case 0: return &v.state @@ -119431,7 +122047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[988].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1013].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlag_Choice); i { case 0: return &v.state @@ -119443,7 +122059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[989].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1014].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageType_Choice); i { case 0: return &v.state @@ -119455,7 +122071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[990].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1015].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLength_Choice); i { case 0: return &v.state @@ -119467,7 +122083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[991].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1016].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Teid_Choice); i { case 0: return &v.state @@ -119479,7 +122095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[992].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1017].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumber_Choice); i { case 0: return &v.state @@ -119491,7 +122107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[993].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1018].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumber_Choice); i { case 0: return &v.state @@ -119503,7 +122119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[994].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1019].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType_Choice); i { case 0: return &v.state @@ -119515,7 +122131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[995].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1020].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLength_Choice); i { case 0: return &v.state @@ -119527,7 +122143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[996].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1021].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContents_Choice); i { case 0: return &v.state @@ -119539,7 +122155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[997].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1022].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader_Choice); i { case 0: return &v.state @@ -119551,7 +122167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[998].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1023].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Version_Choice); i { case 0: return &v.state @@ -119563,7 +122179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[999].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1024].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlag_Choice); i { case 0: return &v.state @@ -119575,7 +122191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1000].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1025].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlag_Choice); i { case 0: return &v.state @@ -119587,7 +122203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1001].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1026].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1_Choice); i { case 0: return &v.state @@ -119599,7 +122215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1002].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1027].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageType_Choice); i { case 0: return &v.state @@ -119611,7 +122227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1003].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1028].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLength_Choice); i { case 0: return &v.state @@ -119623,7 +122239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1004].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1029].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Teid_Choice); i { case 0: return &v.state @@ -119635,7 +122251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1005].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1030].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumber_Choice); i { case 0: return &v.state @@ -119647,7 +122263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1006].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1031].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2_Choice); i { case 0: return &v.state @@ -119659,7 +122275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1007].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1032].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareType_Choice); i { case 0: return &v.state @@ -119671,7 +122287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1008].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1033].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolType_Choice); i { case 0: return &v.state @@ -119683,7 +122299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1009].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1034].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLength_Choice); i { case 0: return &v.state @@ -119695,7 +122311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1010].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1035].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLength_Choice); i { case 0: return &v.state @@ -119707,7 +122323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1011].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1036].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperation_Choice); i { case 0: return &v.state @@ -119719,7 +122335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1012].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1037].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddr_Choice); i { case 0: return &v.state @@ -119731,7 +122347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1013].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1038].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddr_Choice); i { case 0: return &v.state @@ -119743,7 +122359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1014].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1039].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddr_Choice); i { case 0: return &v.state @@ -119755,7 +122371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1015].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1040].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddr_Choice); i { case 0: return &v.state @@ -119767,7 +122383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1016].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1041].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoType_Choice); i { case 0: return &v.state @@ -119779,7 +122395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1017].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1042].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCode_Choice); i { case 0: return &v.state @@ -119791,7 +122407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1018].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1043].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum_Choice); i { case 0: return &v.state @@ -119803,7 +122419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1019].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1044].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum_Generated); i { case 0: return &v.state @@ -119815,7 +122431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1020].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1045].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifier_Choice); i { case 0: return &v.state @@ -119827,7 +122443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1021].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1046].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumber_Choice); i { case 0: return &v.state @@ -119839,7 +122455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1022].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1047].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum_Choice); i { case 0: return &v.state @@ -119851,7 +122467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1023].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1048].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum_Generated); i { case 0: return &v.state @@ -119863,7 +122479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1024].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1049].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifier_Choice); i { case 0: return &v.state @@ -119875,7 +122491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1025].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1050].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber_Choice); i { case 0: return &v.state @@ -119887,7 +122503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1026].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1051].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoType_Choice); i { case 0: return &v.state @@ -119899,7 +122515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1027].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1052].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCode_Choice); i { case 0: return &v.state @@ -119911,7 +122527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1028].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1053].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifier_Choice); i { case 0: return &v.state @@ -119923,7 +122539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1029].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1054].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber_Choice); i { case 0: return &v.state @@ -119935,7 +122551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1030].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1055].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum_Choice); i { case 0: return &v.state @@ -119947,7 +122563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1031].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1056].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum_Generated); i { case 0: return &v.state @@ -119959,7 +122575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1032].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1057].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum_Choice); i { case 0: return &v.state @@ -119971,7 +122587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1033].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1058].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum_Generated); i { case 0: return &v.state @@ -119983,7 +122599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1034].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1059].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddress_Choice); i { case 0: return &v.state @@ -119995,7 +122611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1035].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1060].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControl_Choice); i { case 0: return &v.state @@ -120007,7 +122623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1036].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1061].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolType_Choice); i { case 0: return &v.state @@ -120019,7 +122635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1037].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1062].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Version_Choice); i { case 0: return &v.state @@ -120031,7 +122647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1038].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1063].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Type_Choice); i { case 0: return &v.state @@ -120043,7 +122659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1039].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1064].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Unused_Choice); i { case 0: return &v.state @@ -120055,7 +122671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1040].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1065].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum_Choice); i { case 0: return &v.state @@ -120067,7 +122683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1041].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1066].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum_Generated); i { case 0: return &v.state @@ -120079,7 +122695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1042].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1067].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddress_Choice); i { case 0: return &v.state @@ -120091,7 +122707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1043].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1068].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabel_Choice); i { case 0: return &v.state @@ -120103,7 +122719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1044].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1069].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClass_Choice); i { case 0: return &v.state @@ -120115,7 +122731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1045].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1070].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStack_Choice); i { case 0: return &v.state @@ -120127,7 +122743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1046].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1071].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLive_Choice); i { case 0: return &v.state @@ -120246,36 +122862,37 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[108].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[109].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[110].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[111].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[112].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[113].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[114].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[115].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[116].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[117].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[118].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[119].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[120].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[121].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[122].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[123].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[124].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[125].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[126].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[127].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[128].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[129].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[130].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[131].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[132].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[133].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[134].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[135].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[136].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[137].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[138].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[139].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[140].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[141].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[142].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[143].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[144].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[145].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[146].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[147].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[148].OneofWrappers = []interface{}{} @@ -120293,7 +122910,6 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[160].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[161].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[162].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[163].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[164].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[165].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[166].OneofWrappers = []interface{}{} @@ -120318,10 +122934,12 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[185].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[186].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[187].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[188].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[189].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[190].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[191].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[192].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[193].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[194].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[195].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[196].OneofWrappers = []interface{}{} @@ -120331,91 +122949,89 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[200].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[201].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[202].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[203].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[204].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[206].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[205].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[207].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[208].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[209].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[210].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[212].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[213].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[214].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[215].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[216].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[217].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[218].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[219].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[220].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[221].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[222].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[223].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[224].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[225].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[228].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[229].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[231].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[234].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[226].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[227].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[233].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[235].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[236].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[237].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[238].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[239].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[240].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[241].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[242].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[243].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[244].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[245].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[246].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[247].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[248].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[249].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[251].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[252].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[253].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[254].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[255].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[257].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[256].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[258].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[259].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[260].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[261].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[262].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[263].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[264].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[265].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[266].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[267].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[269].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[271].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[272].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[273].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[274].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[275].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[276].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[278].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[280].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[277].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[279].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[281].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[282].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[283].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[284].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[285].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[287].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[289].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[290].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[291].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[292].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[293].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[294].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[295].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[297].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[296].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[298].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[299].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[301].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[302].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[303].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[304].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[305].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[307].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[308].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[309].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[310].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[311].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[312].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[313].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[314].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[315].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[316].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[317].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[318].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[319].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[320].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[321].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[322].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[323].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[324].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[325].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[326].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[327].OneofWrappers = []interface{}{} @@ -120815,13 +123431,31 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[721].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[722].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[723].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[724].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[725].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[726].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[727].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[728].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[729].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[730].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[731].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[732].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[733].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[734].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[735].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[736].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[737].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[738].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[739].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[740].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[741].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_otg_proto_rawDesc, - NumEnums: 305, - NumMessages: 1047, + NumEnums: 312, + NumMessages: 1072, NumExtensions: 0, NumServices: 1, }, diff --git a/gosnappi/otg/otg.proto b/gosnappi/otg/otg.proto index 2ae7eda1..f0b67815 100644 --- a/gosnappi/otg/otg.proto +++ b/gosnappi/otg/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.12.2 +/* Open Traffic Generator API 0.12.3 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -2595,6 +2595,10 @@ message BgpV4RouteRange { // required = true string name = 10; + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // // Optional Extended Community settings. The Extended Communities Attribute is a transitive // optional BGP attribute, with the Type Code 16. Community and Extended Communities // attributes are utilized to trigger routing decisions, such as acceptance, rejection, @@ -2624,6 +2628,16 @@ message BgpV4RouteRange { // occur for the same MAC address. Note evpn type is defined mainly for use with evpn // route updates and not for IPv4 and IPv6 route updates. repeated BgpExtCommunity ext_communities = 11; + + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six bytes carry a unique set of data in a format + // defined by the type and sub-type field. Extended communities provide a larger range + // for grouping or categorizing communities. + repeated BgpExtendedCommunity extended_communities = 12; } // The BGP Additional Paths feature is a BGP extension that allows the advertisement @@ -2636,6 +2650,354 @@ message BgpAddPath { optional uint32 path_id = 1; } +// The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 +// with the Type Code 16. Community and Extended Communities attributes are utilized +// to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. +// An extended community is an 8-Bytes value.It is divided into two main parts. The +// first 2 Bytes of the community encode a type and optonal sub-type field. The last +// 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a +// format defined by the type and optional sub-type field. Extended communities provide +// a larger range for grouping or categorizing communities. +message BgpExtendedCommunity { + + message Choice { + enum Enum { + unspecified = 0; + transitive_2octet_as_type = 1; + transitive_ipv4_address_type = 2; + transitive_4octet_as_type = 3; + transitive_opaque_type = 4; + transitive_evpn_type = 5; + non_transitive_2octet_as_type = 6; + custom = 7; + } + } + // Description missing in models + // default = Choice.Enum.transitive_2octet_as_type + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitive2OctetAsType transitive_2octet_as_type = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitiveIpv4AddressType transitive_ipv4_address_type = 3; + + // Description missing in models + optional BgpExtendedCommunityTransitive4OctetAsType transitive_4octet_as_type = 4; + + // Description missing in models + optional BgpExtendedCommunityTransitiveOpaqueType transitive_opaque_type = 5; + + // Description missing in models + optional BgpExtendedCommunityTransitiveEvpnType transitive_evpn_type = 6; + + // Description missing in models + optional BgpExtendedCommunityNonTransitive2OctetAsType non_transitive_2octet_as_type = 7; + + // Description missing in models + optional BgpExtendedCommunityCustomType custom = 8; +} + +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02. +message BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + + // The two octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + optional uint32 global_2byte_as = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_4byte_admin = 2; +} + +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP. It is sent with sub-type as 0x03 . +message BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { + + // The two octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + optional uint32 global_2byte_as = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_4byte_admin = 2; +} + +// The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +// +message BgpExtendedCommunityTransitive2OctetAsType { + + message Choice { + enum Enum { + unspecified = 0; + route_target_subtype = 1; + route_origin_subtype = 2; + } + } + // Description missing in models + // default = Choice.Enum.route_target_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget route_target_subtype = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin route_origin_subtype = 3; +} + +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP It is sent with sub-type as 0x03. +message BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + + // An IPv4 unicast address assigned by one of the Internet registries. + // default = 0.0.0.0 + optional string global_ipv4_admin = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the IP address carried in the Global Administrator + // sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_2byte_admin = 2; +} + +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02. +message BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + + // An IPv4 unicast address assigned by one of the Internet registries. + // default = 0.0.0.0 + optional string global_ipv4_admin = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the IP address carried in the Global Administrator + // sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_2byte_admin = 2; +} + +// The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +message BgpExtendedCommunityTransitiveIpv4AddressType { + + message Choice { + enum Enum { + unspecified = 0; + route_target_subtype = 1; + route_origin_subtype = 2; + } + } + // Description missing in models + // default = Choice.Enum.route_target_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget route_target_subtype = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin route_origin_subtype = 3; +} + +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP. It is sent with sub-type as +// 0x02 +message BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + optional uint32 global_4byte_as = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_2byte_admin = 2; +} + +// The Route Origin Community identifies one or more routers that inject a set of routes +// (that carry this Community) into BGP. It is sent with sub-type as 0x03. +message BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + optional uint32 global_4byte_as = 1; + + // The Local Administrator sub-field contains a number from a numbering space that is + // administered by the organization to which the Autonomous System number carried in + // the Global Administrator sub-field has been assigned by an appropriate authority. + // default = 1 + optional uint32 local_2byte_admin = 2; +} + +// The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It +// is defined in RFC 5668. +message BgpExtendedCommunityTransitive4OctetAsType { + + message Choice { + enum Enum { + unspecified = 0; + route_target_subtype = 1; + route_origin_subtype = 2; + } + } + // Description missing in models + // default = Choice.Enum.route_target_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget route_target_subtype = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin route_origin_subtype = 3; +} + +// The Color Community contains locally administrator defined 'color' value which is +// used in conjunction with Encapsulation attribute to decide whether a data packet +// can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent +// with sub-type as 0x0b. +message BgpExtendedCommunityTransitiveOpaqueTypeColor { + + // Two octet flag values. + // default = 0 + optional uint32 flags = 1; + + // The color value is user defined and configured locally and used to determine whether + // a data packet can be transmitted on a certain tunnel or not in conjunction with the + // Encapsulation attribute. It is defined in RFC9012. + // default = 0 + optional uint32 color = 2; +} + +// This identifies the type of tunneling technology being signalled. It is defined in +// RFC9012 and sent with sub-type as 0x0c. +message BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + + // Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. + // + // default = 0 + optional uint32 reserved = 1; + + // Identifies the type of tunneling technology being signalled. Initially defined in + // RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 + // over IP [RFC9012], + // 2 GRE [RFC9012] + // 7 IP in IP [RFC9012] + // 8 VXLAN Encapsulation [RFC8365] + // 9 NVGRE Encapsulation [RFC8365] + // 10 MPLS Encapsulation [RFC8365] + // 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] + // 19 Geneve Encapsulation [RFC8926] + // default = 1 + optional uint32 tunnel_type = 2; +} + +// The Transitive Opaque Extended Community is sent as type 0x03. +message BgpExtendedCommunityTransitiveOpaqueType { + + message Choice { + enum Enum { + unspecified = 0; + color_subtype = 1; + encapsulation_subtype = 2; + } + } + // Description missing in models + // default = Choice.Enum.color_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitiveOpaqueTypeColor color_subtype = 2; + + // Description missing in models + optional BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation encapsulation_subtype = 3; +} + +// The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN +// Type-2 Routes . It is sent with sub-type 0x03. +message BgpExtendedCommunityTransitiveEvpnTypeRouterMac { + + // MAC Address of the PE Router. + // default = 0:0:0:0:0:0 + optional string router_mac = 1; +} + +// The Transitive EVPN Extended Community is sent as type 0x06 . +message BgpExtendedCommunityTransitiveEvpnType { + + message Choice { + enum Enum { + unspecified = 0; + router_mac_subtype = 1; + } + } + // Description missing in models + // default = Choice.Enum.router_mac_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityTransitiveEvpnTypeRouterMac router_mac_subtype = 2; +} + +// The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. +// It is sent with sub-type as 0x04. +message BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + + // The value of the Global Administrator subfield should represent the Autonomous System + // of the router that attaches the Link Bandwidth Community. If four octet AS numbering + // scheme is used, AS_TRANS (23456) should be used. + // default = 100 + optional uint32 global_2byte_as = 1; + + // Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and + // 1 Mbps is 1000 Kbps per second ) + // default = 0 + optional float bandwidth = 2; +} + +// The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +// +message BgpExtendedCommunityNonTransitive2OctetAsType { + + message Choice { + enum Enum { + unspecified = 0; + link_bandwidth_subtype = 1; + } + } + // Description missing in models + // default = Choice.Enum.link_bandwidth_subtype + optional Choice.Enum choice = 1; + + // Description missing in models + optional BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth link_bandwidth_subtype = 2; +} + +// Add a custom Extended Community with a combination of types , sub-types and values +// not explicitly specified above or not defined yet. +message BgpExtendedCommunityCustomType { + + // The type to be set in the Extended Community attribute. Accepts hexadecimal input + // upto ff . + // default = 00 + optional string community_type = 1; + + // The sub-type to be set in the Extended Community attribute. For certain types with + // no sub-type this byte can also be used as part of an extended value field. Accepts + // hexadecimal input upto ff. + // default = 00 + optional string community_subtype = 2; + + // 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts + // hexadecimal input upto ffffffffffff. + // default = 000000000000 + optional string value = 3; +} + // Emulated BGPv6 route range. message BgpV6RouteRange { @@ -2696,6 +3058,10 @@ message BgpV6RouteRange { // required = true string name = 10; + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // // Optional Extended Community settings. The Extended Communities Attribute is a transitive // optional BGP attribute, with the Type Code 16. Community and Extended Communities // attributes are utilized to trigger routing decisions, such as acceptance, rejection, @@ -2725,6 +3091,16 @@ message BgpV6RouteRange { // occur for the same MAC address. Note evpn type is defined mainly for use with evpn // route updates and not for IPv4 and IPv6 route updates. repeated BgpExtCommunity ext_communities = 11; + + // Optional Extended Community settings. The Extended Communities Attribute is a transitive + // optional BGP attribute, with the Type Code 16. Community and Extended Communities + // attributes are utilized to trigger routing decisions, such as acceptance, rejection, + // preference, or redistribution. An extended community is an eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six bytes carry a unique set of data in a format + // defined by the type and sub-type field. Extended communities provide a larger range + // for grouping or categorizing communities. + repeated BgpExtendedCommunity extended_communities = 12; } // Configuration for BGP Segment Routing Traffic Engineering(SRTE) diff --git a/requirements.txt b/requirements.txt index 0611e78f..6af84746 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ --prefer-binary -protobuf~=3.15.0 ; python_version <= '3.6' -protobuf~=4.23.3 ; python_version > '3.6' -requests PyYAML -grpcio~=1.54.2 ; python_version > '3.6' grpcio-tools~=1.54.2 ; python_version > '3.6' -grpcio~=1.35.0 ; python_version <= '3.6' grpcio-tools~=1.35.0 ; python_version <= '3.6' +grpcio~=1.54.2 ; python_version > '3.6' +grpcio~=1.35.0 ; python_version <= '3.6' +requests +protobuf~=4.23.3 ; python_version > '3.6' +protobuf~=3.15.0 ; python_version <= '3.6' semantic_version urllib3 diff --git a/snappi/__init__.py b/snappi/__init__.py index 32b6556f..9d745dc0 100644 --- a/snappi/__init__.py +++ b/snappi/__init__.py @@ -97,6 +97,25 @@ from .snappi import BgpLearnedInformationFilter from .snappi import BgpV4RouteRange from .snappi import BgpAddPath +from .snappi import BgpExtendedCommunity +from .snappi import BgpExtendedCommunityTransitive2OctetAsType +from .snappi import BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +from .snappi import BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +from .snappi import BgpExtendedCommunityTransitiveIpv4AddressType +from .snappi import BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +from .snappi import BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +from .snappi import BgpExtendedCommunityTransitive4OctetAsType +from .snappi import BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +from .snappi import BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +from .snappi import BgpExtendedCommunityTransitiveOpaqueType +from .snappi import BgpExtendedCommunityTransitiveOpaqueTypeColor +from .snappi import BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +from .snappi import BgpExtendedCommunityTransitiveEvpnType +from .snappi import BgpExtendedCommunityTransitiveEvpnTypeRouterMac +from .snappi import BgpExtendedCommunityNonTransitive2OctetAsType +from .snappi import BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +from .snappi import BgpExtendedCommunityCustomType +from .snappi import BgpExtendedCommunityIter from .snappi import BgpV4RouteRangeIter from .snappi import BgpV6RouteRange from .snappi import BgpV6RouteRangeIter diff --git a/snappi/docs/openapi.yaml b/snappi/docs/openapi.yaml index b23f5308..d101c4c6 100644 --- a/snappi/docs/openapi.yaml +++ b/snappi/docs/openapi.yaml @@ -7,7 +7,7 @@ info: \ issue](https://github.com/open-traffic-generator/models/issues) in the models\ \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\ \ and submit a PR" - version: 0.12.2 + version: 0.12.3 contact: url: https://github.com/open-traffic-generator/models license: @@ -3739,12 +3739,33 @@ components: pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global ext_communities: + x-status: + status: deprecated + information: This property is deprecated in favor of property extended_communities x-field-uid: 11 description: |- + Deprecated: This property is deprecated in favor of property extended_communities + + Deprecated: This property is deprecated in favor of property extended_communities + Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' + extended_communities: + x-field-uid: 12 + description: "Optional Extended Community settings. The Extended Communities\ + \ Attribute is a transitive optional BGP attribute, with the Type Code\ + \ 16. Community and Extended Communities attributes are utilized to trigger\ + \ routing decisions, such as acceptance, rejection, preference, or redistribution.\ + \ An extended community is an eight byte value. It is divided into two\ + \ main parts. The first two bytes of the community encode a type and sub-type\ + \ fields and the last six bytes carry a unique set of data in a format\ + \ defined by the type and sub-type field. Extended communities provide\ + \ a larger range for grouping or categorizing communities. " + type: array + items: + $ref: '#/components/schemas/Bgp.ExtendedCommunity' required: - name Bgp.AddPath: @@ -3759,6 +3780,417 @@ components: format: uint32 default: 1 x-field-uid: 1 + Bgp.ExtendedCommunity: + description: |- + The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value.It is divided into two main parts. The first 2 Bytes of the community encode a type and optonal sub-type field. The last 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a format defined by the type and optional sub-type field. Extended communities provide a larger range for grouping or categorizing communities. + type: object + properties: + choice: + type: string + default: transitive_2octet_as_type + x-enum: + transitive_2octet_as_type: + x-field-uid: 1 + transitive_ipv4_address_type: + x-field-uid: 2 + transitive_4octet_as_type: + x-field-uid: 3 + transitive_opaque_type: + x-field-uid: 4 + transitive_evpn_type: + x-field-uid: 5 + non_transitive_2octet_as_type: + x-field-uid: 6 + custom: + x-field-uid: 7 + x-field-uid: 1 + enum: + - transitive_2octet_as_type + - transitive_ipv4_address_type + - transitive_4octet_as_type + - transitive_opaque_type + - transitive_evpn_type + - non_transitive_2octet_as_type + - custom + transitive_2octet_as_type: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType' + transitive_ipv4_address_type: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType' + transitive_4octet_as_type: + x-field-uid: 4 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType' + transitive_opaque_type: + x-field-uid: 5 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType' + transitive_evpn_type: + x-field-uid: 6 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveEvpnType' + non_transitive_2octet_as_type: + x-field-uid: 7 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.NonTransitive2OctetAsType' + custom: + x-field-uid: 8 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.CustomType' + Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteTarget: + description: "The Route Target Community identifies one or more routers that\ + \ may receive a set of routes (that carry this Community) carried by BGP.\ + \ It is sent with sub-type as 0x02. " + type: object + properties: + global_2byte_as: + description: |- + The two octet IANA assigned AS value assigned to the Autonomous System. + type: integer + format: uint32 + maximum: 65535 + default: 100 + x-field-uid: 1 + local_4byte_admin: + type: integer + format: uint32 + default: 1 + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + x-field-uid: 2 + Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteOrigin: + description: |- + The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + type: object + properties: + global_2byte_as: + description: |- + The two octet IANA assigned AS value assigned to the Autonomous System. + type: integer + format: uint32 + maximum: 65535 + default: 100 + x-field-uid: 1 + local_4byte_admin: + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + type: integer + format: uint32 + default: 1 + x-field-uid: 2 + Bgp.ExtendedCommunity.Transitive2OctetAsType: + description: "The Transitive Two-Octet AS-Specific Extended Community is sent\ + \ as type 0x00 . " + type: object + properties: + choice: + type: string + default: route_target_subtype + x-enum: + route_target_subtype: + x-field-uid: 1 + route_origin_subtype: + x-field-uid: 2 + x-field-uid: 1 + enum: + - route_target_subtype + - route_origin_subtype + route_target_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteTarget' + route_origin_subtype: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive2OctetAsType.RouteOrigin' + Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteOrigin: + description: |- + The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + type: object + properties: + global_ipv4_admin: + description: "An IPv4 unicast address assigned by one of the Internet registries.\ + \ " + type: string + format: ipv4 + default: 0.0.0.0 + x-field-uid: 1 + local_2byte_admin: + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + type: integer + format: uint32 + default: 1 + maximum: 65535 + x-field-uid: 2 + Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteTarget: + description: "The Route Target Community identifies one or more routers that\ + \ may receive a set of routes (that carry this Community) carried by BGP.\ + \ It is sent with sub-type as 0x02. " + type: object + properties: + global_ipv4_admin: + description: "An IPv4 unicast address assigned by one of the Internet registries. " + type: string + format: ipv4 + default: 0.0.0.0 + x-field-uid: 1 + local_2byte_admin: + type: integer + format: uint32 + maximum: 65535 + default: 1 + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + x-field-uid: 2 + Bgp.ExtendedCommunity.TransitiveIpv4AddressType: + description: |- + The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + type: object + properties: + choice: + type: string + default: route_target_subtype + x-enum: + route_target_subtype: + x-field-uid: 1 + route_origin_subtype: + x-field-uid: 2 + x-field-uid: 1 + enum: + - route_target_subtype + - route_origin_subtype + route_target_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteTarget' + route_origin_subtype: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveIpv4AddressType.RouteOrigin' + Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteTarget: + description: "The Route Target Community identifies one or more routers that\ + \ may receive a set of routes (that carry this Community) carried by BGP.\ + \ It is sent with sub-type as 0x02 " + type: object + properties: + global_4byte_as: + description: |- + The four octet IANA assigned AS value assigned to the Autonomous System. + type: integer + format: uint32 + default: 100 + x-field-uid: 1 + local_2byte_admin: + type: integer + format: uint32 + default: 1 + maximum: 65535 + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + x-field-uid: 2 + Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteOrigin: + description: |- + The Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + type: object + properties: + global_4byte_as: + description: |- + The four octet IANA assigned AS value assigned to the Autonomous System. + type: integer + format: uint32 + default: 100 + x-field-uid: 1 + local_2byte_admin: + description: |- + The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + type: integer + format: uint32 + default: 1 + maximum: 65535 + x-field-uid: 2 + Bgp.ExtendedCommunity.Transitive4OctetAsType: + description: "The Transitive Four-Octet AS-Specific Extended Community is sent\ + \ as type 0x02. It is defined in RFC 5668. " + type: object + properties: + choice: + type: string + default: route_target_subtype + x-enum: + route_target_subtype: + x-field-uid: 1 + route_origin_subtype: + x-field-uid: 2 + x-field-uid: 1 + enum: + - route_target_subtype + - route_origin_subtype + route_target_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteTarget' + route_origin_subtype: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.Transitive4OctetAsType.RouteOrigin' + Bgp.ExtendedCommunity.TransitiveOpaqueType.Color: + description: "The Color Community contains locally administrator defined 'color'\ + \ value which is used in conjunction with Encapsulation attribute to decide\ + \ whether a data packet can be transmitted on a certain tunnel or not. It\ + \ is defined in RFC9012 and sent with sub-type as 0x0b. " + type: object + properties: + flags: + description: "Two octet flag values. " + type: integer + format: uint32 + maximum: 65535 + default: 0 + x-field-uid: 1 + color: + type: integer + format: uint32 + default: 0 + description: "The color value is user defined and configured locally and\ + \ used to determine whether a data packet can be transmitted on a certain\ + \ tunnel or not in conjunction with the Encapsulation attribute. It is\ + \ defined in RFC9012. " + x-field-uid: 2 + Bgp.ExtendedCommunity.TransitiveOpaqueType.Encapsulation: + description: |- + This identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + type: object + properties: + reserved: + description: "Four bytes of reserved values. Normally set to 0 on transmit\ + \ and ignored on receive. " + type: integer + format: uint32 + default: 0 + x-field-uid: 1 + tunnel_type: + description: "Identifies the type of tunneling technology being signalled.\ + \ Initially defined in RFC5512 and extended in RFC9012. Some of the important\ + \ tunnel types include 1 L2TPv3 over IP\t[RFC9012], \n2\tGRE\t[RFC9012]\n\ + 7\tIP in IP\t[RFC9012]\n8\tVXLAN Encapsulation\t[RFC8365]\n9\tNVGRE Encapsulation\t\ + [RFC8365]\n10\tMPLS Encapsulation\t[RFC8365]\n15\tSR TE Policy Type\t\ + [draft-ietf-idr-segment-routing-te-policy]\n19\tGeneve Encapsulation\t\ + [RFC8926]" + type: integer + format: uint32 + maximum: 65535 + default: 1 + x-field-uid: 2 + Bgp.ExtendedCommunity.TransitiveOpaqueType: + description: |- + The Transitive Opaque Extended Community is sent as type 0x03. + type: object + properties: + choice: + type: string + default: color_subtype + x-enum: + color_subtype: + x-field-uid: 1 + encapsulation_subtype: + x-field-uid: 2 + x-field-uid: 1 + enum: + - color_subtype + - encapsulation_subtype + color_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType.Color' + encapsulation_subtype: + x-field-uid: 3 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveOpaqueType.Encapsulation' + Bgp.ExtendedCommunity.TransitiveEvpnType.RouterMac: + description: |- + The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. + type: object + properties: + router_mac: + description: "MAC Address of the PE Router. " + type: string + format: mac + default: 0:0:0:0:0:0 + x-field-uid: 1 + Bgp.ExtendedCommunity.TransitiveEvpnType: + description: "The Transitive EVPN Extended Community is sent as type 0x06 .\ + \ " + type: object + properties: + choice: + type: string + default: router_mac_subtype + x-enum: + router_mac_subtype: + x-field-uid: 1 + x-field-uid: 1 + enum: + - router_mac_subtype + router_mac_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.TransitiveEvpnType.RouterMac' + Bgp.ExtendedCommunity.NonTransitive2OctetAsType.LinkBandwidth: + description: |- + The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. + type: object + properties: + global_2byte_as: + description: |- + The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. + type: integer + format: uint32 + default: 100 + maximum: 65535 + x-field-uid: 1 + bandwidth: + description: |- + Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) + type: number + format: float + default: 0 + x-field-uid: 2 + Bgp.ExtendedCommunity.NonTransitive2OctetAsType: + description: "The Non-Transitive Two-Octet AS-Specific Extended Community is\ + \ sent as type 0x40. " + type: object + properties: + choice: + type: string + default: link_bandwidth_subtype + x-enum: + link_bandwidth_subtype: + x-field-uid: 1 + x-field-uid: 1 + enum: + - link_bandwidth_subtype + link_bandwidth_subtype: + x-field-uid: 2 + $ref: '#/components/schemas/Bgp.ExtendedCommunity.NonTransitive2OctetAsType.LinkBandwidth' + Bgp.ExtendedCommunity.CustomType: + description: "Add a custom Extended Community with a combination of types ,\ + \ sub-types and values not explicitly specified above or not defined yet.\ + \ " + type: object + properties: + community_type: + description: "The type to be set in the Extended Community attribute. Accepts\ + \ hexadecimal input upto ff . " + type: string + format: hex + maxLength: 2 + default: '00' + x-field-uid: 1 + community_subtype: + description: |- + The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. + type: string + format: hex + maxLength: 2 + default: '00' + x-field-uid: 2 + value: + description: "6 byte hex value to be carried in the last 6 bytes of the\ + \ Extended Community. Accepts hexadecimal input upto ffffffffffff. \ + \ " + type: string + format: hex + maxLength: 12 + default: '000000000000' + x-field-uid: 3 Bgp.V6RouteRange: description: |- Emulated BGPv6 route range. @@ -3841,12 +4273,33 @@ components: pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ x-unique: global ext_communities: + x-status: + status: deprecated + information: This property is deprecated in favor of property extended_communities x-field-uid: 11 description: |- + Deprecated: This property is deprecated in favor of property extended_communities + + Deprecated: This property is deprecated in favor of property extended_communities + Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. type: array items: $ref: '#/components/schemas/Bgp.ExtCommunity' + extended_communities: + x-field-uid: 12 + description: "Optional Extended Community settings. The Extended Communities\ + \ Attribute is a transitive optional BGP attribute, with the Type Code\ + \ 16. Community and Extended Communities attributes are utilized to trigger\ + \ routing decisions, such as acceptance, rejection, preference, or redistribution.\ + \ An extended community is an eight byte value. It is divided into two\ + \ main parts. The first two bytes of the community encode a type and sub-type\ + \ fields and the last six bytes carry a unique set of data in a format\ + \ defined by the type and sub-type field. Extended communities provide\ + \ a larger range for grouping or categorizing communities. " + type: array + items: + $ref: '#/components/schemas/Bgp.ExtendedCommunity' required: - name BgpSrte.V4Policy: diff --git a/snappi/otg_pb2.py b/snappi/otg_pb2.py index c2e8e1bb..a2cffcbf 100644 --- a/snappi/otg_pb2.py +++ b/snappi/otg_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\xf8\x01\n\x0e\x44\x65viceEthernet\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x00\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88a8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\x82\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\x82\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\xbc\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"O\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"J\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTag\"c\n\x13\x46lowCustomMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\xf7\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x12\x33\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairsH\x04\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_randomB\x0f\n\r_weight_pairs\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xc3\x02\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatioH\x02\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x03\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x04\x88\x01\x01\x12<\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsH\x05\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\x0e\n\x0c_rx_tx_ratioB\r\n\x0b_timestampsB\n\n\x08_latencyB\x19\n\x17_predefined_metric_tags\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xe8\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCountH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x0b\n\t_rx_countB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\rH\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xb5\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12\x37\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\x9d\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xd0\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x39\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilterH\x00\x88\x01\x01\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x11\n\x0f_tagged_metrics\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\xad\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12-\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestampH\x07\x88\x01\x01\x12(\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyH\x08\x88\x01\x01\x42\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"b\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xe2\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xe2\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xdc\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPfcQueueMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowVlanPriorityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowVlanCfiMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"j\n\x1aPatternFlowVlanIdMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9d\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x02\x88\x01\x01\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVlanTpidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVxlanVniMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcd\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf5\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TotalLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4IdentificationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4DontFragmentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4PriorityRawMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4TosDelayMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosThroughputMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv4TosUnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv6VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv6TrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv6FlowLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xeb\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv6HopLimitMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfc\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12H\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x02\x88\x01\x01\x12H\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x04\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x02\x88\x01\x01\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetPauseTimeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpAckNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowTcpDataOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpWindowMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowUdpLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGreChecksumPresentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGreVersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGreProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv1ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x86\x04\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x02\x88\x01\x01\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowGtpExtensionContentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9a\x04\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12N\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x02\x88\x01\x01\x12N\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv2VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpHardwareTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpHardwareLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpProtocolLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowArpOperationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppControlMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowPppProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIgmpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIgmpv1UnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowMplsLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd2\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowMplsTrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowMplsBottomOfStackMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\xf8\x01\n\x0e\x44\x65viceEthernet\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x00\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88a8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\xbb\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\xd4\x08\n\x14\x42gpExtendedCommunity\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpExtendedCommunity.Choice.EnumH\x00\x88\x01\x01\x12W\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive2OctetAsTypeH\x01\x88\x01\x01\x12]\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeH\x02\x88\x01\x01\x12W\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive4OctetAsTypeH\x03\x88\x01\x01\x12R\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32-.otg.BgpExtendedCommunityTransitiveOpaqueTypeH\x04\x88\x01\x01\x12N\n\x14transitive_evpn_type\x18\x06 \x01(\x0b\x32+.otg.BgpExtendedCommunityTransitiveEvpnTypeH\x05\x88\x01\x01\x12^\n\x1dnon_transitive_2octet_as_type\x18\x07 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeH\x06\x88\x01\x01\x12\x38\n\x06\x63ustom\x18\x08 \x01(\x0b\x32#.otg.BgpExtendedCommunityCustomTypeH\x07\x88\x01\x01\x1a\xe7\x01\n\x06\x43hoice\"\xdc\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1d\n\x19transitive_2octet_as_type\x10\x01\x12 \n\x1ctransitive_ipv4_address_type\x10\x02\x12\x1d\n\x19transitive_4octet_as_type\x10\x03\x12\x1a\n\x16transitive_opaque_type\x10\x04\x12\x18\n\x14transitive_evpn_type\x10\x05\x12!\n\x1dnon_transitive_2octet_as_type\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x1c\n\x1a_transitive_2octet_as_typeB\x1f\n\x1d_transitive_ipv4_address_typeB\x1c\n\x1a_transitive_4octet_as_typeB\x19\n\x17_transitive_opaque_typeB\x17\n\x15_transitive_evpn_typeB \n\x1e_non_transitive_2octet_as_typeB\t\n\x07_custom\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive2OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xdc\x03\n-BgpExtendedCommunityTransitiveIpv4AddressType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12`\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTargetH\x01\x88\x01\x01\x12`\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\xd0\x03\n*BgpExtendedCommunityTransitive4OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12]\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTargetH\x01\x88\x01\x01\x12]\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOriginH\x02\x88\x01\x01\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choiceB\x17\n\x15_route_target_subtypeB\x17\n\x15_route_origin_subtype\"k\n-BgpExtendedCommunityTransitiveOpaqueTypeColor\x12\x12\n\x05\x66lags\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_color\"\x85\x01\n5BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x12\x15\n\x08reserved\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0btunnel_type\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_reservedB\x0e\n\x0c_tunnel_type\"\xb2\x03\n(BgpExtendedCommunityTransitiveOpaqueType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12N\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveOpaqueTypeColorH\x01\x88\x01\x01\x12^\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulationH\x02\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rcolor_subtype\x10\x01\x12\x19\n\x15\x65ncapsulation_subtype\x10\x02\x42\t\n\x07_choiceB\x10\n\x0e_color_subtypeB\x18\n\x16_encapsulation_subtype\"Y\n/BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x12\x17\n\nrouter_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_router_mac\"\xaa\x02\n&BgpExtendedCommunityTransitiveEvpnType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.BgpExtendedCommunityTransitiveEvpnType.Choice.EnumH\x00\x88\x01\x01\x12U\n\x12router_mac_subtype\x18\x02 \x01(\x0b\x32\x34.otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMacH\x01\x88\x01\x01\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12router_mac_subtype\x10\x01\x42\t\n\x07_choiceB\x15\n\x13_router_mac_subtype\"\x94\x01\n:BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tbandwidth\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x0c\n\n_bandwidth\"\xcf\x02\n-BgpExtendedCommunityNonTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12\x64\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32?.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidthH\x01\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1a\n\x16link_bandwidth_subtype\x10\x01\x42\t\n\x07_choiceB\x19\n\x17_link_bandwidth_subtype\"\xa4\x01\n\x1e\x42gpExtendedCommunityCustomType\x12\x1b\n\x0e\x63ommunity_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63ommunity_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_community_typeB\x14\n\x12_community_subtypeB\x08\n\x06_value\"\xbb\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\r\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\r\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\xbc\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"O\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"J\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTag\"c\n\x13\x46lowCustomMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\xf7\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x12\x33\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairsH\x04\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_randomB\x0f\n\r_weight_pairs\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xc3\x02\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatioH\x02\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x03\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x04\x88\x01\x01\x12<\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsH\x05\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\x0e\n\x0c_rx_tx_ratioB\r\n\x0b_timestampsB\n\n\x08_latencyB\x19\n\x17_predefined_metric_tags\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xe8\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCountH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\x02H\x02\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x0b\n\t_rx_countB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\rH\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xb5\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12\x37\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\x9d\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12\x35\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xd0\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x39\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilterH\x00\x88\x01\x01\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x11\n\x0f_tagged_metrics\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\xad\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12-\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestampH\x07\x88\x01\x01\x12(\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyH\x08\x88\x01\x01\x42\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"b\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xe2\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xe2\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x07\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x08\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_pathB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xdc\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowEthernetSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPfcQueueMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowVlanPriorityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowVlanCfiMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"j\n\x1aPatternFlowVlanIdMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9d\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x02\x88\x01\x01\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVlanTpidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowVxlanVniMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcd\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowVxlanReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf5\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TotalLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4IdentificationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv4DontFragmentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4ProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv4DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4PriorityRawMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv4TosDelayMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv4TosThroughputMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv4TosUnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowIpv6VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowIpv6TrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIpv6FlowLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xeb\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIpv6HopLimitMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"k\n\x1bPatternFlowIpv6DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa2\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfc\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12H\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x02\x88\x01\x01\x12H\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowEthernetPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x04\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x02\x88\x01\x01\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowEthernetPauseTimeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpAckNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowTcpDataOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"l\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowTcpWindowMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowUdpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowUdpLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGreChecksumPresentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGreVersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGreProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGreReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv1ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x86\x04\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x02\x88\x01\x01\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowGtpExtensionContentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x9a\x04\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12N\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x02\x88\x01\x01\x12N\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowGtpv2VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"w\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xde\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"o\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpHardwareTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowArpProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpHardwareLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowArpProtocolLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowArpOperationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe8\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIcmpEchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xed\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x04\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xe3\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf7\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowPppControlMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"s\n#PatternFlowPppProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xf0\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"q\n!PatternFlowIgmpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc0\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"n\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xb1\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"p\n PatternFlowIgmpv1UnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"v\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd9\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"m\n\x1dPatternFlowMplsLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xd2\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"t\n$PatternFlowMplsTrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"u\n%PatternFlowMplsBottomOfStackMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xfa\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"r\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'otg_pb2', globals()) @@ -328,115 +328,179 @@ _BGPLEARNEDINFORMATIONFILTER._serialized_start=23783 _BGPLEARNEDINFORMATIONFILTER._serialized_end=23928 _BGPV4ROUTERANGE._serialized_start=23931 - _BGPV4ROUTERANGE._serialized_end=24701 - _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_start=24436 - _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_end=24500 - _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24451 - _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24500 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24502 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24567 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24524 - _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24567 - _BGPADDPATH._serialized_start=24703 - _BGPADDPATH._serialized_end=24749 - _BGPV6ROUTERANGE._serialized_start=24752 - _BGPV6ROUTERANGE._serialized_end=25522 - _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_start=24436 - _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_end=24500 - _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24451 - _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24500 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24502 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24567 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24524 - _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24567 - _BGPSRTEV4POLICY._serialized_start=25525 - _BGPSRTEV4POLICY._serialized_end=26432 - _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_start=24436 - _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_end=24500 - _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_start=24451 - _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_end=24500 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_start=24502 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_end=24567 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24524 - _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24567 - _BGPSRTEV4TUNNELTLV._serialized_start=26435 - _BGPSRTEV4TUNNELTLV._serialized_end=27202 - _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_start=27205 - _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_end=27523 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_start=27396 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_end=27456 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_start=24524 - _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_end=24567 - _BGPSRTECOLORSUBTLV._serialized_start=27525 - _BGPSRTECOLORSUBTLV._serialized_end=27575 - _BGPSRTEBINDINGSUBTLV._serialized_start=27578 - _BGPSRTEBINDINGSUBTLV._serialized_end=27940 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_start=27774 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_end=27865 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_start=27792 - _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_end=27865 - _BGPSRTEPREFERENCESUBTLV._serialized_start=27942 - _BGPSRTEPREFERENCESUBTLV._serialized_end=28007 - _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_start=28009 - _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_end=28088 - _BGPSRTEPOLICYNAMESUBTLV._serialized_start=28090 - _BGPSRTEPOLICYNAMESUBTLV._serialized_end=28157 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_start=28160 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_end=28502 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_start=28314 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_end=28471 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_start=28342 - _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_end=28471 - _BGPSRTESEGMENTLIST._serialized_start=28505 - _BGPSRTESEGMENTLIST._serialized_end=28642 - _BGPSRTESEGMENT._serialized_start=28645 - _BGPSRTESEGMENT._serialized_end=29645 - _BGPSRTESEGMENT_SEGMENTTYPE._serialized_start=29342 - _BGPSRTESEGMENT_SEGMENTTYPE._serialized_end=29513 - _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_start=29358 - _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_end=29513 - _BGPSRTESRMPLSSID._serialized_start=29648 - _BGPSRTESRMPLSSID._serialized_end=29776 - _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_start=29779 - _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_end=29981 - _BGPSRTESEGMENTATYPESUBTLV._serialized_start=29984 - _BGPSRTESEGMENTATYPESUBTLV._serialized_end=30151 - _BGPSRTESEGMENTBTYPESUBTLV._serialized_start=30154 - _BGPSRTESEGMENTBTYPESUBTLV._serialized_end=30350 - _BGPSRTESEGMENTCTYPESUBTLV._serialized_start=30353 - _BGPSRTESEGMENTCTYPESUBTLV._serialized_end=30546 - _BGPSRTESEGMENTDTYPESUBTLV._serialized_start=30549 - _BGPSRTESEGMENTDTYPESUBTLV._serialized_end=30742 - _BGPSRTESEGMENTETYPESUBTLV._serialized_start=30745 - _BGPSRTESEGMENTETYPESUBTLV._serialized_end=30950 - _BGPSRTESEGMENTFTYPESUBTLV._serialized_start=30953 - _BGPSRTESEGMENTFTYPESUBTLV._serialized_end=31132 - _BGPSRTESEGMENTGTYPESUBTLV._serialized_start=31135 - _BGPSRTESEGMENTGTYPESUBTLV._serialized_end=31438 - _BGPSRTESEGMENTHTYPESUBTLV._serialized_start=31441 - _BGPSRTESEGMENTHTYPESUBTLV._serialized_end=31620 - _BGPSRTESEGMENTITYPESUBTLV._serialized_start=31623 - _BGPSRTESEGMENTITYPESUBTLV._serialized_end=31864 - _BGPSRTESEGMENTJTYPESUBTLV._serialized_start=31867 - _BGPSRTESEGMENTJTYPESUBTLV._serialized_end=32306 - _BGPSRTESEGMENTKTYPESUBTLV._serialized_start=32309 - _BGPSRTESEGMENTKTYPESUBTLV._serialized_end=32624 - _BGPSRTEV6POLICY._serialized_start=32627 - _BGPSRTEV6POLICY._serialized_end=33533 - _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_start=24436 - _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_end=24500 - _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_start=24451 - _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_end=24500 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_start=24502 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_end=24567 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24524 - _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24567 - _BGPSRTEV6TUNNELTLV._serialized_start=33536 - _BGPSRTEV6TUNNELTLV._serialized_end=34303 - _BGPGRACEFULRESTART._serialized_start=34306 - _BGPGRACEFULRESTART._serialized_end=34490 - _BGPV6PEER._serialized_start=34493 - _BGPV6PEER._serialized_end=35415 + _BGPV4ROUTERANGE._serialized_end=24758 + _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_start=24493 + _BGPV4ROUTERANGE_NEXTHOPMODE._serialized_end=24557 + _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24508 + _BGPV4ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24557 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24559 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24624 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 + _BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 + _BGPADDPATH._serialized_start=24760 + _BGPADDPATH._serialized_end=24806 + _BGPEXTENDEDCOMMUNITY._serialized_start=24809 + _BGPEXTENDEDCOMMUNITY._serialized_end=25917 + _BGPEXTENDEDCOMMUNITY_CHOICE._serialized_start=25485 + _BGPEXTENDEDCOMMUNITY_CHOICE._serialized_end=25716 + _BGPEXTENDEDCOMMUNITY_CHOICE_ENUM._serialized_start=25496 + _BGPEXTENDEDCOMMUNITY_CHOICE_ENUM._serialized_end=25716 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET._serialized_start=25920 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET._serialized_end=26079 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN._serialized_start=26082 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN._serialized_end=26241 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE._serialized_start=26244 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE._serialized_end=26708 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE._serialized_start=26562 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_start=26572 + _BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN._serialized_start=26711 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN._serialized_end=26877 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET._serialized_start=26880 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET._serialized_end=27046 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE._serialized_start=27049 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE._serialized_end=27525 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE._serialized_start=26562 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM._serialized_start=26572 + _BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET._serialized_start=27528 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET._serialized_end=27687 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN._serialized_start=27690 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN._serialized_end=27849 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE._serialized_start=27852 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE._serialized_end=28316 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE._serialized_start=26562 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM._serialized_start=26572 + _BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM._serialized_end=26647 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR._serialized_start=28318 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR._serialized_end=28425 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION._serialized_start=28428 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION._serialized_end=28561 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE._serialized_start=28564 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE._serialized_end=28998 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE._serialized_start=28864 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE._serialized_end=28943 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM._serialized_start=28874 + _BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM._serialized_end=28943 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC._serialized_start=29000 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC._serialized_end=29089 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE._serialized_start=29092 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE._serialized_end=29390 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE._serialized_start=29299 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE._serialized_end=29356 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM._serialized_start=29309 + _BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM._serialized_end=29356 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH._serialized_start=29393 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH._serialized_end=29541 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE._serialized_start=29544 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE._serialized_end=29879 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE._serialized_start=29780 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE._serialized_end=29841 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_start=29790 + _BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM._serialized_end=29841 + _BGPEXTENDEDCOMMUNITYCUSTOMTYPE._serialized_start=29882 + _BGPEXTENDEDCOMMUNITYCUSTOMTYPE._serialized_end=30046 + _BGPV6ROUTERANGE._serialized_start=30049 + _BGPV6ROUTERANGE._serialized_end=30876 + _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_start=24493 + _BGPV6ROUTERANGE_NEXTHOPMODE._serialized_end=24557 + _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_start=24508 + _BGPV6ROUTERANGE_NEXTHOPMODE_ENUM._serialized_end=24557 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_start=24559 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE._serialized_end=24624 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 + _BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 + _BGPSRTEV4POLICY._serialized_start=30879 + _BGPSRTEV4POLICY._serialized_end=31786 + _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_start=24493 + _BGPSRTEV4POLICY_NEXTHOPMODE._serialized_end=24557 + _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_start=24508 + _BGPSRTEV4POLICY_NEXTHOPMODE_ENUM._serialized_end=24557 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_start=24559 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE._serialized_end=24624 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 + _BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 + _BGPSRTEV4TUNNELTLV._serialized_start=31789 + _BGPSRTEV4TUNNELTLV._serialized_end=32556 + _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_start=32559 + _BGPSRTEREMOTEENDPOINTSUBTLV._serialized_end=32877 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_start=32750 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY._serialized_end=32810 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_start=24581 + _BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM._serialized_end=24624 + _BGPSRTECOLORSUBTLV._serialized_start=32879 + _BGPSRTECOLORSUBTLV._serialized_end=32929 + _BGPSRTEBINDINGSUBTLV._serialized_start=32932 + _BGPSRTEBINDINGSUBTLV._serialized_end=33294 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_start=33128 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE._serialized_end=33219 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_start=33146 + _BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM._serialized_end=33219 + _BGPSRTEPREFERENCESUBTLV._serialized_start=33296 + _BGPSRTEPREFERENCESUBTLV._serialized_end=33361 + _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_start=33363 + _BGPSRTEPOLICYPRIORITYSUBTLV._serialized_end=33442 + _BGPSRTEPOLICYNAMESUBTLV._serialized_start=33444 + _BGPSRTEPOLICYNAMESUBTLV._serialized_end=33511 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_start=33514 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV._serialized_end=33856 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_start=33668 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY._serialized_end=33825 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_start=33696 + _BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM._serialized_end=33825 + _BGPSRTESEGMENTLIST._serialized_start=33859 + _BGPSRTESEGMENTLIST._serialized_end=33996 + _BGPSRTESEGMENT._serialized_start=33999 + _BGPSRTESEGMENT._serialized_end=34999 + _BGPSRTESEGMENT_SEGMENTTYPE._serialized_start=34696 + _BGPSRTESEGMENT_SEGMENTTYPE._serialized_end=34867 + _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_start=34712 + _BGPSRTESEGMENT_SEGMENTTYPE_ENUM._serialized_end=34867 + _BGPSRTESRMPLSSID._serialized_start=35002 + _BGPSRTESRMPLSSID._serialized_end=35130 + _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_start=35133 + _BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE._serialized_end=35335 + _BGPSRTESEGMENTATYPESUBTLV._serialized_start=35338 + _BGPSRTESEGMENTATYPESUBTLV._serialized_end=35505 + _BGPSRTESEGMENTBTYPESUBTLV._serialized_start=35508 + _BGPSRTESEGMENTBTYPESUBTLV._serialized_end=35704 + _BGPSRTESEGMENTCTYPESUBTLV._serialized_start=35707 + _BGPSRTESEGMENTCTYPESUBTLV._serialized_end=35900 + _BGPSRTESEGMENTDTYPESUBTLV._serialized_start=35903 + _BGPSRTESEGMENTDTYPESUBTLV._serialized_end=36096 + _BGPSRTESEGMENTETYPESUBTLV._serialized_start=36099 + _BGPSRTESEGMENTETYPESUBTLV._serialized_end=36304 + _BGPSRTESEGMENTFTYPESUBTLV._serialized_start=36307 + _BGPSRTESEGMENTFTYPESUBTLV._serialized_end=36486 + _BGPSRTESEGMENTGTYPESUBTLV._serialized_start=36489 + _BGPSRTESEGMENTGTYPESUBTLV._serialized_end=36792 + _BGPSRTESEGMENTHTYPESUBTLV._serialized_start=36795 + _BGPSRTESEGMENTHTYPESUBTLV._serialized_end=36974 + _BGPSRTESEGMENTITYPESUBTLV._serialized_start=36977 + _BGPSRTESEGMENTITYPESUBTLV._serialized_end=37218 + _BGPSRTESEGMENTJTYPESUBTLV._serialized_start=37221 + _BGPSRTESEGMENTJTYPESUBTLV._serialized_end=37660 + _BGPSRTESEGMENTKTYPESUBTLV._serialized_start=37663 + _BGPSRTESEGMENTKTYPESUBTLV._serialized_end=37978 + _BGPSRTEV6POLICY._serialized_start=37981 + _BGPSRTEV6POLICY._serialized_end=38887 + _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_start=24493 + _BGPSRTEV6POLICY_NEXTHOPMODE._serialized_end=24557 + _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_start=24508 + _BGPSRTEV6POLICY_NEXTHOPMODE_ENUM._serialized_end=24557 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_start=24559 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE._serialized_end=24624 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_start=24581 + _BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM._serialized_end=24624 + _BGPSRTEV6TUNNELTLV._serialized_start=38890 + _BGPSRTEV6TUNNELTLV._serialized_end=39657 + _BGPGRACEFULRESTART._serialized_start=39660 + _BGPGRACEFULRESTART._serialized_end=39844 + _BGPV6PEER._serialized_start=39847 + _BGPV6PEER._serialized_end=40769 _BGPV6PEER_ASTYPE._serialized_start=17279 _BGPV6PEER_ASTYPE._serialized_end=17332 _BGPV6PEER_ASTYPE_ENUM._serialized_start=17289 @@ -445,734 +509,734 @@ _BGPV6PEER_ASNUMBERWIDTH._serialized_end=17393 _BGPV6PEER_ASNUMBERWIDTH_ENUM._serialized_start=17351 _BGPV6PEER_ASNUMBERWIDTH_ENUM._serialized_end=17393 - _BGPV6INTERFACE._serialized_start=35417 - _BGPV6INTERFACE._serialized_end=35483 - _BGPV6SEGMENTROUTING._serialized_start=35486 - _BGPV6SEGMENTROUTING._serialized_end=35983 - _BGPV6ETHERNETSEGMENT._serialized_start=35986 - _BGPV6ETHERNETSEGMENT._serialized_end=36538 + _BGPV6INTERFACE._serialized_start=40771 + _BGPV6INTERFACE._serialized_end=40837 + _BGPV6SEGMENTROUTING._serialized_start=40840 + _BGPV6SEGMENTROUTING._serialized_end=41337 + _BGPV6ETHERNETSEGMENT._serialized_start=41340 + _BGPV6ETHERNETSEGMENT._serialized_end=41892 _BGPV6ETHERNETSEGMENT_ACTIVEMODE._serialized_start=17965 _BGPV6ETHERNETSEGMENT_ACTIVEMODE._serialized_end=18037 _BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_start=17979 _BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM._serialized_end=18037 - _BGPV6EVPNEVIS._serialized_start=36541 - _BGPV6EVPNEVIS._serialized_end=36728 + _BGPV6EVPNEVIS._serialized_start=41895 + _BGPV6EVPNEVIS._serialized_end=42082 _BGPV6EVPNEVIS_CHOICE._serialized_start=20111 _BGPV6EVPNEVIS_CHOICE._serialized_end=20159 _BGPV6EVPNEVIS_CHOICE_ENUM._serialized_start=20121 _BGPV6EVPNEVIS_CHOICE_ENUM._serialized_end=20159 - _BGPV6EVIVXLAN._serialized_start=36731 - _BGPV6EVIVXLAN._serialized_end=37534 + _BGPV6EVIVXLAN._serialized_start=42085 + _BGPV6EVIVXLAN._serialized_end=42888 _BGPV6EVIVXLAN_REPLICATIONTYPE._serialized_start=20825 _BGPV6EVIVXLAN_REPLICATIONTYPE._serialized_end=20892 _BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_start=20844 _BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM._serialized_end=20892 - _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_start=37537 - _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_end=37717 - _DEVICEVXLAN._serialized_start=37719 - _DEVICEVXLAN._serialized_end=37812 - _VXLANV4TUNNEL._serialized_start=37815 - _VXLANV4TUNNEL._serialized_end=37978 - _VXLANV6TUNNEL._serialized_start=37981 - _VXLANV6TUNNEL._serialized_end=38144 - _VXLANV4TUNNELDESTINATIONIPMODE._serialized_start=38147 - _VXLANV4TUNNELDESTINATIONIPMODE._serialized_end=38485 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=38387 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=38448 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=38397 - _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=38448 - _VXLANV6TUNNELDESTINATIONIPMODE._serialized_start=38488 - _VXLANV6TUNNELDESTINATIONIPMODE._serialized_end=38826 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=38387 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=38448 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=38397 - _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=38448 - _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_start=38828 - _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_end=38930 - _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_start=38932 - _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_end=39034 - _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_start=39037 - _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_end=39187 - _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=39190 - _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=39383 - _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=39386 - _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=39579 - _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=39581 - _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=39656 - _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=39658 - _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=39733 - _DEVICERSVP._serialized_start=39736 - _DEVICERSVP._serialized_end=39881 - _RSVPIPV4INTERFACE._serialized_start=39884 - _RSVPIPV4INTERFACE._serialized_end=40425 - _RSVPLSPIPV4INTERFACE._serialized_start=40428 - _RSVPLSPIPV4INTERFACE._serialized_end=40647 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_start=40650 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_end=41133 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_start=40930 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_end=41022 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_start=40950 - _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_end=41022 - _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_start=41136 - _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_end=41730 - _RSVPSESSIONATTRIBUTE._serialized_start=41733 - _RSVPSESSIONATTRIBUTE._serialized_end=42386 - _RSVPRESOURCEAFFINITIES._serialized_start=42389 - _RSVPRESOURCEAFFINITIES._serialized_end=42539 - _RSVPTSPEC._serialized_start=42542 - _RSVPTSPEC._serialized_end=42829 - _RSVPFASTREROUTE._serialized_start=42832 - _RSVPFASTREROUTE._serialized_end=43287 - _RSVPERO._serialized_start=43290 - _RSVPERO._serialized_end=43586 - _RSVPERO_PREPENDNEIGHBORIP._serialized_start=43443 - _RSVPERO_PREPENDNEIGHBORIP._serialized_end=43544 - _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_start=43464 - _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_end=43544 - _RSVPEROSUBOBJECT._serialized_start=43589 - _RSVPEROSUBOBJECT._serialized_end=43985 - _RSVPEROSUBOBJECT_TYPE._serialized_start=43799 - _RSVPEROSUBOBJECT_TYPE._serialized_end=43855 - _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_start=43807 - _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_end=43855 - _RSVPEROSUBOBJECT_HOPTYPE._serialized_start=43857 - _RSVPEROSUBOBJECT_HOPTYPE._serialized_end=43914 - _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_start=43868 - _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_end=43914 - _FLOW._serialized_start=43988 - _FLOW._serialized_end=44304 - _FLOWTXRX._serialized_start=44307 - _FLOWTXRX._serialized_end=44525 - _FLOWTXRX_CHOICE._serialized_start=44439 - _FLOWTXRX_CHOICE._serialized_end=44494 - _FLOWTXRX_CHOICE_ENUM._serialized_start=44449 - _FLOWTXRX_CHOICE_ENUM._serialized_end=44494 - _FLOWPORT._serialized_start=44527 - _FLOWPORT._serialized_end=44606 - _FLOWROUTER._serialized_start=44609 - _FLOWROUTER._serialized_end=44771 - _FLOWROUTER_MODE._serialized_start=44705 - _FLOWROUTER_MODE._serialized_end=44762 - _FLOWROUTER_MODE_ENUM._serialized_start=44713 - _FLOWROUTER_MODE_ENUM._serialized_end=44762 - _FLOWHEADER._serialized_start=44774 - _FLOWHEADER._serialized_end=45975 - _FLOWHEADER_CHOICE._serialized_start=45527 - _FLOWHEADER_CHOICE._serialized_end=45772 - _FLOWHEADER_CHOICE_ENUM._serialized_start=45538 - _FLOWHEADER_CHOICE_ENUM._serialized_end=45772 - _FLOWCUSTOM._serialized_start=45977 - _FLOWCUSTOM._serialized_end=46051 - _FLOWCUSTOMMETRICTAG._serialized_start=46053 - _FLOWCUSTOMMETRICTAG._serialized_end=46152 - _FLOWETHERNET._serialized_start=46155 - _FLOWETHERNET._serialized_end=46426 - _FLOWVLAN._serialized_start=46429 - _FLOWVLAN._serialized_end=46658 - _FLOWVXLAN._serialized_start=46661 - _FLOWVXLAN._serialized_end=46922 - _FLOWIPV4._serialized_start=46925 - _FLOWIPV4._serialized_end=47943 - _FLOWIPV4PRIORITY._serialized_start=47946 - _FLOWIPV4PRIORITY._serialized_end=48244 - _FLOWIPV4PRIORITY_CHOICE._serialized_start=48147 - _FLOWIPV4PRIORITY_CHOICE._serialized_end=48208 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=48157 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=48208 - _FLOWIPV4DSCP._serialized_start=48246 - _FLOWIPV4DSCP._serialized_end=48370 - _FLOWIPV4TOS._serialized_start=48373 - _FLOWIPV4TOS._serialized_end=48806 - _FLOWIPV6._serialized_start=48809 - _FLOWIPV6._serialized_end=49360 - _FLOWPFCPAUSE._serialized_start=49363 - _FLOWPFCPAUSE._serialized_end=50416 - _FLOWETHERNETPAUSE._serialized_start=50419 - _FLOWETHERNETPAUSE._serialized_end=50795 - _FLOWTCP._serialized_start=50798 - _FLOWTCP._serialized_end=51738 - _FLOWUDP._serialized_start=51741 - _FLOWUDP._serialized_end=52002 - _FLOWGRE._serialized_start=52005 - _FLOWGRE._serialized_end=52430 - _FLOWGTPV1._serialized_start=52433 - _FLOWGTPV1._serialized_end=53385 - _FLOWGTPEXTENSION._serialized_start=53388 - _FLOWGTPEXTENSION._serialized_end=53688 - _FLOWGTPV2._serialized_start=53691 - _FLOWGTPV2._serialized_end=54354 - _FLOWARP._serialized_start=54357 - _FLOWARP._serialized_end=55158 - _FLOWICMP._serialized_start=55161 - _FLOWICMP._serialized_end=55322 - _FLOWICMP_CHOICE._serialized_start=55259 - _FLOWICMP_CHOICE._serialized_end=55302 - _FLOWICMP_CHOICE_ENUM._serialized_start=55269 - _FLOWICMP_CHOICE_ENUM._serialized_end=55302 - _FLOWICMPECHO._serialized_start=55325 - _FLOWICMPECHO._serialized_end=55691 - _FLOWICMPV6._serialized_start=55694 - _FLOWICMPV6._serialized_end=55861 - _FLOWICMPV6_CHOICE._serialized_start=55259 - _FLOWICMPV6_CHOICE._serialized_end=55302 - _FLOWICMPV6_CHOICE_ENUM._serialized_start=55269 - _FLOWICMPV6_CHOICE_ENUM._serialized_end=55302 - _FLOWICMPV6ECHO._serialized_start=55864 - _FLOWICMPV6ECHO._serialized_end=56242 - _FLOWPPP._serialized_start=56245 - _FLOWPPP._serialized_end=56457 - _FLOWIGMPV1._serialized_start=56460 - _FLOWIGMPV1._serialized_end=56805 - _FLOWMPLS._serialized_start=56808 - _FLOWMPLS._serialized_end=57116 - _FLOWSIZE._serialized_start=57119 - _FLOWSIZE._serialized_end=57494 - _FLOWSIZE_CHOICE._serialized_start=57342 - _FLOWSIZE_CHOICE._serialized_end=57431 - _FLOWSIZE_CHOICE_ENUM._serialized_start=57352 - _FLOWSIZE_CHOICE_ENUM._serialized_end=57431 - _FLOWSIZEINCREMENT._serialized_start=57496 - _FLOWSIZEINCREMENT._serialized_end=57599 - _FLOWSIZERANDOM._serialized_start=57601 - _FLOWSIZERANDOM._serialized_end=57669 - _FLOWSIZEWEIGHTPAIRS._serialized_start=57672 - _FLOWSIZEWEIGHTPAIRS._serialized_end=58069 - _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_start=57869 - _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_end=57930 - _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_start=57879 - _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_end=57930 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_start=57932 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_end=58043 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_start=57946 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_end=58043 - _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_start=58071 - _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_end=58158 - _FLOWRATE._serialized_start=58161 - _FLOWRATE._serialized_end=58505 - _FLOWRATE_CHOICE._serialized_start=58339 - _FLOWRATE_CHOICE._serialized_end=58436 - _FLOWRATE_CHOICE_ENUM._serialized_start=58349 - _FLOWRATE_CHOICE_ENUM._serialized_end=58436 - _FLOWDURATION._serialized_start=58508 - _FLOWDURATION._serialized_end=58930 - _FLOWDURATION_CHOICE._serialized_start=58760 - _FLOWDURATION_CHOICE._serialized_end=58858 - _FLOWDURATION_CHOICE_ENUM._serialized_start=58770 - _FLOWDURATION_CHOICE_ENUM._serialized_end=58858 - _FLOWCONTINUOUS._serialized_start=58932 - _FLOWCONTINUOUS._serialized_end=59020 - _FLOWDELAY._serialized_start=59023 - _FLOWDELAY._serialized_end=59291 - _FLOWDELAY_CHOICE._serialized_start=59158 - _FLOWDELAY_CHOICE._serialized_end=59237 - _FLOWDELAY_CHOICE_ENUM._serialized_start=59168 - _FLOWDELAY_CHOICE_ENUM._serialized_end=59237 - _FLOWFIXEDPACKETS._serialized_start=59293 - _FLOWFIXEDPACKETS._serialized_end=59417 - _FLOWFIXEDSECONDS._serialized_start=59419 - _FLOWFIXEDSECONDS._serialized_end=59543 - _FLOWBURST._serialized_start=59546 - _FLOWBURST._serialized_end=59731 - _FLOWDURATIONINTERBURSTGAP._serialized_start=59734 - _FLOWDURATIONINTERBURSTGAP._serialized_end=60034 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=59158 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=59237 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=59168 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=59237 - _FLOWMETRICS._serialized_start=60037 - _FLOWMETRICS._serialized_end=60360 - _FLOWLATENCYMETRICS._serialized_start=60363 - _FLOWLATENCYMETRICS._serialized_end=60547 - _FLOWLATENCYMETRICS_MODE._serialized_start=60460 - _FLOWLATENCYMETRICS_MODE._serialized_end=60527 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=60468 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=60527 - _FLOWPREDEFINEDTAGS._serialized_start=60549 - _FLOWPREDEFINEDTAGS._serialized_end=60603 - _FLOWRXTXRATIO._serialized_start=60606 - _FLOWRXTXRATIO._serialized_end=60838 - _FLOWRXTXRATIO_CHOICE._serialized_start=60746 - _FLOWRXTXRATIO_CHOICE._serialized_end=60804 - _FLOWRXTXRATIO_CHOICE_ENUM._serialized_start=60756 - _FLOWRXTXRATIO_CHOICE_ENUM._serialized_end=60804 - _FLOWRXTXRATIORXCOUNT._serialized_start=60840 - _FLOWRXTXRATIORXCOUNT._serialized_end=60862 - _EVENT._serialized_start=60865 - _EVENT._serialized_end=61131 - _EVENTRXRATETHRESHOLD._serialized_start=61133 - _EVENTRXRATETHRESHOLD._serialized_end=61225 - _EVENTLINK._serialized_start=61227 - _EVENTLINK._serialized_end=61270 - _EVENTROUTEADVERTISEWITHDRAW._serialized_start=61272 - _EVENTROUTEADVERTISEWITHDRAW._serialized_end=61333 - _EVENTREQUEST._serialized_start=61336 - _EVENTREQUEST._serialized_end=61581 - _EVENTREQUEST_TYPE._serialized_start=61412 - _EVENTREQUEST_TYPE._serialized_end=61581 - _EVENTREQUEST_TYPE_ENUM._serialized_start=61421 - _EVENTREQUEST_TYPE_ENUM._serialized_end=61581 - _EVENTSUBSCRIPTION._serialized_start=61583 - _EVENTSUBSCRIPTION._serialized_end=61697 - _LLDP._serialized_start=61700 - _LLDP._serialized_end=62037 - _LLDPCONNECTION._serialized_start=62040 - _LLDPCONNECTION._serialized_end=62209 - _LLDPCONNECTION_CHOICE._serialized_start=62136 - _LLDPCONNECTION_CHOICE._serialized_end=62184 + _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_start=42891 + _BGPV6EVIVXLANBROADCASTDOMAIN._serialized_end=43071 + _DEVICEVXLAN._serialized_start=43073 + _DEVICEVXLAN._serialized_end=43166 + _VXLANV4TUNNEL._serialized_start=43169 + _VXLANV4TUNNEL._serialized_end=43332 + _VXLANV6TUNNEL._serialized_start=43335 + _VXLANV6TUNNEL._serialized_end=43498 + _VXLANV4TUNNELDESTINATIONIPMODE._serialized_start=43501 + _VXLANV4TUNNELDESTINATIONIPMODE._serialized_end=43839 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=43741 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=43802 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=43751 + _VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=43802 + _VXLANV6TUNNELDESTINATIONIPMODE._serialized_start=43842 + _VXLANV6TUNNELDESTINATIONIPMODE._serialized_end=44180 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_start=43741 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE._serialized_end=43802 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_start=43751 + _VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM._serialized_end=43802 + _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_start=44182 + _VXLANV4TUNNELDESTINATIONIPMODEUNICAST._serialized_end=44284 + _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_start=44286 + _VXLANV6TUNNELDESTINATIONIPMODEUNICAST._serialized_end=44388 + _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_start=44391 + _VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE._serialized_end=44541 + _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=44544 + _VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=44737 + _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_start=44740 + _VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP._serialized_end=44933 + _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=44935 + _VXLANV4TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=45010 + _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_start=45012 + _VXLANV6TUNNELDESTINATIONIPMODEMULTICAST._serialized_end=45087 + _DEVICERSVP._serialized_start=45090 + _DEVICERSVP._serialized_end=45235 + _RSVPIPV4INTERFACE._serialized_start=45238 + _RSVPIPV4INTERFACE._serialized_end=45779 + _RSVPLSPIPV4INTERFACE._serialized_start=45782 + _RSVPLSPIPV4INTERFACE._serialized_end=46001 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_start=46004 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP._serialized_end=46487 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_start=46284 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE._serialized_end=46376 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_start=46304 + _RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM._serialized_end=46376 + _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_start=46490 + _RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP._serialized_end=47084 + _RSVPSESSIONATTRIBUTE._serialized_start=47087 + _RSVPSESSIONATTRIBUTE._serialized_end=47740 + _RSVPRESOURCEAFFINITIES._serialized_start=47743 + _RSVPRESOURCEAFFINITIES._serialized_end=47893 + _RSVPTSPEC._serialized_start=47896 + _RSVPTSPEC._serialized_end=48183 + _RSVPFASTREROUTE._serialized_start=48186 + _RSVPFASTREROUTE._serialized_end=48641 + _RSVPERO._serialized_start=48644 + _RSVPERO._serialized_end=48940 + _RSVPERO_PREPENDNEIGHBORIP._serialized_start=48797 + _RSVPERO_PREPENDNEIGHBORIP._serialized_end=48898 + _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_start=48818 + _RSVPERO_PREPENDNEIGHBORIP_ENUM._serialized_end=48898 + _RSVPEROSUBOBJECT._serialized_start=48943 + _RSVPEROSUBOBJECT._serialized_end=49339 + _RSVPEROSUBOBJECT_TYPE._serialized_start=49153 + _RSVPEROSUBOBJECT_TYPE._serialized_end=49209 + _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_start=49161 + _RSVPEROSUBOBJECT_TYPE_ENUM._serialized_end=49209 + _RSVPEROSUBOBJECT_HOPTYPE._serialized_start=49211 + _RSVPEROSUBOBJECT_HOPTYPE._serialized_end=49268 + _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_start=49222 + _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_end=49268 + _FLOW._serialized_start=49342 + _FLOW._serialized_end=49658 + _FLOWTXRX._serialized_start=49661 + _FLOWTXRX._serialized_end=49879 + _FLOWTXRX_CHOICE._serialized_start=49793 + _FLOWTXRX_CHOICE._serialized_end=49848 + _FLOWTXRX_CHOICE_ENUM._serialized_start=49803 + _FLOWTXRX_CHOICE_ENUM._serialized_end=49848 + _FLOWPORT._serialized_start=49881 + _FLOWPORT._serialized_end=49960 + _FLOWROUTER._serialized_start=49963 + _FLOWROUTER._serialized_end=50125 + _FLOWROUTER_MODE._serialized_start=50059 + _FLOWROUTER_MODE._serialized_end=50116 + _FLOWROUTER_MODE_ENUM._serialized_start=50067 + _FLOWROUTER_MODE_ENUM._serialized_end=50116 + _FLOWHEADER._serialized_start=50128 + _FLOWHEADER._serialized_end=51329 + _FLOWHEADER_CHOICE._serialized_start=50881 + _FLOWHEADER_CHOICE._serialized_end=51126 + _FLOWHEADER_CHOICE_ENUM._serialized_start=50892 + _FLOWHEADER_CHOICE_ENUM._serialized_end=51126 + _FLOWCUSTOM._serialized_start=51331 + _FLOWCUSTOM._serialized_end=51405 + _FLOWCUSTOMMETRICTAG._serialized_start=51407 + _FLOWCUSTOMMETRICTAG._serialized_end=51506 + _FLOWETHERNET._serialized_start=51509 + _FLOWETHERNET._serialized_end=51780 + _FLOWVLAN._serialized_start=51783 + _FLOWVLAN._serialized_end=52012 + _FLOWVXLAN._serialized_start=52015 + _FLOWVXLAN._serialized_end=52276 + _FLOWIPV4._serialized_start=52279 + _FLOWIPV4._serialized_end=53297 + _FLOWIPV4PRIORITY._serialized_start=53300 + _FLOWIPV4PRIORITY._serialized_end=53598 + _FLOWIPV4PRIORITY_CHOICE._serialized_start=53501 + _FLOWIPV4PRIORITY_CHOICE._serialized_end=53562 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=53511 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=53562 + _FLOWIPV4DSCP._serialized_start=53600 + _FLOWIPV4DSCP._serialized_end=53724 + _FLOWIPV4TOS._serialized_start=53727 + _FLOWIPV4TOS._serialized_end=54160 + _FLOWIPV6._serialized_start=54163 + _FLOWIPV6._serialized_end=54714 + _FLOWPFCPAUSE._serialized_start=54717 + _FLOWPFCPAUSE._serialized_end=55770 + _FLOWETHERNETPAUSE._serialized_start=55773 + _FLOWETHERNETPAUSE._serialized_end=56149 + _FLOWTCP._serialized_start=56152 + _FLOWTCP._serialized_end=57092 + _FLOWUDP._serialized_start=57095 + _FLOWUDP._serialized_end=57356 + _FLOWGRE._serialized_start=57359 + _FLOWGRE._serialized_end=57784 + _FLOWGTPV1._serialized_start=57787 + _FLOWGTPV1._serialized_end=58739 + _FLOWGTPEXTENSION._serialized_start=58742 + _FLOWGTPEXTENSION._serialized_end=59042 + _FLOWGTPV2._serialized_start=59045 + _FLOWGTPV2._serialized_end=59708 + _FLOWARP._serialized_start=59711 + _FLOWARP._serialized_end=60512 + _FLOWICMP._serialized_start=60515 + _FLOWICMP._serialized_end=60676 + _FLOWICMP_CHOICE._serialized_start=60613 + _FLOWICMP_CHOICE._serialized_end=60656 + _FLOWICMP_CHOICE_ENUM._serialized_start=60623 + _FLOWICMP_CHOICE_ENUM._serialized_end=60656 + _FLOWICMPECHO._serialized_start=60679 + _FLOWICMPECHO._serialized_end=61045 + _FLOWICMPV6._serialized_start=61048 + _FLOWICMPV6._serialized_end=61215 + _FLOWICMPV6_CHOICE._serialized_start=60613 + _FLOWICMPV6_CHOICE._serialized_end=60656 + _FLOWICMPV6_CHOICE_ENUM._serialized_start=60623 + _FLOWICMPV6_CHOICE_ENUM._serialized_end=60656 + _FLOWICMPV6ECHO._serialized_start=61218 + _FLOWICMPV6ECHO._serialized_end=61596 + _FLOWPPP._serialized_start=61599 + _FLOWPPP._serialized_end=61811 + _FLOWIGMPV1._serialized_start=61814 + _FLOWIGMPV1._serialized_end=62159 + _FLOWMPLS._serialized_start=62162 + _FLOWMPLS._serialized_end=62470 + _FLOWSIZE._serialized_start=62473 + _FLOWSIZE._serialized_end=62848 + _FLOWSIZE_CHOICE._serialized_start=62696 + _FLOWSIZE_CHOICE._serialized_end=62785 + _FLOWSIZE_CHOICE_ENUM._serialized_start=62706 + _FLOWSIZE_CHOICE_ENUM._serialized_end=62785 + _FLOWSIZEINCREMENT._serialized_start=62850 + _FLOWSIZEINCREMENT._serialized_end=62953 + _FLOWSIZERANDOM._serialized_start=62955 + _FLOWSIZERANDOM._serialized_end=63023 + _FLOWSIZEWEIGHTPAIRS._serialized_start=63026 + _FLOWSIZEWEIGHTPAIRS._serialized_end=63423 + _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_start=63223 + _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_end=63284 + _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_start=63233 + _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_end=63284 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_start=63286 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_end=63397 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_start=63300 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_end=63397 + _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_start=63425 + _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_end=63512 + _FLOWRATE._serialized_start=63515 + _FLOWRATE._serialized_end=63859 + _FLOWRATE_CHOICE._serialized_start=63693 + _FLOWRATE_CHOICE._serialized_end=63790 + _FLOWRATE_CHOICE_ENUM._serialized_start=63703 + _FLOWRATE_CHOICE_ENUM._serialized_end=63790 + _FLOWDURATION._serialized_start=63862 + _FLOWDURATION._serialized_end=64284 + _FLOWDURATION_CHOICE._serialized_start=64114 + _FLOWDURATION_CHOICE._serialized_end=64212 + _FLOWDURATION_CHOICE_ENUM._serialized_start=64124 + _FLOWDURATION_CHOICE_ENUM._serialized_end=64212 + _FLOWCONTINUOUS._serialized_start=64286 + _FLOWCONTINUOUS._serialized_end=64374 + _FLOWDELAY._serialized_start=64377 + _FLOWDELAY._serialized_end=64645 + _FLOWDELAY_CHOICE._serialized_start=64512 + _FLOWDELAY_CHOICE._serialized_end=64591 + _FLOWDELAY_CHOICE_ENUM._serialized_start=64522 + _FLOWDELAY_CHOICE_ENUM._serialized_end=64591 + _FLOWFIXEDPACKETS._serialized_start=64647 + _FLOWFIXEDPACKETS._serialized_end=64771 + _FLOWFIXEDSECONDS._serialized_start=64773 + _FLOWFIXEDSECONDS._serialized_end=64897 + _FLOWBURST._serialized_start=64900 + _FLOWBURST._serialized_end=65085 + _FLOWDURATIONINTERBURSTGAP._serialized_start=65088 + _FLOWDURATIONINTERBURSTGAP._serialized_end=65388 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=64512 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=64591 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=64522 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=64591 + _FLOWMETRICS._serialized_start=65391 + _FLOWMETRICS._serialized_end=65714 + _FLOWLATENCYMETRICS._serialized_start=65717 + _FLOWLATENCYMETRICS._serialized_end=65901 + _FLOWLATENCYMETRICS_MODE._serialized_start=65814 + _FLOWLATENCYMETRICS_MODE._serialized_end=65881 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=65822 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=65881 + _FLOWPREDEFINEDTAGS._serialized_start=65903 + _FLOWPREDEFINEDTAGS._serialized_end=65957 + _FLOWRXTXRATIO._serialized_start=65960 + _FLOWRXTXRATIO._serialized_end=66192 + _FLOWRXTXRATIO_CHOICE._serialized_start=66100 + _FLOWRXTXRATIO_CHOICE._serialized_end=66158 + _FLOWRXTXRATIO_CHOICE_ENUM._serialized_start=66110 + _FLOWRXTXRATIO_CHOICE_ENUM._serialized_end=66158 + _FLOWRXTXRATIORXCOUNT._serialized_start=66194 + _FLOWRXTXRATIORXCOUNT._serialized_end=66216 + _EVENT._serialized_start=66219 + _EVENT._serialized_end=66485 + _EVENTRXRATETHRESHOLD._serialized_start=66487 + _EVENTRXRATETHRESHOLD._serialized_end=66579 + _EVENTLINK._serialized_start=66581 + _EVENTLINK._serialized_end=66624 + _EVENTROUTEADVERTISEWITHDRAW._serialized_start=66626 + _EVENTROUTEADVERTISEWITHDRAW._serialized_end=66687 + _EVENTREQUEST._serialized_start=66690 + _EVENTREQUEST._serialized_end=66935 + _EVENTREQUEST_TYPE._serialized_start=66766 + _EVENTREQUEST_TYPE._serialized_end=66935 + _EVENTREQUEST_TYPE_ENUM._serialized_start=66775 + _EVENTREQUEST_TYPE_ENUM._serialized_end=66935 + _EVENTSUBSCRIPTION._serialized_start=66937 + _EVENTSUBSCRIPTION._serialized_end=67051 + _LLDP._serialized_start=67054 + _LLDP._serialized_end=67391 + _LLDPCONNECTION._serialized_start=67394 + _LLDPCONNECTION._serialized_end=67563 + _LLDPCONNECTION_CHOICE._serialized_start=67490 + _LLDPCONNECTION_CHOICE._serialized_end=67538 _LLDPCONNECTION_CHOICE_ENUM._serialized_start=2320 _LLDPCONNECTION_CHOICE_ENUM._serialized_end=2358 - _LLDPCHASSISID._serialized_start=62212 - _LLDPCHASSISID._serialized_end=62594 - _LLDPCHASSISID_CHOICE._serialized_start=62409 - _LLDPCHASSISID_CHOICE._serialized_end=62514 - _LLDPCHASSISID_CHOICE_ENUM._serialized_start=62419 - _LLDPCHASSISID_CHOICE_ENUM._serialized_end=62514 - _LLDPPORTID._serialized_start=62597 - _LLDPPORTID._serialized_end=62980 - _LLDPPORTID_CHOICE._serialized_start=62409 - _LLDPPORTID_CHOICE._serialized_end=62514 - _LLDPPORTID_CHOICE_ENUM._serialized_start=62419 - _LLDPPORTID_CHOICE_ENUM._serialized_end=62514 - _LLDPCHASSISMACSUBTYPE._serialized_start=62983 - _LLDPCHASSISMACSUBTYPE._serialized_end=63192 + _LLDPCHASSISID._serialized_start=67566 + _LLDPCHASSISID._serialized_end=67948 + _LLDPCHASSISID_CHOICE._serialized_start=67763 + _LLDPCHASSISID_CHOICE._serialized_end=67868 + _LLDPCHASSISID_CHOICE_ENUM._serialized_start=67773 + _LLDPCHASSISID_CHOICE_ENUM._serialized_end=67868 + _LLDPPORTID._serialized_start=67951 + _LLDPPORTID._serialized_end=68334 + _LLDPPORTID_CHOICE._serialized_start=67763 + _LLDPPORTID_CHOICE._serialized_end=67868 + _LLDPPORTID_CHOICE_ENUM._serialized_start=67773 + _LLDPPORTID_CHOICE_ENUM._serialized_end=67868 + _LLDPCHASSISMACSUBTYPE._serialized_start=68337 + _LLDPCHASSISMACSUBTYPE._serialized_end=68546 _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_start=3051 _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_end=3105 _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_start=3061 _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_end=3105 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=63195 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=63418 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=68549 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=68772 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_start=3051 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_end=3105 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_start=3061 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_end=3105 - _LLDPSYSTEMNAME._serialized_start=63421 - _LLDPSYSTEMNAME._serialized_end=63616 + _LLDPSYSTEMNAME._serialized_start=68775 + _LLDPSYSTEMNAME._serialized_end=68970 _LLDPSYSTEMNAME_CHOICE._serialized_start=3051 _LLDPSYSTEMNAME_CHOICE._serialized_end=3105 _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_start=3061 _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_end=3105 - _ERROR._serialized_start=63619 - _ERROR._serialized_end=63769 - _ERROR_KIND._serialized_start=63699 - _ERROR_KIND._serialized_end=63760 - _ERROR_KIND_ENUM._serialized_start=63707 - _ERROR_KIND_ENUM._serialized_end=63760 - _WARNING._serialized_start=63771 - _WARNING._serialized_end=63798 - _CONFIGUPDATE._serialized_start=63801 - _CONFIGUPDATE._serialized_end=63972 - _CONFIGUPDATE_CHOICE._serialized_start=63907 - _CONFIGUPDATE_CHOICE._serialized_end=63951 - _CONFIGUPDATE_CHOICE_ENUM._serialized_start=63917 - _CONFIGUPDATE_CHOICE_ENUM._serialized_end=63951 - _FLOWSUPDATE._serialized_start=63975 - _FLOWSUPDATE._serialized_end=64137 - _FLOWSUPDATE_PROPERTYNAMES._serialized_start=64077 - _FLOWSUPDATE_PROPERTYNAMES._serialized_end=64137 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=64094 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=64137 - _CONTROLSTATE._serialized_start=64140 - _CONTROLSTATE._serialized_end=64426 - _CONTROLSTATE_CHOICE._serialized_start=64322 - _CONTROLSTATE_CHOICE._serialized_end=64392 - _CONTROLSTATE_CHOICE_ENUM._serialized_start=64332 - _CONTROLSTATE_CHOICE_ENUM._serialized_end=64392 - _STATEPORT._serialized_start=64429 - _STATEPORT._serialized_end=64647 - _STATEPORT_CHOICE._serialized_start=64570 - _STATEPORT_CHOICE._serialized_end=64626 - _STATEPORT_CHOICE_ENUM._serialized_start=64580 - _STATEPORT_CHOICE_ENUM._serialized_end=64626 - _STATETRAFFIC._serialized_start=64650 - _STATETRAFFIC._serialized_end=64842 - _STATETRAFFIC_CHOICE._serialized_start=64772 - _STATETRAFFIC_CHOICE._serialized_end=64824 - _STATETRAFFIC_CHOICE_ENUM._serialized_start=64782 - _STATETRAFFIC_CHOICE_ENUM._serialized_end=64824 - _STATEPROTOCOL._serialized_start=64845 - _STATEPROTOCOL._serialized_end=65129 - _STATEPROTOCOL_CHOICE._serialized_start=65039 - _STATEPROTOCOL_CHOICE._serialized_end=65102 - _STATEPROTOCOL_CHOICE_ENUM._serialized_start=65049 - _STATEPROTOCOL_CHOICE_ENUM._serialized_end=65102 - _STATEPORTLINK._serialized_start=65132 - _STATEPORTLINK._serialized_end=65265 - _STATEPORTLINK_STATE._serialized_start=65215 - _STATEPORTLINK_STATE._serialized_end=65265 + _ERROR._serialized_start=68973 + _ERROR._serialized_end=69123 + _ERROR_KIND._serialized_start=69053 + _ERROR_KIND._serialized_end=69114 + _ERROR_KIND_ENUM._serialized_start=69061 + _ERROR_KIND_ENUM._serialized_end=69114 + _WARNING._serialized_start=69125 + _WARNING._serialized_end=69152 + _CONFIGUPDATE._serialized_start=69155 + _CONFIGUPDATE._serialized_end=69326 + _CONFIGUPDATE_CHOICE._serialized_start=69261 + _CONFIGUPDATE_CHOICE._serialized_end=69305 + _CONFIGUPDATE_CHOICE_ENUM._serialized_start=69271 + _CONFIGUPDATE_CHOICE_ENUM._serialized_end=69305 + _FLOWSUPDATE._serialized_start=69329 + _FLOWSUPDATE._serialized_end=69491 + _FLOWSUPDATE_PROPERTYNAMES._serialized_start=69431 + _FLOWSUPDATE_PROPERTYNAMES._serialized_end=69491 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=69448 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=69491 + _CONTROLSTATE._serialized_start=69494 + _CONTROLSTATE._serialized_end=69780 + _CONTROLSTATE_CHOICE._serialized_start=69676 + _CONTROLSTATE_CHOICE._serialized_end=69746 + _CONTROLSTATE_CHOICE_ENUM._serialized_start=69686 + _CONTROLSTATE_CHOICE_ENUM._serialized_end=69746 + _STATEPORT._serialized_start=69783 + _STATEPORT._serialized_end=70001 + _STATEPORT_CHOICE._serialized_start=69924 + _STATEPORT_CHOICE._serialized_end=69980 + _STATEPORT_CHOICE_ENUM._serialized_start=69934 + _STATEPORT_CHOICE_ENUM._serialized_end=69980 + _STATETRAFFIC._serialized_start=70004 + _STATETRAFFIC._serialized_end=70196 + _STATETRAFFIC_CHOICE._serialized_start=70126 + _STATETRAFFIC_CHOICE._serialized_end=70178 + _STATETRAFFIC_CHOICE_ENUM._serialized_start=70136 + _STATETRAFFIC_CHOICE_ENUM._serialized_end=70178 + _STATEPROTOCOL._serialized_start=70199 + _STATEPROTOCOL._serialized_end=70483 + _STATEPROTOCOL_CHOICE._serialized_start=70393 + _STATEPROTOCOL_CHOICE._serialized_end=70456 + _STATEPROTOCOL_CHOICE_ENUM._serialized_start=70403 + _STATEPROTOCOL_CHOICE_ENUM._serialized_end=70456 + _STATEPORTLINK._serialized_start=70486 + _STATEPORTLINK._serialized_end=70619 + _STATEPORTLINK_STATE._serialized_start=70569 + _STATEPORTLINK_STATE._serialized_end=70619 _STATEPORTLINK_STATE_ENUM._serialized_start=13446 _STATEPORTLINK_STATE_ENUM._serialized_end=13487 - _STATEPORTCAPTURE._serialized_start=65268 - _STATEPORTCAPTURE._serialized_end=65410 - _STATEPORTCAPTURE_STATE._serialized_start=65357 - _STATEPORTCAPTURE_STATE._serialized_end=65410 - _STATEPORTCAPTURE_STATE_ENUM._serialized_start=65366 - _STATEPORTCAPTURE_STATE_ENUM._serialized_end=65410 - _STATETRAFFICFLOWTRANSMIT._serialized_start=65413 - _STATETRAFFICFLOWTRANSMIT._serialized_end=65594 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=65518 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=65594 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=65527 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=65594 - _STATEPROTOCOLALL._serialized_start=65596 - _STATEPROTOCOLALL._serialized_end=65718 - _STATEPROTOCOLALL_STATE._serialized_start=65357 - _STATEPROTOCOLALL_STATE._serialized_end=65410 - _STATEPROTOCOLALL_STATE_ENUM._serialized_start=65366 - _STATEPROTOCOLALL_STATE_ENUM._serialized_end=65410 - _STATEPROTOCOLROUTE._serialized_start=65721 - _STATEPROTOCOLROUTE._serialized_end=65870 - _STATEPROTOCOLROUTE_STATE._serialized_start=65809 - _STATEPROTOCOLROUTE_STATE._serialized_end=65870 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=65818 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=65870 - _STATEPROTOCOLLACP._serialized_start=65873 - _STATEPROTOCOLLACP._serialized_end=66049 - _STATEPROTOCOLLACP_CHOICE._serialized_start=65995 - _STATEPROTOCOLLACP_CHOICE._serialized_end=66039 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=66005 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=66039 - _STATEPROTOCOLLACPADMIN._serialized_start=66052 - _STATEPROTOCOLLACPADMIN._serialized_end=66209 - _STATEPROTOCOLLACPADMIN_STATE._serialized_start=65215 - _STATEPROTOCOLLACPADMIN_STATE._serialized_end=65265 + _STATEPORTCAPTURE._serialized_start=70622 + _STATEPORTCAPTURE._serialized_end=70764 + _STATEPORTCAPTURE_STATE._serialized_start=70711 + _STATEPORTCAPTURE_STATE._serialized_end=70764 + _STATEPORTCAPTURE_STATE_ENUM._serialized_start=70720 + _STATEPORTCAPTURE_STATE_ENUM._serialized_end=70764 + _STATETRAFFICFLOWTRANSMIT._serialized_start=70767 + _STATETRAFFICFLOWTRANSMIT._serialized_end=70948 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=70872 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=70948 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=70881 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=70948 + _STATEPROTOCOLALL._serialized_start=70950 + _STATEPROTOCOLALL._serialized_end=71072 + _STATEPROTOCOLALL_STATE._serialized_start=70711 + _STATEPROTOCOLALL_STATE._serialized_end=70764 + _STATEPROTOCOLALL_STATE_ENUM._serialized_start=70720 + _STATEPROTOCOLALL_STATE_ENUM._serialized_end=70764 + _STATEPROTOCOLROUTE._serialized_start=71075 + _STATEPROTOCOLROUTE._serialized_end=71224 + _STATEPROTOCOLROUTE_STATE._serialized_start=71163 + _STATEPROTOCOLROUTE_STATE._serialized_end=71224 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=71172 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=71224 + _STATEPROTOCOLLACP._serialized_start=71227 + _STATEPROTOCOLLACP._serialized_end=71403 + _STATEPROTOCOLLACP_CHOICE._serialized_start=71349 + _STATEPROTOCOLLACP_CHOICE._serialized_end=71393 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=71359 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=71393 + _STATEPROTOCOLLACPADMIN._serialized_start=71406 + _STATEPROTOCOLLACPADMIN._serialized_end=71563 + _STATEPROTOCOLLACPADMIN_STATE._serialized_start=70569 + _STATEPROTOCOLLACPADMIN_STATE._serialized_end=70619 _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_start=13446 _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_end=13487 - _CONTROLACTION._serialized_start=66212 - _CONTROLACTION._serialized_end=66381 - _CONTROLACTION_CHOICE._serialized_start=66321 - _CONTROLACTION_CHOICE._serialized_end=66368 - _CONTROLACTION_CHOICE_ENUM._serialized_start=66331 - _CONTROLACTION_CHOICE_ENUM._serialized_end=66368 - _CONTROLACTIONRESPONSE._serialized_start=66383 - _CONTROLACTIONRESPONSE._serialized_end=66481 - _ACTIONRESPONSE._serialized_start=66484 - _ACTIONRESPONSE._serialized_end=66663 - _ACTIONRESPONSE_CHOICE._serialized_start=66321 - _ACTIONRESPONSE_CHOICE._serialized_end=66368 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=66331 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=66368 - _ACTIONPROTOCOL._serialized_start=66666 - _ACTIONPROTOCOL._serialized_end=66951 - _ACTIONPROTOCOL_CHOICE._serialized_start=66863 - _ACTIONPROTOCOL_CHOICE._serialized_end=66925 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=66873 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=66925 - _ACTIONRESPONSEPROTOCOL._serialized_start=66954 - _ACTIONRESPONSEPROTOCOL._serialized_end=67212 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=67141 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=67194 - _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_start=24524 - _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_end=24567 - _ACTIONPROTOCOLIPV4._serialized_start=67215 - _ACTIONPROTOCOLIPV4._serialized_end=67390 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=67338 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=67381 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=67348 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=67381 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=67393 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=67592 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=67338 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=67381 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=67348 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=67381 - _ACTIONPROTOCOLIPV4PING._serialized_start=67594 - _ACTIONPROTOCOLIPV4PING._serialized_end=67672 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=67674 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=67773 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=67775 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=67871 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=67874 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=68083 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=68023 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=68083 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=68033 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=68083 - _ACTIONPROTOCOLIPV6._serialized_start=68086 - _ACTIONPROTOCOLIPV6._serialized_end=68261 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=67338 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=67381 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=67348 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=67381 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=68264 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=68463 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=67338 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=67381 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=67348 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=67381 - _ACTIONPROTOCOLIPV6PING._serialized_start=68465 - _ACTIONPROTOCOLIPV6PING._serialized_end=68543 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=68545 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=68644 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=68646 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=68742 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=68745 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=68954 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=68023 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=68083 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=68033 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=68083 - _ACTIONPROTOCOLBGP._serialized_start=68957 - _ACTIONPROTOCOLBGP._serialized_end=69309 - _ACTIONPROTOCOLBGP_CHOICE._serialized_start=69180 - _ACTIONPROTOCOLBGP_CHOICE._serialized_end=69262 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=69190 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=69262 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=69312 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=70220 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=69872 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=70061 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=69883 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=70061 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=70222 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=70330 - _METRICSREQUEST._serialized_start=70333 - _METRICSREQUEST._serialized_end=71020 - _METRICSREQUEST_CHOICE._serialized_start=70803 - _METRICSREQUEST_CHOICE._serialized_end=70927 - _METRICSREQUEST_CHOICE_ENUM._serialized_start=70813 - _METRICSREQUEST_CHOICE_ENUM._serialized_end=70927 - _METRICSRESPONSE._serialized_start=71023 - _METRICSRESPONSE._serialized_end=71659 - _METRICSRESPONSE_CHOICE._serialized_start=71451 - _METRICSRESPONSE_CHOICE._serialized_end=71648 - _METRICSRESPONSE_CHOICE_ENUM._serialized_start=71462 - _METRICSRESPONSE_CHOICE_ENUM._serialized_end=71648 - _PORTMETRICSREQUEST._serialized_start=71662 - _PORTMETRICSREQUEST._serialized_end=71995 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=71769 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=71995 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=71785 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=71995 - _PORTMETRIC._serialized_start=71998 - _PORTMETRIC._serialized_end=72772 - _PORTMETRIC_LINK._serialized_start=72414 - _PORTMETRIC_LINK._serialized_end=72463 + _CONTROLACTION._serialized_start=71566 + _CONTROLACTION._serialized_end=71735 + _CONTROLACTION_CHOICE._serialized_start=71675 + _CONTROLACTION_CHOICE._serialized_end=71722 + _CONTROLACTION_CHOICE_ENUM._serialized_start=71685 + _CONTROLACTION_CHOICE_ENUM._serialized_end=71722 + _CONTROLACTIONRESPONSE._serialized_start=71737 + _CONTROLACTIONRESPONSE._serialized_end=71835 + _ACTIONRESPONSE._serialized_start=71838 + _ACTIONRESPONSE._serialized_end=72017 + _ACTIONRESPONSE_CHOICE._serialized_start=71675 + _ACTIONRESPONSE_CHOICE._serialized_end=71722 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=71685 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=71722 + _ACTIONPROTOCOL._serialized_start=72020 + _ACTIONPROTOCOL._serialized_end=72305 + _ACTIONPROTOCOL_CHOICE._serialized_start=72217 + _ACTIONPROTOCOL_CHOICE._serialized_end=72279 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=72227 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=72279 + _ACTIONRESPONSEPROTOCOL._serialized_start=72308 + _ACTIONRESPONSEPROTOCOL._serialized_end=72566 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=72495 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=72548 + _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_start=24581 + _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_end=24624 + _ACTIONPROTOCOLIPV4._serialized_start=72569 + _ACTIONPROTOCOLIPV4._serialized_end=72744 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=72692 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=72735 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=72702 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=72735 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=72747 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=72946 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=72692 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=72735 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=72702 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=72735 + _ACTIONPROTOCOLIPV4PING._serialized_start=72948 + _ACTIONPROTOCOLIPV4PING._serialized_end=73026 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=73028 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=73127 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=73129 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=73225 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=73228 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=73437 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=73377 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=73437 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=73387 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=73437 + _ACTIONPROTOCOLIPV6._serialized_start=73440 + _ACTIONPROTOCOLIPV6._serialized_end=73615 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=72692 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=72735 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=72702 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=72735 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=73618 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=73817 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=72692 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=72735 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=72702 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=72735 + _ACTIONPROTOCOLIPV6PING._serialized_start=73819 + _ACTIONPROTOCOLIPV6PING._serialized_end=73897 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=73899 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=73998 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=74000 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=74096 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=74099 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=74308 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=73377 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=73437 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=73387 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=73437 + _ACTIONPROTOCOLBGP._serialized_start=74311 + _ACTIONPROTOCOLBGP._serialized_end=74663 + _ACTIONPROTOCOLBGP_CHOICE._serialized_start=74534 + _ACTIONPROTOCOLBGP_CHOICE._serialized_end=74616 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=74544 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=74616 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=74666 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=75574 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=75226 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=75415 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=75237 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=75415 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=75576 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=75684 + _METRICSREQUEST._serialized_start=75687 + _METRICSREQUEST._serialized_end=76374 + _METRICSREQUEST_CHOICE._serialized_start=76157 + _METRICSREQUEST_CHOICE._serialized_end=76281 + _METRICSREQUEST_CHOICE_ENUM._serialized_start=76167 + _METRICSREQUEST_CHOICE_ENUM._serialized_end=76281 + _METRICSRESPONSE._serialized_start=76377 + _METRICSRESPONSE._serialized_end=77013 + _METRICSRESPONSE_CHOICE._serialized_start=76805 + _METRICSRESPONSE_CHOICE._serialized_end=77002 + _METRICSRESPONSE_CHOICE_ENUM._serialized_start=76816 + _METRICSRESPONSE_CHOICE_ENUM._serialized_end=77002 + _PORTMETRICSREQUEST._serialized_start=77016 + _PORTMETRICSREQUEST._serialized_end=77349 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=77123 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=77349 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=77139 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=77349 + _PORTMETRIC._serialized_start=77352 + _PORTMETRIC._serialized_end=78126 + _PORTMETRIC_LINK._serialized_start=77768 + _PORTMETRIC_LINK._serialized_end=77817 _PORTMETRIC_LINK_ENUM._serialized_start=13446 _PORTMETRIC_LINK_ENUM._serialized_end=13487 - _PORTMETRIC_CAPTURE._serialized_start=72465 - _PORTMETRIC_CAPTURE._serialized_end=72525 - _PORTMETRIC_CAPTURE_ENUM._serialized_start=72476 - _PORTMETRIC_CAPTURE_ENUM._serialized_end=72525 - _PORTMETRIC_TRANSMIT._serialized_start=72527 - _PORTMETRIC_TRANSMIT._serialized_end=72588 - _PORTMETRIC_TRANSMIT_ENUM._serialized_start=72476 - _PORTMETRIC_TRANSMIT_ENUM._serialized_end=72525 - _FLOWMETRICSREQUEST._serialized_start=72775 - _FLOWMETRICSREQUEST._serialized_end=73111 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=72941 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=73092 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=72957 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=73092 - _FLOWTAGGEDMETRICSFILTER._serialized_start=73114 - _FLOWTAGGEDMETRICSFILTER._serialized_end=73486 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=73312 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=73448 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=73327 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=73448 - _FLOWMETRICTAGFILTER._serialized_start=73488 - _FLOWMETRICTAGFILTER._serialized_end=73553 - _FLOWMETRIC._serialized_start=73556 - _FLOWMETRIC._serialized_end=74241 - _FLOWMETRIC_TRANSMIT._serialized_start=73994 - _FLOWMETRIC_TRANSMIT._serialized_end=74067 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=74006 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=74067 - _FLOWTAGGEDMETRIC._serialized_start=74244 - _FLOWTAGGEDMETRIC._serialized_end=74684 - _FLOWMETRICTAG._serialized_start=74686 - _FLOWMETRICTAG._serialized_end=74784 - _FLOWMETRICTAGVALUE._serialized_start=74787 - _FLOWMETRICTAGVALUE._serialized_end=74981 - _FLOWMETRICTAGVALUE_CHOICE._serialized_start=74903 - _FLOWMETRICTAGVALUE_CHOICE._serialized_end=74954 - _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=74913 - _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=74954 - _METRICTIMESTAMP._serialized_start=74983 - _METRICTIMESTAMP._serialized_end=75110 - _METRICLATENCY._serialized_start=75113 - _METRICLATENCY._serialized_end=75248 - _BGPV4METRICSREQUEST._serialized_start=75251 - _BGPV4METRICSREQUEST._serialized_end=75756 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=75360 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=75756 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=75376 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=75756 - _BGPV4METRIC._serialized_start=75759 - _BGPV4METRIC._serialized_end=76889 - _BGPV4METRIC_SESSIONSTATE._serialized_start=76362 - _BGPV4METRIC_SESSIONSTATE._serialized_end=76419 + _PORTMETRIC_CAPTURE._serialized_start=77819 + _PORTMETRIC_CAPTURE._serialized_end=77879 + _PORTMETRIC_CAPTURE_ENUM._serialized_start=77830 + _PORTMETRIC_CAPTURE_ENUM._serialized_end=77879 + _PORTMETRIC_TRANSMIT._serialized_start=77881 + _PORTMETRIC_TRANSMIT._serialized_end=77942 + _PORTMETRIC_TRANSMIT_ENUM._serialized_start=77830 + _PORTMETRIC_TRANSMIT_ENUM._serialized_end=77879 + _FLOWMETRICSREQUEST._serialized_start=78129 + _FLOWMETRICSREQUEST._serialized_end=78465 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=78295 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=78446 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=78311 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=78446 + _FLOWTAGGEDMETRICSFILTER._serialized_start=78468 + _FLOWTAGGEDMETRICSFILTER._serialized_end=78840 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=78666 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=78802 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=78681 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=78802 + _FLOWMETRICTAGFILTER._serialized_start=78842 + _FLOWMETRICTAGFILTER._serialized_end=78907 + _FLOWMETRIC._serialized_start=78910 + _FLOWMETRIC._serialized_end=79595 + _FLOWMETRIC_TRANSMIT._serialized_start=79348 + _FLOWMETRIC_TRANSMIT._serialized_end=79421 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=79360 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=79421 + _FLOWTAGGEDMETRIC._serialized_start=79598 + _FLOWTAGGEDMETRIC._serialized_end=80038 + _FLOWMETRICTAG._serialized_start=80040 + _FLOWMETRICTAG._serialized_end=80138 + _FLOWMETRICTAGVALUE._serialized_start=80141 + _FLOWMETRICTAGVALUE._serialized_end=80335 + _FLOWMETRICTAGVALUE_CHOICE._serialized_start=80257 + _FLOWMETRICTAGVALUE_CHOICE._serialized_end=80308 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=80267 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=80308 + _METRICTIMESTAMP._serialized_start=80337 + _METRICTIMESTAMP._serialized_end=80464 + _METRICLATENCY._serialized_start=80467 + _METRICLATENCY._serialized_end=80602 + _BGPV4METRICSREQUEST._serialized_start=80605 + _BGPV4METRICSREQUEST._serialized_end=81110 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=80714 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=81110 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80730 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81110 + _BGPV4METRIC._serialized_start=81113 + _BGPV4METRIC._serialized_end=82243 + _BGPV4METRIC_SESSIONSTATE._serialized_start=81716 + _BGPV4METRIC_SESSIONSTATE._serialized_end=81773 _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_start=13446 _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_end=13487 - _BGPV4METRIC_FSMSTATE._serialized_start=76421 - _BGPV4METRIC_FSMSTATE._serialized_end=76539 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=76433 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=76539 - _BGPV6METRICSREQUEST._serialized_start=76892 - _BGPV6METRICSREQUEST._serialized_end=77397 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=75360 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=75756 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=75376 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=75756 - _BGPV6METRIC._serialized_start=77400 - _BGPV6METRIC._serialized_end=78530 - _BGPV6METRIC_SESSIONSTATE._serialized_start=76362 - _BGPV6METRIC_SESSIONSTATE._serialized_end=76419 + _BGPV4METRIC_FSMSTATE._serialized_start=81775 + _BGPV4METRIC_FSMSTATE._serialized_end=81893 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=81787 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=81893 + _BGPV6METRICSREQUEST._serialized_start=82246 + _BGPV6METRICSREQUEST._serialized_end=82751 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=80714 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=81110 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80730 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81110 + _BGPV6METRIC._serialized_start=82754 + _BGPV6METRIC._serialized_end=83884 + _BGPV6METRIC_SESSIONSTATE._serialized_start=81716 + _BGPV6METRIC_SESSIONSTATE._serialized_end=81773 _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_start=13446 _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_end=13487 - _BGPV6METRIC_FSMSTATE._serialized_start=76421 - _BGPV6METRIC_FSMSTATE._serialized_end=76539 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=76433 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=76539 - _ISISMETRICSREQUEST._serialized_start=78533 - _ISISMETRICSREQUEST._serialized_end=79319 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=78642 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=79319 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=78658 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=79319 - _ISISMETRIC._serialized_start=79322 - _ISISMETRIC._serialized_end=80846 - _LAGMETRICSREQUEST._serialized_start=80849 - _LAGMETRICSREQUEST._serialized_end=81166 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=80953 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=81166 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80969 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81166 - _LAGMETRIC._serialized_start=81169 - _LAGMETRIC._serialized_end=81725 - _LAGMETRIC_OPERSTATUS._serialized_start=81497 - _LAGMETRIC_OPERSTATUS._serialized_end=81552 + _BGPV6METRIC_FSMSTATE._serialized_start=81775 + _BGPV6METRIC_FSMSTATE._serialized_end=81893 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=81787 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=81893 + _ISISMETRICSREQUEST._serialized_start=83887 + _ISISMETRICSREQUEST._serialized_end=84673 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=83996 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=84673 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=84012 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=84673 + _ISISMETRIC._serialized_start=84676 + _ISISMETRIC._serialized_end=86200 + _LAGMETRICSREQUEST._serialized_start=86203 + _LAGMETRICSREQUEST._serialized_end=86520 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=86307 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=86520 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=86323 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=86520 + _LAGMETRIC._serialized_start=86523 + _LAGMETRIC._serialized_end=87079 + _LAGMETRIC_OPERSTATUS._serialized_start=86851 + _LAGMETRIC_OPERSTATUS._serialized_end=86906 _LAGMETRIC_OPERSTATUS_ENUM._serialized_start=13446 _LAGMETRIC_OPERSTATUS_ENUM._serialized_end=13487 - _LACPMETRICSREQUEST._serialized_start=81728 - _LACPMETRICSREQUEST._serialized_end=82164 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=81865 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=82164 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=81881 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=82164 - _LACPMETRIC._serialized_start=82167 - _LACPMETRIC._serialized_end=83204 - _LACPMETRIC_ACTIVITY._serialized_start=82733 - _LACPMETRIC_ACTIVITY._serialized_end=82793 - _LACPMETRIC_ACTIVITY_ENUM._serialized_start=82745 - _LACPMETRIC_ACTIVITY_ENUM._serialized_end=82793 - _LACPMETRIC_TIMEOUT._serialized_start=82795 - _LACPMETRIC_TIMEOUT._serialized_end=82850 - _LACPMETRIC_TIMEOUT_ENUM._serialized_start=82806 - _LACPMETRIC_TIMEOUT_ENUM._serialized_end=82850 - _LACPMETRIC_SYNCHRONIZATION._serialized_start=82852 - _LACPMETRIC_SYNCHRONIZATION._serialized_end=82921 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=82871 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=82921 - _LLDPMETRICSREQUEST._serialized_start=83207 - _LLDPMETRICSREQUEST._serialized_end=83460 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=83314 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=83460 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=83330 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=83460 - _LLDPMETRIC._serialized_start=83463 - _LLDPMETRIC._serialized_end=83765 - _RSVPMETRICSREQUEST._serialized_start=83768 - _RSVPMETRICSREQUEST._serialized_end=84474 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=83877 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=84474 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=83893 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=84474 - _RSVPMETRIC._serialized_start=84477 - _RSVPMETRIC._serialized_end=85873 - _STATESREQUEST._serialized_start=85876 - _STATESREQUEST._serialized_end=86540 - _STATESREQUEST_CHOICE._serialized_start=86285 - _STATESREQUEST_CHOICE._serialized_end=86427 - _STATESREQUEST_CHOICE_ENUM._serialized_start=86296 - _STATESREQUEST_CHOICE_ENUM._serialized_end=86427 - _STATESRESPONSE._serialized_start=86543 - _STATESRESPONSE._serialized_end=87035 - _STATESRESPONSE_CHOICE._serialized_start=86285 - _STATESRESPONSE_CHOICE._serialized_end=86427 - _STATESRESPONSE_CHOICE_ENUM._serialized_start=86296 - _STATESRESPONSE_CHOICE_ENUM._serialized_end=86427 - _NEIGHBORSV4STATESREQUEST._serialized_start=87037 - _NEIGHBORSV4STATESREQUEST._serialized_end=87087 - _NEIGHBORSV4STATE._serialized_start=87089 - _NEIGHBORSV4STATE._serialized_end=87208 - _NEIGHBORSV6STATESREQUEST._serialized_start=87210 - _NEIGHBORSV6STATESREQUEST._serialized_end=87260 - _NEIGHBORSV6STATE._serialized_start=87262 - _NEIGHBORSV6STATE._serialized_end=87381 - _BGPPREFIXSTATEREQUEST._serialized_start=87384 - _BGPPREFIXSTATEREQUEST._serialized_end=87706 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=87630 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=87706 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=87647 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=87706 - _BGPPREFIXIPV4UNICASTFILTER._serialized_start=87709 - _BGPPREFIXIPV4UNICASTFILTER._serialized_end=87982 + _LACPMETRICSREQUEST._serialized_start=87082 + _LACPMETRICSREQUEST._serialized_end=87518 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=87219 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=87518 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=87235 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=87518 + _LACPMETRIC._serialized_start=87521 + _LACPMETRIC._serialized_end=88558 + _LACPMETRIC_ACTIVITY._serialized_start=88087 + _LACPMETRIC_ACTIVITY._serialized_end=88147 + _LACPMETRIC_ACTIVITY_ENUM._serialized_start=88099 + _LACPMETRIC_ACTIVITY_ENUM._serialized_end=88147 + _LACPMETRIC_TIMEOUT._serialized_start=88149 + _LACPMETRIC_TIMEOUT._serialized_end=88204 + _LACPMETRIC_TIMEOUT_ENUM._serialized_start=88160 + _LACPMETRIC_TIMEOUT_ENUM._serialized_end=88204 + _LACPMETRIC_SYNCHRONIZATION._serialized_start=88206 + _LACPMETRIC_SYNCHRONIZATION._serialized_end=88275 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=88225 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=88275 + _LLDPMETRICSREQUEST._serialized_start=88561 + _LLDPMETRICSREQUEST._serialized_end=88814 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=88668 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=88814 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=88684 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=88814 + _LLDPMETRIC._serialized_start=88817 + _LLDPMETRIC._serialized_end=89119 + _RSVPMETRICSREQUEST._serialized_start=89122 + _RSVPMETRICSREQUEST._serialized_end=89828 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=89231 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=89828 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=89247 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=89828 + _RSVPMETRIC._serialized_start=89831 + _RSVPMETRIC._serialized_end=91227 + _STATESREQUEST._serialized_start=91230 + _STATESREQUEST._serialized_end=91894 + _STATESREQUEST_CHOICE._serialized_start=91639 + _STATESREQUEST_CHOICE._serialized_end=91781 + _STATESREQUEST_CHOICE_ENUM._serialized_start=91650 + _STATESREQUEST_CHOICE_ENUM._serialized_end=91781 + _STATESRESPONSE._serialized_start=91897 + _STATESRESPONSE._serialized_end=92389 + _STATESRESPONSE_CHOICE._serialized_start=91639 + _STATESRESPONSE_CHOICE._serialized_end=91781 + _STATESRESPONSE_CHOICE_ENUM._serialized_start=91650 + _STATESRESPONSE_CHOICE_ENUM._serialized_end=91781 + _NEIGHBORSV4STATESREQUEST._serialized_start=92391 + _NEIGHBORSV4STATESREQUEST._serialized_end=92441 + _NEIGHBORSV4STATE._serialized_start=92443 + _NEIGHBORSV4STATE._serialized_end=92562 + _NEIGHBORSV6STATESREQUEST._serialized_start=92564 + _NEIGHBORSV6STATESREQUEST._serialized_end=92614 + _NEIGHBORSV6STATE._serialized_start=92616 + _NEIGHBORSV6STATE._serialized_end=92735 + _BGPPREFIXSTATEREQUEST._serialized_start=92738 + _BGPPREFIXSTATEREQUEST._serialized_end=93060 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=92984 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=93060 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=93001 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=93060 + _BGPPREFIXIPV4UNICASTFILTER._serialized_start=93063 + _BGPPREFIXIPV4UNICASTFILTER._serialized_end=93336 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_start=18460 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_end=18527 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_start=18470 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXIPV6UNICASTFILTER._serialized_start=87985 - _BGPPREFIXIPV6UNICASTFILTER._serialized_end=88258 + _BGPPREFIXIPV6UNICASTFILTER._serialized_start=93339 + _BGPPREFIXIPV6UNICASTFILTER._serialized_end=93612 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_start=18460 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_end=18527 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_start=18470 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXESSTATE._serialized_start=88261 - _BGPPREFIXESSTATE._serialized_end=88451 - _BGPPREFIXIPV4UNICASTSTATE._serialized_start=88454 - _BGPPREFIXIPV4UNICASTSTATE._serialized_end=89064 + _BGPPREFIXESSTATE._serialized_start=93615 + _BGPPREFIXESSTATE._serialized_end=93805 + _BGPPREFIXIPV4UNICASTSTATE._serialized_start=93808 + _BGPPREFIXIPV4UNICASTSTATE._serialized_end=94418 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_start=18460 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_end=18527 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_start=18470 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_end=18527 - _BGPPREFIXIPV6UNICASTSTATE._serialized_start=89067 - _BGPPREFIXIPV6UNICASTSTATE._serialized_end=89677 + _BGPPREFIXIPV6UNICASTSTATE._serialized_start=94421 + _BGPPREFIXIPV6UNICASTSTATE._serialized_end=95031 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_start=18460 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_end=18527 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_start=18470 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_end=18527 - _RESULTBGPCOMMUNITY._serialized_start=89680 - _RESULTBGPCOMMUNITY._serialized_end=89984 + _RESULTBGPCOMMUNITY._serialized_start=95034 + _RESULTBGPCOMMUNITY._serialized_end=95338 _RESULTBGPCOMMUNITY_TYPE._serialized_start=18789 _RESULTBGPCOMMUNITY_TYPE._serialized_end=18931 _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_start=18798 _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_end=18931 - _RESULTBGPASPATH._serialized_start=89986 - _RESULTBGPASPATH._serialized_end=90050 - _RESULTBGPASPATHSEGMENT._serialized_start=90053 - _RESULTBGPASPATHSEGMENT._serialized_end=90259 + _RESULTBGPASPATH._serialized_start=95340 + _RESULTBGPASPATH._serialized_end=95404 + _RESULTBGPASPATHSEGMENT._serialized_start=95407 + _RESULTBGPASPATHSEGMENT._serialized_end=95613 _RESULTBGPASPATHSEGMENT_TYPE._serialized_start=19892 _RESULTBGPASPATHSEGMENT_TYPE._serialized_end=19985 _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_start=19900 _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_end=19985 - _ISISLSPSSTATEREQUEST._serialized_start=90261 - _ISISLSPSSTATEREQUEST._serialized_end=90310 - _ISISLSPSSTATE._serialized_start=90312 - _ISISLSPSSTATE._serialized_end=90412 - _ISISLSPSTATE._serialized_start=90415 - _ISISLSPSTATE._serialized_end=90850 - _ISISLSPSTATE_PDUTYPE._serialized_start=90688 - _ISISLSPSTATE_PDUTYPE._serialized_end=90748 + _ISISLSPSSTATEREQUEST._serialized_start=95615 + _ISISLSPSSTATEREQUEST._serialized_end=95664 + _ISISLSPSSTATE._serialized_start=95666 + _ISISLSPSSTATE._serialized_end=95766 + _ISISLSPSTATE._serialized_start=95769 + _ISISLSPSTATE._serialized_end=96204 + _ISISLSPSTATE_PDUTYPE._serialized_start=96042 + _ISISLSPSTATE_PDUTYPE._serialized_end=96102 _ISISLSPSTATE_PDUTYPE_ENUM._serialized_start=9909 _ISISLSPSTATE_PDUTYPE_ENUM._serialized_end=9958 - _ISISLSPTLVS._serialized_start=90853 - _ISISLSPTLVS._serialized_end=91361 - _ISISLSPHOSTNAME._serialized_start=91363 - _ISISLSPHOSTNAME._serialized_end=91416 - _ISISLSPFLAGS._serialized_start=91419 - _ISISLSPFLAGS._serialized_end=91721 - _ISISLSPISREACHABILITYTLV._serialized_start=91723 - _ISISLSPISREACHABILITYTLV._serialized_end=91790 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=91792 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=91867 - _ISISLSPNEIGHBOR._serialized_start=91869 - _ISISLSPNEIGHBOR._serialized_end=91924 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=91926 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=92002 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=92004 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=92080 - _ISISLSPV4PREFIX._serialized_start=92083 - _ISISLSPV4PREFIX._serialized_end=92554 + _ISISLSPTLVS._serialized_start=96207 + _ISISLSPTLVS._serialized_end=96715 + _ISISLSPHOSTNAME._serialized_start=96717 + _ISISLSPHOSTNAME._serialized_end=96770 + _ISISLSPFLAGS._serialized_start=96773 + _ISISLSPFLAGS._serialized_end=97075 + _ISISLSPISREACHABILITYTLV._serialized_start=97077 + _ISISLSPISREACHABILITYTLV._serialized_end=97144 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=97146 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=97221 + _ISISLSPNEIGHBOR._serialized_start=97223 + _ISISLSPNEIGHBOR._serialized_end=97278 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=97280 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=97356 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=97358 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=97434 + _ISISLSPV4PREFIX._serialized_start=97437 + _ISISLSPV4PREFIX._serialized_end=97908 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 @@ -1181,18 +1245,18 @@ _ISISLSPV4PREFIX_ORIGINTYPE._serialized_end=13422 _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_start=13371 _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_end=13422 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=92556 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=92640 - _ISISLSPEXTENDEDV4PREFIX._serialized_start=92643 - _ISISLSPEXTENDEDV4PREFIX._serialized_end=93051 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=97910 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=97994 + _ISISLSPEXTENDEDV4PREFIX._serialized_start=97997 + _ISISLSPEXTENDEDV4PREFIX._serialized_end=98405 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=13487 - _ISISLSPIPV6REACHABILITYTLV._serialized_start=93053 - _ISISLSPIPV6REACHABILITYTLV._serialized_end=93121 - _ISISLSPV6PREFIX._serialized_start=93124 - _ISISLSPV6PREFIX._serialized_end=93663 + _ISISLSPIPV6REACHABILITYTLV._serialized_start=98407 + _ISISLSPIPV6REACHABILITYTLV._serialized_end=98475 + _ISISLSPV6PREFIX._serialized_start=98478 + _ISISLSPV6PREFIX._serialized_end=99017 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_start=13424 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_end=13487 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13446 @@ -1201,1532 +1265,1532 @@ _ISISLSPV6PREFIX_ORIGINTYPE._serialized_end=13422 _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_start=13371 _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_end=13422 - _ISISLSPPREFIXATTRIBUTES._serialized_start=93665 - _ISISLSPPREFIXATTRIBUTES._serialized_end=93786 - _LLDPNEIGHBORSSTATEREQUEST._serialized_start=93788 - _LLDPNEIGHBORSSTATEREQUEST._serialized_end=93864 - _LLDPNEIGHBORSSTATE._serialized_start=93867 - _LLDPNEIGHBORSSTATE._serialized_end=95030 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=94446 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=94620 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=94464 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=94620 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=94623 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=94793 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=94638 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=94793 - _LLDPCUSTOMTLVSTATE._serialized_start=95033 - _LLDPCUSTOMTLVSTATE._serialized_end=95163 - _LLDPCAPABILITYSTATE._serialized_start=95166 - _LLDPCAPABILITYSTATE._serialized_end=95566 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=95299 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=95523 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=95318 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=95523 - _RSVPLSPSSTATEREQUEST._serialized_start=95568 - _RSVPLSPSSTATEREQUEST._serialized_end=95617 - _RSVPLSPSSTATE._serialized_start=95619 - _RSVPLSPSSTATE._serialized_end=95728 - _RSVPIPV4LSPSTATE._serialized_start=95731 - _RSVPIPV4LSPSTATE._serialized_end=95970 - _RSVPLSPSTATE._serialized_start=95973 - _RSVPLSPSTATE._serialized_end=96537 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=96267 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=96325 + _ISISLSPPREFIXATTRIBUTES._serialized_start=99019 + _ISISLSPPREFIXATTRIBUTES._serialized_end=99140 + _LLDPNEIGHBORSSTATEREQUEST._serialized_start=99142 + _LLDPNEIGHBORSSTATEREQUEST._serialized_end=99218 + _LLDPNEIGHBORSSTATE._serialized_start=99221 + _LLDPNEIGHBORSSTATE._serialized_end=100384 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=99800 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=99974 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=99818 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=99974 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=99977 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=100147 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=99992 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=100147 + _LLDPCUSTOMTLVSTATE._serialized_start=100387 + _LLDPCUSTOMTLVSTATE._serialized_end=100517 + _LLDPCAPABILITYSTATE._serialized_start=100520 + _LLDPCAPABILITYSTATE._serialized_end=100920 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=100653 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=100877 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=100672 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=100877 + _RSVPLSPSSTATEREQUEST._serialized_start=100922 + _RSVPLSPSSTATEREQUEST._serialized_end=100971 + _RSVPLSPSSTATE._serialized_start=100973 + _RSVPLSPSSTATE._serialized_end=101082 + _RSVPIPV4LSPSTATE._serialized_start=101085 + _RSVPIPV4LSPSTATE._serialized_end=101324 + _RSVPLSPSTATE._serialized_start=101327 + _RSVPLSPSTATE._serialized_end=101891 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=101621 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=101679 _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_start=13446 _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_end=13487 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=96327 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=96416 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=96345 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=96416 - _RSVPLSPIPV4RRO._serialized_start=96539 - _RSVPLSPIPV4RRO._serialized_end=96637 - _RSVPLSPIPV4ERO._serialized_start=96640 - _RSVPLSPIPV4ERO._serialized_end=96882 - _RSVPLSPIPV4ERO_TYPE._serialized_start=96747 - _RSVPLSPIPV4ERO_TYPE._serialized_end=96854 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=96755 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=96854 - _CAPTUREREQUEST._serialized_start=96884 - _CAPTUREREQUEST._serialized_end=96919 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=96921 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=97040 - _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=97042 - _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=97153 - _PATTERNFLOWETHERNETDST._serialized_start=97156 - _PATTERNFLOWETHERNETDST._serialized_end=97632 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=97478 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=97574 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=97634 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=97753 - _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=97755 - _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=97866 - _PATTERNFLOWETHERNETSRC._serialized_start=97869 - _PATTERNFLOWETHERNETSRC._serialized_end=98307 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=98309 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=98434 - _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=98436 - _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=98553 - _PATTERNFLOWETHERNETETHERTYPE._serialized_start=98556 - _PATTERNFLOWETHERNETETHERTYPE._serialized_end=99062 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=97478 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=97574 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=99064 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=99188 - _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=99190 - _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=99306 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=99309 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=99772 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=99774 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=99894 - _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=99896 - _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=100008 - _PATTERNFLOWVLANPRIORITY._serialized_start=100011 - _PATTERNFLOWVLANPRIORITY._serialized_end=100454 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=98172 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=98258 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVLANCFICOUNTER._serialized_start=100456 - _PATTERNFLOWVLANCFICOUNTER._serialized_end=100571 - _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=100573 - _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=100680 - _PATTERNFLOWVLANCFI._serialized_start=100683 - _PATTERNFLOWVLANCFI._serialized_end=101101 - _PATTERNFLOWVLANCFI_CHOICE._serialized_start=98172 - _PATTERNFLOWVLANCFI_CHOICE._serialized_end=98258 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVLANIDCOUNTER._serialized_start=101103 - _PATTERNFLOWVLANIDCOUNTER._serialized_end=101217 - _PATTERNFLOWVLANIDMETRICTAG._serialized_start=101219 - _PATTERNFLOWVLANIDMETRICTAG._serialized_end=101325 - _PATTERNFLOWVLANID._serialized_start=101328 - _PATTERNFLOWVLANID._serialized_end=101741 - _PATTERNFLOWVLANID_CHOICE._serialized_start=98172 - _PATTERNFLOWVLANID_CHOICE._serialized_end=98258 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=101743 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=101859 - _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=101861 - _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=101969 - _PATTERNFLOWVLANTPID._serialized_start=101972 - _PATTERNFLOWVLANTPID._serialized_end=102395 - _PATTERNFLOWVLANTPID_CHOICE._serialized_start=98172 - _PATTERNFLOWVLANTPID_CHOICE._serialized_end=98258 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=102397 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=102515 - _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=102517 - _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=102627 - _PATTERNFLOWVXLANFLAGS._serialized_start=102630 - _PATTERNFLOWVXLANFLAGS._serialized_end=103063 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=98172 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=98258 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=103065 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=103187 - _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=103189 - _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=103303 - _PATTERNFLOWVXLANRESERVED0._serialized_start=103306 - _PATTERNFLOWVXLANRESERVED0._serialized_end=103759 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=98172 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=98258 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWVXLANVNICOUNTER._serialized_start=103761 - _PATTERNFLOWVXLANVNICOUNTER._serialized_end=103877 - _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=103879 - _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=103987 - _PATTERNFLOWVXLANVNI._serialized_start=103990 - _PATTERNFLOWVXLANVNI._serialized_end=104451 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=97478 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=97574 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=104453 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=104575 - _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=104577 - _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=104691 - _PATTERNFLOWVXLANRESERVED1._serialized_start=104694 - _PATTERNFLOWVXLANRESERVED1._serialized_end=105147 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=98172 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=98258 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=105149 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=105268 - _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=105270 - _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=105381 - _PATTERNFLOWIPV4VERSION._serialized_start=105384 - _PATTERNFLOWIPV4VERSION._serialized_end=105822 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=105824 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=105948 - _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=105950 - _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=106066 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=106069 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=106570 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=106572 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=106695 - _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=106697 - _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=106812 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=106815 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=107311 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=107313 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=107439 - _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=107441 - _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=107559 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=107562 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=108035 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=108037 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=108157 - _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=108159 - _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=108271 - _PATTERNFLOWIPV4RESERVED._serialized_start=108274 - _PATTERNFLOWIPV4RESERVED._serialized_end=108717 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=108719 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=108843 - _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=108845 - _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=108961 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=108964 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=109427 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=109429 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=109554 - _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=109556 - _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=109673 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=109676 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=110144 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=110146 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=110272 - _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=110274 - _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=110392 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=110395 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=110868 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=110870 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=110992 - _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=110994 - _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=111108 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=111111 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=111564 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=111566 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=111686 - _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=111688 - _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=111800 - _PATTERNFLOWIPV4PROTOCOL._serialized_start=111803 - _PATTERNFLOWIPV4PROTOCOL._serialized_end=112284 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=112287 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=112638 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=112640 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=112755 - _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=112757 - _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=112864 - _PATTERNFLOWIPV4SRC._serialized_start=112867 - _PATTERNFLOWIPV4SRC._serialized_end=113285 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=113287 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=113402 - _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=113404 - _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=113511 - _PATTERNFLOWIPV4DST._serialized_start=113514 - _PATTERNFLOWIPV4DST._serialized_end=113932 - _PATTERNFLOWIPV4DST_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4DST_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=113934 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=114057 - _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=114059 - _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=114174 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=114177 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=114635 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=114637 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=114756 - _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=114758 - _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=114869 - _PATTERNFLOWIPV4DSCPPHB._serialized_start=114872 - _PATTERNFLOWIPV4DSCPPHB._serialized_end=115310 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=115312 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=115431 - _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=115433 - _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=115544 - _PATTERNFLOWIPV4DSCPECN._serialized_start=115547 - _PATTERNFLOWIPV4DSCPECN._serialized_end=115985 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=115987 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=116112 - _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=116114 - _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=116231 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=116234 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=116702 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=116704 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=116824 - _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=116826 - _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=116938 - _PATTERNFLOWIPV4TOSDELAY._serialized_start=116941 - _PATTERNFLOWIPV4TOSDELAY._serialized_end=117384 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=117386 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=117511 - _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=117513 - _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=117630 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=117633 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=118101 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=118103 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=118229 - _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=118231 - _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=118349 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=118352 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=118825 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=118827 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=118950 - _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=118952 - _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=119067 - _PATTERNFLOWIPV4TOSMONETARY._serialized_start=119070 - _PATTERNFLOWIPV4TOSMONETARY._serialized_end=119528 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=119530 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=119651 - _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=119653 - _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=119766 - _PATTERNFLOWIPV4TOSUNUSED._serialized_start=119769 - _PATTERNFLOWIPV4TOSUNUSED._serialized_end=120217 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=120219 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=120338 - _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=120340 - _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=120451 - _PATTERNFLOWIPV6VERSION._serialized_start=120454 - _PATTERNFLOWIPV6VERSION._serialized_end=120892 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=120894 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=121018 - _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=121020 - _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=121136 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=121139 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=121602 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=121604 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=121725 - _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=121727 - _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=121840 - _PATTERNFLOWIPV6FLOWLABEL._serialized_start=121843 - _PATTERNFLOWIPV6FLOWLABEL._serialized_end=122291 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=122293 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=122418 - _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=122420 - _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=122537 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=122540 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=123046 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=123048 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=123170 - _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=123172 - _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=123286 - _PATTERNFLOWIPV6NEXTHEADER._serialized_start=123289 - _PATTERNFLOWIPV6NEXTHEADER._serialized_end=123780 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=97478 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=97574 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=123782 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=123902 - _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=123904 - _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=124016 - _PATTERNFLOWIPV6HOPLIMIT._serialized_start=124019 - _PATTERNFLOWIPV6HOPLIMIT._serialized_end=124462 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=124464 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=124579 - _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=124581 - _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=124688 - _PATTERNFLOWIPV6SRC._serialized_start=124691 - _PATTERNFLOWIPV6SRC._serialized_end=125109 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=125111 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=125226 - _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=125228 - _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=125335 - _PATTERNFLOWIPV6DST._serialized_start=125338 - _PATTERNFLOWIPV6DST._serialized_end=125756 - _PATTERNFLOWIPV6DST_CHOICE._serialized_start=98172 - _PATTERNFLOWIPV6DST_CHOICE._serialized_end=98258 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=125758 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=125877 - _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=125879 - _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=125990 - _PATTERNFLOWPFCPAUSEDST._serialized_start=125993 - _PATTERNFLOWPFCPAUSEDST._serialized_end=126431 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=126433 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=126552 - _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=126554 - _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=126665 - _PATTERNFLOWPFCPAUSESRC._serialized_start=126668 - _PATTERNFLOWPFCPAUSESRC._serialized_end=127106 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=127108 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=127233 - _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=127235 - _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=127352 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=127355 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=127823 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=127826 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=127955 - _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=127957 - _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=128078 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=128081 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=128569 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=128572 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=128705 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=128707 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=128832 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=128835 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=129343 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=129345 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=129472 - _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=129474 - _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=129593 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=129596 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=130074 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=130076 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=130203 - _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=130205 - _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=130324 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=130327 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=130805 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=130807 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=130934 - _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=130936 - _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=131055 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=131058 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=131536 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=131538 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=131665 - _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=131667 - _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=131786 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=131789 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=132267 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=132269 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=132396 - _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=132398 - _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=132517 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=132520 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=132998 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=133000 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=133127 - _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=133129 - _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=133248 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=133251 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=133729 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=133731 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=133858 - _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=133860 - _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=133979 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=133982 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=134460 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=134462 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=134589 - _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=134591 - _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=134710 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=134713 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=135191 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=98172 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=98258 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=135193 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=135317 - _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=135319 - _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=135435 - _PATTERNFLOWETHERNETPAUSEDST._serialized_start=135438 - _PATTERNFLOWETHERNETPAUSEDST._serialized_end=135901 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=135903 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=136027 - _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=136029 - _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=136145 - _PATTERNFLOWETHERNETPAUSESRC._serialized_start=136148 - _PATTERNFLOWETHERNETPAUSESRC._serialized_end=136611 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=136614 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=136744 - _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=136746 - _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=136868 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=136871 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=137364 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=137367 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=137501 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=137503 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=137629 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=137632 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=138145 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=138147 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=138272 - _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=138274 - _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=138391 - _PATTERNFLOWETHERNETPAUSETIME._serialized_start=138394 - _PATTERNFLOWETHERNETPAUSETIME._serialized_end=138862 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=98172 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=98258 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=138864 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=138982 - _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=138984 - _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=139094 - _PATTERNFLOWTCPSRCPORT._serialized_start=139097 - _PATTERNFLOWTCPSRCPORT._serialized_end=139530 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=139532 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=139650 - _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=139652 - _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=139762 - _PATTERNFLOWTCPDSTPORT._serialized_start=139765 - _PATTERNFLOWTCPDSTPORT._serialized_end=140198 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=140200 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=140317 - _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=140319 - _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=140428 - _PATTERNFLOWTCPSEQNUM._serialized_start=140431 - _PATTERNFLOWTCPSEQNUM._serialized_end=140859 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=140861 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=140978 - _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=140980 - _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=141089 - _PATTERNFLOWTCPACKNUM._serialized_start=141092 - _PATTERNFLOWTCPACKNUM._serialized_end=141520 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=141522 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=141643 - _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=141645 - _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=141758 - _PATTERNFLOWTCPDATAOFFSET._serialized_start=141761 - _PATTERNFLOWTCPDATAOFFSET._serialized_end=142209 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=142211 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=142327 - _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=142329 - _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=142437 - _PATTERNFLOWTCPECNNS._serialized_start=142440 - _PATTERNFLOWTCPECNNS._serialized_end=142863 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=142865 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=142982 - _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=142984 - _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=143093 - _PATTERNFLOWTCPECNCWR._serialized_start=143096 - _PATTERNFLOWTCPECNCWR._serialized_end=143524 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=143526 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=143644 - _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=143646 - _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=143756 - _PATTERNFLOWTCPECNECHO._serialized_start=143759 - _PATTERNFLOWTCPECNECHO._serialized_end=144192 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=144194 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=144311 - _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=144313 - _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=144422 - _PATTERNFLOWTCPCTLURG._serialized_start=144425 - _PATTERNFLOWTCPCTLURG._serialized_end=144853 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=144855 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=144972 - _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=144974 - _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=145083 - _PATTERNFLOWTCPCTLACK._serialized_start=145086 - _PATTERNFLOWTCPCTLACK._serialized_end=145514 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=145516 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=145633 - _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=145635 - _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=145744 - _PATTERNFLOWTCPCTLPSH._serialized_start=145747 - _PATTERNFLOWTCPCTLPSH._serialized_end=146175 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=146177 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=146294 - _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=146296 - _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=146405 - _PATTERNFLOWTCPCTLRST._serialized_start=146408 - _PATTERNFLOWTCPCTLRST._serialized_end=146836 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=146838 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=146955 - _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=146957 - _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=147066 - _PATTERNFLOWTCPCTLSYN._serialized_start=147069 - _PATTERNFLOWTCPCTLSYN._serialized_end=147497 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=147499 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=147616 - _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=147618 - _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=147727 - _PATTERNFLOWTCPCTLFIN._serialized_start=147730 - _PATTERNFLOWTCPCTLFIN._serialized_end=148158 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=148160 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=148277 - _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=148279 - _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=148388 - _PATTERNFLOWTCPWINDOW._serialized_start=148391 - _PATTERNFLOWTCPWINDOW._serialized_end=148819 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=98172 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=98258 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=148821 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=148939 - _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=148941 - _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=149051 - _PATTERNFLOWUDPSRCPORT._serialized_start=149054 - _PATTERNFLOWUDPSRCPORT._serialized_end=149487 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=98172 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=98258 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=149489 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=149607 - _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=149609 - _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=149719 - _PATTERNFLOWUDPDSTPORT._serialized_start=149722 - _PATTERNFLOWUDPDSTPORT._serialized_end=150155 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=98172 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=98258 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=150157 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=150274 - _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=150276 - _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=150385 - _PATTERNFLOWUDPLENGTH._serialized_start=150388 - _PATTERNFLOWUDPLENGTH._serialized_end=150816 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWUDPCHECKSUM._serialized_start=150819 - _PATTERNFLOWUDPCHECKSUM._serialized_end=151149 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=151151 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=151277 - _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=151279 - _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=151397 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=151400 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=151873 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=98172 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=98258 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=151875 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=151995 - _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=151997 - _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=152109 - _PATTERNFLOWGRERESERVED0._serialized_start=152112 - _PATTERNFLOWGRERESERVED0._serialized_end=152555 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=98172 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=98258 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=152557 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=152675 - _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=152677 - _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=152787 - _PATTERNFLOWGREVERSION._serialized_start=152790 - _PATTERNFLOWGREVERSION._serialized_end=153223 - _PATTERNFLOWGREVERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWGREVERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=153225 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=153344 - _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=153346 - _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=153457 - _PATTERNFLOWGREPROTOCOL._serialized_start=153460 - _PATTERNFLOWGREPROTOCOL._serialized_end=153898 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=98172 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=98258 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGRECHECKSUM._serialized_start=153901 - _PATTERNFLOWGRECHECKSUM._serialized_end=154231 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=154233 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=154353 - _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=154355 - _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=154467 - _PATTERNFLOWGRERESERVED1._serialized_start=154470 - _PATTERNFLOWGRERESERVED1._serialized_end=154913 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=98172 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=98258 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=154915 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=155035 - _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=155037 - _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=155149 - _PATTERNFLOWGTPV1VERSION._serialized_start=155152 - _PATTERNFLOWGTPV1VERSION._serialized_end=155595 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=155597 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=155722 - _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=155724 - _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=155841 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=155844 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=156312 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=156314 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=156435 - _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=156437 - _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=156550 - _PATTERNFLOWGTPV1RESERVED._serialized_start=156553 - _PATTERNFLOWGTPV1RESERVED._serialized_end=157001 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=157003 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=157121 - _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=157123 - _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=157233 - _PATTERNFLOWGTPV1EFLAG._serialized_start=157236 - _PATTERNFLOWGTPV1EFLAG._serialized_end=157669 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=157671 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=157789 - _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=157791 - _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=157901 - _PATTERNFLOWGTPV1SFLAG._serialized_start=157904 - _PATTERNFLOWGTPV1SFLAG._serialized_end=158337 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=158339 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=158458 - _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=158460 - _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=158571 - _PATTERNFLOWGTPV1PNFLAG._serialized_start=158574 - _PATTERNFLOWGTPV1PNFLAG._serialized_end=159012 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=159014 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=159138 - _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=159140 - _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=159256 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=159259 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=159722 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=159724 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=159850 - _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=159852 - _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=159970 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=159973 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=160446 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=160448 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=160565 - _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=160567 - _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=160676 - _PATTERNFLOWGTPV1TEID._serialized_start=160679 - _PATTERNFLOWGTPV1TEID._serialized_end=161107 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=161109 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=161235 - _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=161237 - _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=161355 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=161358 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=161831 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=161833 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=161956 - _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=161958 - _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=162073 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=162076 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=162534 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=162537 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=162673 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=162676 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=162804 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=162807 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=163330 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=163333 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=163468 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=163470 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=163597 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=163600 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=164118 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=164121 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=164249 - _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=164251 - _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=164371 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=164374 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=164857 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=164860 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=164999 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=165002 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=165133 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=165136 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=165674 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=165676 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=165796 - _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=165798 - _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=165910 - _PATTERNFLOWGTPV2VERSION._serialized_start=165913 - _PATTERNFLOWGTPV2VERSION._serialized_end=166356 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=166359 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=166488 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=166490 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=166611 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=166614 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=167102 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=167104 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=167225 - _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=167227 - _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=167340 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=167343 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=167791 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=167793 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=167912 - _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=167914 - _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=168025 - _PATTERNFLOWGTPV2SPARE1._serialized_start=168028 - _PATTERNFLOWGTPV2SPARE1._serialized_end=168466 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=168468 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=168592 - _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=168594 - _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=168710 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=168713 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=169176 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=169178 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=169304 - _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=169306 - _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=169424 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=169427 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=169900 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=169902 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=170019 - _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=170021 - _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=170130 - _PATTERNFLOWGTPV2TEID._serialized_start=170133 - _PATTERNFLOWGTPV2TEID._serialized_end=170561 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=170563 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=170690 - _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=170692 - _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=170811 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=170814 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=171292 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=171294 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=171413 - _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=171415 - _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=171526 - _PATTERNFLOWGTPV2SPARE2._serialized_start=171529 - _PATTERNFLOWGTPV2SPARE2._serialized_end=171967 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=98172 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=98258 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=171969 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=172092 - _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=172094 - _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=172209 - _PATTERNFLOWARPHARDWARETYPE._serialized_start=172212 - _PATTERNFLOWARPHARDWARETYPE._serialized_end=172670 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=172672 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=172795 - _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=172797 - _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=172912 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=172915 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=173373 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=173375 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=173500 - _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=173502 - _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=173619 - _PATTERNFLOWARPHARDWARELENGTH._serialized_start=173622 - _PATTERNFLOWARPHARDWARELENGTH._serialized_end=174090 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=174092 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=174217 - _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=174219 - _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=174336 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=174339 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=174807 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=98172 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=98258 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=174809 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=174929 - _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=174931 - _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=175043 - _PATTERNFLOWARPOPERATION._serialized_start=175046 - _PATTERNFLOWARPOPERATION._serialized_end=175489 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=98172 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=98258 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=175492 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=175621 - _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=175623 - _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=175744 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=175747 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=176235 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=98172 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=98258 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=176238 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=176367 - _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=176369 - _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=176490 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=176493 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=176981 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=98172 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=98258 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=176984 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=177113 - _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=177115 - _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=177236 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=177239 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=177727 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=98172 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=98258 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=177730 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=177859 - _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=177861 - _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=177982 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=177985 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=178473 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=98172 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=98258 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=178475 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=178595 - _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=178597 - _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=178709 - _PATTERNFLOWICMPECHOTYPE._serialized_start=178712 - _PATTERNFLOWICMPECHOTYPE._serialized_end=179155 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=179157 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=179277 - _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=179279 - _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=179391 - _PATTERNFLOWICMPECHOCODE._serialized_start=179394 - _PATTERNFLOWICMPECHOCODE._serialized_end=179837 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=179840 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=180185 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=180187 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=180313 - _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=180315 - _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=180433 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=180436 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=180909 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=180912 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=181042 - _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=181044 - _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=181166 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=181169 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=181662 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=181665 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=182016 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=182019 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=182151 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=182153 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=182277 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=182280 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=182783 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=182786 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=182922 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=182925 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=183053 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=183056 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=183579 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=183581 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=183703 - _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=183705 - _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=183819 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=183822 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=184275 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=184277 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=184399 - _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=184401 - _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=184515 - _PATTERNFLOWICMPV6ECHOCODE._serialized_start=184518 - _PATTERNFLOWICMPV6ECHOCODE._serialized_end=184971 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=184974 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=185102 - _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=185104 - _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=185224 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=185227 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=185710 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=185713 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=185845 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=185847 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=185971 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=185974 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=186477 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=98172 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=186480 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=186831 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=186834 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=187191 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=187193 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=187311 - _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=187313 - _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=187423 - _PATTERNFLOWPPPADDRESS._serialized_start=187426 - _PATTERNFLOWPPPADDRESS._serialized_end=187859 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=98172 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=98258 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=187861 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=187979 - _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=187981 - _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=188091 - _PATTERNFLOWPPPCONTROL._serialized_start=188094 - _PATTERNFLOWPPPCONTROL._serialized_end=188527 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=98172 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=98258 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=188529 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=188652 - _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=188654 - _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=188769 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=188772 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=189268 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=97478 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=97574 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=189270 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=189391 - _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=189393 - _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=189506 - _PATTERNFLOWIGMPV1VERSION._serialized_start=189509 - _PATTERNFLOWIGMPV1VERSION._serialized_end=189957 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=98172 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=98258 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=189959 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=190077 - _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=190079 - _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=190189 - _PATTERNFLOWIGMPV1TYPE._serialized_start=190192 - _PATTERNFLOWIGMPV1TYPE._serialized_end=190625 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=98172 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=98258 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=190627 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=190747 - _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=190749 - _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=190861 - _PATTERNFLOWIGMPV1UNUSED._serialized_start=190864 - _PATTERNFLOWIGMPV1UNUSED._serialized_end=191307 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=98172 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=98258 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=191310 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=191649 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=112485 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=112545 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=112495 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=112545 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=112547 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=112602 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=112560 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=112602 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=191651 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=191777 - _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=191779 - _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=191897 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=191900 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=192373 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=98172 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=98258 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=192375 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=192492 - _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=192494 - _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=192603 - _PATTERNFLOWMPLSLABEL._serialized_start=192606 - _PATTERNFLOWMPLSLABEL._serialized_end=193072 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=97478 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=97574 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=193074 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=193198 - _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=193200 - _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=193316 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=193319 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=193782 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=98172 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=98258 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=98258 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=193784 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=193909 - _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=193911 - _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=194028 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=194031 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=194537 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=97478 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=97574 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=97488 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=97574 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=194539 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=194661 - _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=194663 - _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=194777 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=194780 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=195233 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=98172 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=98258 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=98182 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=98258 - _VERSION._serialized_start=195236 - _VERSION._serialized_end=195381 - _SUCCESS._serialized_start=195383 - _SUCCESS._serialized_end=195423 - _FAILURE._serialized_start=195425 - _FAILURE._serialized_end=195461 - _SETCONFIGREQUEST._serialized_start=195463 - _SETCONFIGREQUEST._serialized_end=195510 - _UPDATECONFIGREQUEST._serialized_start=195512 - _UPDATECONFIGREQUEST._serialized_end=195575 - _SETCONFIGRESPONSE._serialized_start=195577 - _SETCONFIGRESPONSE._serialized_end=195627 - _GETCONFIGRESPONSE._serialized_start=195629 - _GETCONFIGRESPONSE._serialized_end=195677 - _UPDATECONFIGRESPONSE._serialized_start=195679 - _UPDATECONFIGRESPONSE._serialized_end=195732 - _SETCONTROLSTATEREQUEST._serialized_start=195734 - _SETCONTROLSTATEREQUEST._serialized_end=195800 - _SETCONTROLSTATERESPONSE._serialized_start=195802 - _SETCONTROLSTATERESPONSE._serialized_end=195858 - _SETCONTROLACTIONREQUEST._serialized_start=195860 - _SETCONTROLACTIONREQUEST._serialized_end=195929 - _SETCONTROLACTIONRESPONSE._serialized_start=195931 - _SETCONTROLACTIONRESPONSE._serialized_end=196018 - _GETMETRICSREQUEST._serialized_start=196020 - _GETMETRICSREQUEST._serialized_end=196085 - _GETMETRICSRESPONSE._serialized_start=196087 - _GETMETRICSRESPONSE._serialized_end=196155 - _GETSTATESREQUEST._serialized_start=196157 - _GETSTATESREQUEST._serialized_end=196219 - _GETSTATESRESPONSE._serialized_start=196221 - _GETSTATESRESPONSE._serialized_end=196286 - _GETCAPTUREREQUEST._serialized_start=196288 - _GETCAPTUREREQUEST._serialized_end=196353 - _GETCAPTURERESPONSE._serialized_start=196355 - _GETCAPTURERESPONSE._serialized_end=196399 - _GETVERSIONRESPONSE._serialized_start=196401 - _GETVERSIONRESPONSE._serialized_end=196452 - _OPENAPI._serialized_start=196455 - _OPENAPI._serialized_end=197062 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=101681 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=101770 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=101699 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=101770 + _RSVPLSPIPV4RRO._serialized_start=101893 + _RSVPLSPIPV4RRO._serialized_end=101991 + _RSVPLSPIPV4ERO._serialized_start=101994 + _RSVPLSPIPV4ERO._serialized_end=102236 + _RSVPLSPIPV4ERO_TYPE._serialized_start=102101 + _RSVPLSPIPV4ERO_TYPE._serialized_end=102208 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=102109 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=102208 + _CAPTUREREQUEST._serialized_start=102238 + _CAPTUREREQUEST._serialized_end=102273 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=102275 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=102394 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=102396 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=102507 + _PATTERNFLOWETHERNETDST._serialized_start=102510 + _PATTERNFLOWETHERNETDST._serialized_end=102986 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=102832 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=102928 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=102988 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=103107 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=103109 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=103220 + _PATTERNFLOWETHERNETSRC._serialized_start=103223 + _PATTERNFLOWETHERNETSRC._serialized_end=103661 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=103663 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=103788 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=103790 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=103907 + _PATTERNFLOWETHERNETETHERTYPE._serialized_start=103910 + _PATTERNFLOWETHERNETETHERTYPE._serialized_end=104416 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=102832 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=102928 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=104418 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=104542 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=104544 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=104660 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=104663 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=105126 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=105128 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=105248 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=105250 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=105362 + _PATTERNFLOWVLANPRIORITY._serialized_start=105365 + _PATTERNFLOWVLANPRIORITY._serialized_end=105808 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=103526 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=103612 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVLANCFICOUNTER._serialized_start=105810 + _PATTERNFLOWVLANCFICOUNTER._serialized_end=105925 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=105927 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=106034 + _PATTERNFLOWVLANCFI._serialized_start=106037 + _PATTERNFLOWVLANCFI._serialized_end=106455 + _PATTERNFLOWVLANCFI_CHOICE._serialized_start=103526 + _PATTERNFLOWVLANCFI_CHOICE._serialized_end=103612 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVLANIDCOUNTER._serialized_start=106457 + _PATTERNFLOWVLANIDCOUNTER._serialized_end=106571 + _PATTERNFLOWVLANIDMETRICTAG._serialized_start=106573 + _PATTERNFLOWVLANIDMETRICTAG._serialized_end=106679 + _PATTERNFLOWVLANID._serialized_start=106682 + _PATTERNFLOWVLANID._serialized_end=107095 + _PATTERNFLOWVLANID_CHOICE._serialized_start=103526 + _PATTERNFLOWVLANID_CHOICE._serialized_end=103612 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=107097 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=107213 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=107215 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=107323 + _PATTERNFLOWVLANTPID._serialized_start=107326 + _PATTERNFLOWVLANTPID._serialized_end=107749 + _PATTERNFLOWVLANTPID_CHOICE._serialized_start=103526 + _PATTERNFLOWVLANTPID_CHOICE._serialized_end=103612 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=107751 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=107869 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=107871 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=107981 + _PATTERNFLOWVXLANFLAGS._serialized_start=107984 + _PATTERNFLOWVXLANFLAGS._serialized_end=108417 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=103526 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=103612 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=108419 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=108541 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=108543 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=108657 + _PATTERNFLOWVXLANRESERVED0._serialized_start=108660 + _PATTERNFLOWVXLANRESERVED0._serialized_end=109113 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=103526 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=103612 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWVXLANVNICOUNTER._serialized_start=109115 + _PATTERNFLOWVXLANVNICOUNTER._serialized_end=109231 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=109233 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=109341 + _PATTERNFLOWVXLANVNI._serialized_start=109344 + _PATTERNFLOWVXLANVNI._serialized_end=109805 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=102832 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=102928 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=109807 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=109929 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=109931 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=110045 + _PATTERNFLOWVXLANRESERVED1._serialized_start=110048 + _PATTERNFLOWVXLANRESERVED1._serialized_end=110501 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=103526 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=103612 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=110503 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=110622 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=110624 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=110735 + _PATTERNFLOWIPV4VERSION._serialized_start=110738 + _PATTERNFLOWIPV4VERSION._serialized_end=111176 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=111178 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=111302 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=111304 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=111420 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=111423 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=111924 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=111926 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=112049 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=112051 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=112166 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=112169 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=112665 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=112667 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=112793 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=112795 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=112913 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=112916 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=113389 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=113391 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=113511 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=113513 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=113625 + _PATTERNFLOWIPV4RESERVED._serialized_start=113628 + _PATTERNFLOWIPV4RESERVED._serialized_end=114071 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=114073 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=114197 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=114199 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=114315 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=114318 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=114781 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=114783 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=114908 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=114910 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=115027 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=115030 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=115498 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=115500 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=115626 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=115628 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=115746 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=115749 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=116222 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=116224 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=116346 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=116348 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=116462 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=116465 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=116918 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=116920 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=117040 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=117042 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=117154 + _PATTERNFLOWIPV4PROTOCOL._serialized_start=117157 + _PATTERNFLOWIPV4PROTOCOL._serialized_end=117638 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=117641 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=117992 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=117994 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=118109 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=118111 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=118218 + _PATTERNFLOWIPV4SRC._serialized_start=118221 + _PATTERNFLOWIPV4SRC._serialized_end=118639 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=118641 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=118756 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=118758 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=118865 + _PATTERNFLOWIPV4DST._serialized_start=118868 + _PATTERNFLOWIPV4DST._serialized_end=119286 + _PATTERNFLOWIPV4DST_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4DST_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=119288 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=119411 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=119413 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=119528 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=119531 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=119989 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=119991 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=120110 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=120112 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=120223 + _PATTERNFLOWIPV4DSCPPHB._serialized_start=120226 + _PATTERNFLOWIPV4DSCPPHB._serialized_end=120664 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=120666 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=120785 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=120787 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=120898 + _PATTERNFLOWIPV4DSCPECN._serialized_start=120901 + _PATTERNFLOWIPV4DSCPECN._serialized_end=121339 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=121341 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=121466 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=121468 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=121585 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=121588 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=122056 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=122058 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=122178 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=122180 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=122292 + _PATTERNFLOWIPV4TOSDELAY._serialized_start=122295 + _PATTERNFLOWIPV4TOSDELAY._serialized_end=122738 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=122740 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=122865 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=122867 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=122984 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=122987 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=123455 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=123457 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=123583 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=123585 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=123703 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=123706 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=124179 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=124181 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=124304 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=124306 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=124421 + _PATTERNFLOWIPV4TOSMONETARY._serialized_start=124424 + _PATTERNFLOWIPV4TOSMONETARY._serialized_end=124882 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=124884 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=125005 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=125007 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=125120 + _PATTERNFLOWIPV4TOSUNUSED._serialized_start=125123 + _PATTERNFLOWIPV4TOSUNUSED._serialized_end=125571 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=125573 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=125692 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=125694 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=125805 + _PATTERNFLOWIPV6VERSION._serialized_start=125808 + _PATTERNFLOWIPV6VERSION._serialized_end=126246 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=126248 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=126372 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=126374 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=126490 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=126493 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=126956 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=126958 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=127079 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=127081 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=127194 + _PATTERNFLOWIPV6FLOWLABEL._serialized_start=127197 + _PATTERNFLOWIPV6FLOWLABEL._serialized_end=127645 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=127647 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=127772 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=127774 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=127891 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=127894 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=128400 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=128402 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=128524 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=128526 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=128640 + _PATTERNFLOWIPV6NEXTHEADER._serialized_start=128643 + _PATTERNFLOWIPV6NEXTHEADER._serialized_end=129134 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=102832 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=102928 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=129136 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=129256 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=129258 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=129370 + _PATTERNFLOWIPV6HOPLIMIT._serialized_start=129373 + _PATTERNFLOWIPV6HOPLIMIT._serialized_end=129816 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=129818 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=129933 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=129935 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=130042 + _PATTERNFLOWIPV6SRC._serialized_start=130045 + _PATTERNFLOWIPV6SRC._serialized_end=130463 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=130465 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=130580 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=130582 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=130689 + _PATTERNFLOWIPV6DST._serialized_start=130692 + _PATTERNFLOWIPV6DST._serialized_end=131110 + _PATTERNFLOWIPV6DST_CHOICE._serialized_start=103526 + _PATTERNFLOWIPV6DST_CHOICE._serialized_end=103612 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=131112 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=131231 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=131233 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=131344 + _PATTERNFLOWPFCPAUSEDST._serialized_start=131347 + _PATTERNFLOWPFCPAUSEDST._serialized_end=131785 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=131787 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=131906 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=131908 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=132019 + _PATTERNFLOWPFCPAUSESRC._serialized_start=132022 + _PATTERNFLOWPFCPAUSESRC._serialized_end=132460 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=132462 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=132587 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=132589 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=132706 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=132709 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=133177 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=133180 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=133309 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=133311 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=133432 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=133435 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=133923 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=133926 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=134059 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=134061 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=134186 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=134189 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=134697 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=134699 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=134826 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=134828 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=134947 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=134950 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=135428 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=135430 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=135557 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=135559 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=135678 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=135681 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=136159 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=136161 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=136288 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=136290 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=136409 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=136412 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=136890 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=136892 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=137019 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=137021 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=137140 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=137143 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=137621 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=137623 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=137750 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=137752 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=137871 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=137874 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=138352 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=138354 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=138481 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=138483 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=138602 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=138605 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=139083 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=139085 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=139212 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=139214 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=139333 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=139336 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=139814 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=139816 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=139943 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=139945 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=140064 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=140067 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=140545 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=103526 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=103612 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=140547 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=140671 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=140673 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=140789 + _PATTERNFLOWETHERNETPAUSEDST._serialized_start=140792 + _PATTERNFLOWETHERNETPAUSEDST._serialized_end=141255 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=141257 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=141381 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=141383 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=141499 + _PATTERNFLOWETHERNETPAUSESRC._serialized_start=141502 + _PATTERNFLOWETHERNETPAUSESRC._serialized_end=141965 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=141968 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=142098 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=142100 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=142222 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=142225 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=142718 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=142721 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=142855 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=142857 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=142983 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=142986 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=143499 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=143501 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=143626 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=143628 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=143745 + _PATTERNFLOWETHERNETPAUSETIME._serialized_start=143748 + _PATTERNFLOWETHERNETPAUSETIME._serialized_end=144216 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=103526 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=103612 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=144218 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=144336 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=144338 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=144448 + _PATTERNFLOWTCPSRCPORT._serialized_start=144451 + _PATTERNFLOWTCPSRCPORT._serialized_end=144884 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=144886 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=145004 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=145006 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=145116 + _PATTERNFLOWTCPDSTPORT._serialized_start=145119 + _PATTERNFLOWTCPDSTPORT._serialized_end=145552 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=145554 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=145671 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=145673 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=145782 + _PATTERNFLOWTCPSEQNUM._serialized_start=145785 + _PATTERNFLOWTCPSEQNUM._serialized_end=146213 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=146215 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=146332 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=146334 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=146443 + _PATTERNFLOWTCPACKNUM._serialized_start=146446 + _PATTERNFLOWTCPACKNUM._serialized_end=146874 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=146876 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=146997 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=146999 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=147112 + _PATTERNFLOWTCPDATAOFFSET._serialized_start=147115 + _PATTERNFLOWTCPDATAOFFSET._serialized_end=147563 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=147565 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=147681 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=147683 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=147791 + _PATTERNFLOWTCPECNNS._serialized_start=147794 + _PATTERNFLOWTCPECNNS._serialized_end=148217 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=148219 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=148336 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=148338 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=148447 + _PATTERNFLOWTCPECNCWR._serialized_start=148450 + _PATTERNFLOWTCPECNCWR._serialized_end=148878 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=148880 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=148998 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=149000 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=149110 + _PATTERNFLOWTCPECNECHO._serialized_start=149113 + _PATTERNFLOWTCPECNECHO._serialized_end=149546 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=149548 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=149665 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=149667 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=149776 + _PATTERNFLOWTCPCTLURG._serialized_start=149779 + _PATTERNFLOWTCPCTLURG._serialized_end=150207 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=150209 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=150326 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=150328 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=150437 + _PATTERNFLOWTCPCTLACK._serialized_start=150440 + _PATTERNFLOWTCPCTLACK._serialized_end=150868 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=150870 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=150987 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=150989 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=151098 + _PATTERNFLOWTCPCTLPSH._serialized_start=151101 + _PATTERNFLOWTCPCTLPSH._serialized_end=151529 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=151531 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=151648 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=151650 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=151759 + _PATTERNFLOWTCPCTLRST._serialized_start=151762 + _PATTERNFLOWTCPCTLRST._serialized_end=152190 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=152192 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=152309 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=152311 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=152420 + _PATTERNFLOWTCPCTLSYN._serialized_start=152423 + _PATTERNFLOWTCPCTLSYN._serialized_end=152851 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=152853 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=152970 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=152972 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=153081 + _PATTERNFLOWTCPCTLFIN._serialized_start=153084 + _PATTERNFLOWTCPCTLFIN._serialized_end=153512 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=153514 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=153631 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=153633 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=153742 + _PATTERNFLOWTCPWINDOW._serialized_start=153745 + _PATTERNFLOWTCPWINDOW._serialized_end=154173 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=103526 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=103612 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=154175 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=154293 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=154295 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=154405 + _PATTERNFLOWUDPSRCPORT._serialized_start=154408 + _PATTERNFLOWUDPSRCPORT._serialized_end=154841 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=103526 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=103612 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=154843 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=154961 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=154963 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=155073 + _PATTERNFLOWUDPDSTPORT._serialized_start=155076 + _PATTERNFLOWUDPDSTPORT._serialized_end=155509 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=103526 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=103612 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=155511 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=155628 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=155630 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=155739 + _PATTERNFLOWUDPLENGTH._serialized_start=155742 + _PATTERNFLOWUDPLENGTH._serialized_end=156170 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWUDPCHECKSUM._serialized_start=156173 + _PATTERNFLOWUDPCHECKSUM._serialized_end=156503 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=156505 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=156631 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=156633 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=156751 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=156754 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=157227 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=103526 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=103612 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=157229 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=157349 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=157351 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=157463 + _PATTERNFLOWGRERESERVED0._serialized_start=157466 + _PATTERNFLOWGRERESERVED0._serialized_end=157909 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=103526 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=103612 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=157911 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=158029 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=158031 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=158141 + _PATTERNFLOWGREVERSION._serialized_start=158144 + _PATTERNFLOWGREVERSION._serialized_end=158577 + _PATTERNFLOWGREVERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWGREVERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=158579 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=158698 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=158700 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=158811 + _PATTERNFLOWGREPROTOCOL._serialized_start=158814 + _PATTERNFLOWGREPROTOCOL._serialized_end=159252 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=103526 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=103612 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGRECHECKSUM._serialized_start=159255 + _PATTERNFLOWGRECHECKSUM._serialized_end=159585 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=159587 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=159707 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=159709 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=159821 + _PATTERNFLOWGRERESERVED1._serialized_start=159824 + _PATTERNFLOWGRERESERVED1._serialized_end=160267 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=103526 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=103612 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=160269 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=160389 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=160391 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=160503 + _PATTERNFLOWGTPV1VERSION._serialized_start=160506 + _PATTERNFLOWGTPV1VERSION._serialized_end=160949 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=160951 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=161076 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=161078 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=161195 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=161198 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=161666 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=161668 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=161789 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=161791 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=161904 + _PATTERNFLOWGTPV1RESERVED._serialized_start=161907 + _PATTERNFLOWGTPV1RESERVED._serialized_end=162355 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=162357 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=162475 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=162477 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=162587 + _PATTERNFLOWGTPV1EFLAG._serialized_start=162590 + _PATTERNFLOWGTPV1EFLAG._serialized_end=163023 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=163025 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=163143 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=163145 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=163255 + _PATTERNFLOWGTPV1SFLAG._serialized_start=163258 + _PATTERNFLOWGTPV1SFLAG._serialized_end=163691 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=163693 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=163812 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=163814 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=163925 + _PATTERNFLOWGTPV1PNFLAG._serialized_start=163928 + _PATTERNFLOWGTPV1PNFLAG._serialized_end=164366 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=164368 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=164492 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=164494 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=164610 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=164613 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=165076 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=165078 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=165204 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=165206 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=165324 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=165327 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=165800 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=165802 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=165919 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=165921 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=166030 + _PATTERNFLOWGTPV1TEID._serialized_start=166033 + _PATTERNFLOWGTPV1TEID._serialized_end=166461 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=166463 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=166589 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=166591 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=166709 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=166712 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=167185 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=167187 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=167310 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=167312 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=167427 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=167430 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=167888 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=167891 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=168027 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=168030 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=168158 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=168161 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=168684 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=168687 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=168822 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=168824 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=168951 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=168954 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=169472 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=169475 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=169603 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=169605 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=169725 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=169728 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=170211 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=170214 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=170353 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=170356 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=170487 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=170490 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=171028 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=171030 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=171150 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=171152 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=171264 + _PATTERNFLOWGTPV2VERSION._serialized_start=171267 + _PATTERNFLOWGTPV2VERSION._serialized_end=171710 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=171713 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=171842 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=171844 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=171965 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=171968 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=172456 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=172458 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=172579 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=172581 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=172694 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=172697 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=173145 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=173147 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=173266 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=173268 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=173379 + _PATTERNFLOWGTPV2SPARE1._serialized_start=173382 + _PATTERNFLOWGTPV2SPARE1._serialized_end=173820 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=173822 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=173946 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=173948 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=174064 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=174067 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=174530 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=174532 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=174658 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=174660 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=174778 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=174781 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=175254 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=175256 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=175373 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=175375 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=175484 + _PATTERNFLOWGTPV2TEID._serialized_start=175487 + _PATTERNFLOWGTPV2TEID._serialized_end=175915 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=175917 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=176044 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=176046 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=176165 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=176168 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=176646 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=176648 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=176767 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=176769 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=176880 + _PATTERNFLOWGTPV2SPARE2._serialized_start=176883 + _PATTERNFLOWGTPV2SPARE2._serialized_end=177321 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=103526 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=103612 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=177323 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=177446 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=177448 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=177563 + _PATTERNFLOWARPHARDWARETYPE._serialized_start=177566 + _PATTERNFLOWARPHARDWARETYPE._serialized_end=178024 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=178026 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=178149 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=178151 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=178266 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=178269 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=178727 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=178729 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=178854 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=178856 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=178973 + _PATTERNFLOWARPHARDWARELENGTH._serialized_start=178976 + _PATTERNFLOWARPHARDWARELENGTH._serialized_end=179444 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=179446 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=179571 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=179573 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=179690 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=179693 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=180161 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=103526 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=103612 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=180163 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=180283 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=180285 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=180397 + _PATTERNFLOWARPOPERATION._serialized_start=180400 + _PATTERNFLOWARPOPERATION._serialized_end=180843 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=103526 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=103612 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=180846 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=180975 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=180977 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=181098 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=181101 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=181589 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=103526 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=103612 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=181592 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=181721 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=181723 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=181844 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=181847 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=182335 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=103526 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=103612 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=182338 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=182467 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=182469 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=182590 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=182593 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=183081 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=103526 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=103612 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=183084 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=183213 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=183215 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=183336 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=183339 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=183827 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=103526 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=103612 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=183829 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=183949 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=183951 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=184063 + _PATTERNFLOWICMPECHOTYPE._serialized_start=184066 + _PATTERNFLOWICMPECHOTYPE._serialized_end=184509 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=184511 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=184631 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=184633 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=184745 + _PATTERNFLOWICMPECHOCODE._serialized_start=184748 + _PATTERNFLOWICMPECHOCODE._serialized_end=185191 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=185194 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=185539 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=185541 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=185667 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=185669 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=185787 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=185790 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=186263 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=186266 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=186396 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=186398 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=186520 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=186523 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=187016 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=187019 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=187370 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=187373 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=187505 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=187507 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=187631 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=187634 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=188137 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=188140 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=188276 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=188279 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=188407 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=188410 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=188933 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=188935 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=189057 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=189059 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=189173 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=189176 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=189629 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=189631 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=189753 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=189755 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=189869 + _PATTERNFLOWICMPV6ECHOCODE._serialized_start=189872 + _PATTERNFLOWICMPV6ECHOCODE._serialized_end=190325 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=190328 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=190456 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=190458 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=190578 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=190581 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=191064 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=191067 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=191199 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=191201 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=191325 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=191328 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=191831 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=103526 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=191834 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=192185 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=192188 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=192545 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=192547 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=192665 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=192667 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=192777 + _PATTERNFLOWPPPADDRESS._serialized_start=192780 + _PATTERNFLOWPPPADDRESS._serialized_end=193213 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=103526 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=103612 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=193215 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=193333 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=193335 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=193445 + _PATTERNFLOWPPPCONTROL._serialized_start=193448 + _PATTERNFLOWPPPCONTROL._serialized_end=193881 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=103526 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=103612 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=193883 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=194006 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=194008 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=194123 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=194126 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=194622 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=102832 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=102928 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=194624 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=194745 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=194747 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=194860 + _PATTERNFLOWIGMPV1VERSION._serialized_start=194863 + _PATTERNFLOWIGMPV1VERSION._serialized_end=195311 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=103526 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=103612 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=195313 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=195431 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=195433 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=195543 + _PATTERNFLOWIGMPV1TYPE._serialized_start=195546 + _PATTERNFLOWIGMPV1TYPE._serialized_end=195979 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=103526 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=103612 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=195981 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=196101 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=196103 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=196215 + _PATTERNFLOWIGMPV1UNUSED._serialized_start=196218 + _PATTERNFLOWIGMPV1UNUSED._serialized_end=196661 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=103526 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=103612 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=196664 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=197003 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=117839 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=117899 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=117849 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=117899 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=117901 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=117956 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=117914 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=117956 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=197005 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=197131 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=197133 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=197251 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=197254 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=197727 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=103526 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=103612 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=197729 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=197846 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=197848 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=197957 + _PATTERNFLOWMPLSLABEL._serialized_start=197960 + _PATTERNFLOWMPLSLABEL._serialized_end=198426 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=102832 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=102928 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=198428 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=198552 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=198554 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=198670 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=198673 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=199136 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=103526 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=103612 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=103612 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=199138 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=199263 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=199265 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=199382 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=199385 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=199891 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=102832 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=102928 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=102842 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=102928 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=199893 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=200015 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=200017 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=200131 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=200134 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=200587 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=103526 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=103612 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=103536 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=103612 + _VERSION._serialized_start=200590 + _VERSION._serialized_end=200735 + _SUCCESS._serialized_start=200737 + _SUCCESS._serialized_end=200777 + _FAILURE._serialized_start=200779 + _FAILURE._serialized_end=200815 + _SETCONFIGREQUEST._serialized_start=200817 + _SETCONFIGREQUEST._serialized_end=200864 + _UPDATECONFIGREQUEST._serialized_start=200866 + _UPDATECONFIGREQUEST._serialized_end=200929 + _SETCONFIGRESPONSE._serialized_start=200931 + _SETCONFIGRESPONSE._serialized_end=200981 + _GETCONFIGRESPONSE._serialized_start=200983 + _GETCONFIGRESPONSE._serialized_end=201031 + _UPDATECONFIGRESPONSE._serialized_start=201033 + _UPDATECONFIGRESPONSE._serialized_end=201086 + _SETCONTROLSTATEREQUEST._serialized_start=201088 + _SETCONTROLSTATEREQUEST._serialized_end=201154 + _SETCONTROLSTATERESPONSE._serialized_start=201156 + _SETCONTROLSTATERESPONSE._serialized_end=201212 + _SETCONTROLACTIONREQUEST._serialized_start=201214 + _SETCONTROLACTIONREQUEST._serialized_end=201283 + _SETCONTROLACTIONRESPONSE._serialized_start=201285 + _SETCONTROLACTIONRESPONSE._serialized_end=201372 + _GETMETRICSREQUEST._serialized_start=201374 + _GETMETRICSREQUEST._serialized_end=201439 + _GETMETRICSRESPONSE._serialized_start=201441 + _GETMETRICSRESPONSE._serialized_end=201509 + _GETSTATESREQUEST._serialized_start=201511 + _GETSTATESREQUEST._serialized_end=201573 + _GETSTATESRESPONSE._serialized_start=201575 + _GETSTATESRESPONSE._serialized_end=201640 + _GETCAPTUREREQUEST._serialized_start=201642 + _GETCAPTUREREQUEST._serialized_end=201707 + _GETCAPTURERESPONSE._serialized_start=201709 + _GETCAPTURERESPONSE._serialized_end=201753 + _GETVERSIONRESPONSE._serialized_start=201755 + _GETVERSIONRESPONSE._serialized_end=201806 + _OPENAPI._serialized_start=201809 + _OPENAPI._serialized_end=202416 # @@protoc_insertion_point(module_scope) diff --git a/snappi/snappi.py b/snappi/snappi.py index bd2c5cdb..940741f2 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -1,4 +1,4 @@ -# Open Traffic Generator API 0.12.2 +# Open Traffic Generator API 0.12.3 # License: MIT import importlib @@ -13413,6 +13413,7 @@ class BgpV4RouteRange(OpenApiObject): "add_path": {"type": "BgpAddPath"}, "name": {"type": str}, "ext_communities": {"type": "BgpExtCommunityIter"}, + "extended_communities": {"type": "BgpExtendedCommunityIter"}, } # type: Dict[str, str] _REQUIRED = ("name",) # type: tuple(str) @@ -13430,265 +13431,2024 @@ class BgpV4RouteRange(OpenApiObject): IPV4 = "ipv4" # type: str IPV6 = "ipv6" # type: str + _STATUS = { + "ext_communities": "ext_communities property in schema BgpV4RouteRange is deprecated, This property is deprecated in favor of property extended_communities", + } # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + next_hop_mode="local_ip", + next_hop_address_type="ipv4", + next_hop_ipv4_address="0.0.0.0", + next_hop_ipv6_address="::0", + name=None, + ): + super(BgpV4RouteRange, self).__init__() + self._parent = parent + self._set_property("next_hop_mode", next_hop_mode) + self._set_property("next_hop_address_type", next_hop_address_type) + self._set_property("next_hop_ipv4_address", next_hop_ipv4_address) + self._set_property("next_hop_ipv6_address", next_hop_ipv6_address) + self._set_property("name", name) + + def set( + self, + next_hop_mode=None, + next_hop_address_type=None, + next_hop_ipv4_address=None, + next_hop_ipv6_address=None, + name=None, + ): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def addresses(self): + # type: () -> V4RouteAddressIter + """addresses getter + + A list of group of IPv4 route addresses. + + Returns: V4RouteAddressIter + """ + return self._get_property( + "addresses", V4RouteAddressIter, self._parent, self._choice + ) + + @property + def next_hop_mode(self): + # type: () -> Union[Literal["local_ip"], Literal["manual"]] + """next_hop_mode getter + + Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the NextHop in the MP REACH NLRI can be one of the following:. Local IP: Automatically fills the Nexthop with the Local IP of the BGP. peer.. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + + Returns: Union[Literal["local_ip"], Literal["manual"]] + """ + return self._get_property("next_hop_mode") + + @next_hop_mode.setter + def next_hop_mode(self, value): + """next_hop_mode setter + + Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the NextHop in the MP REACH NLRI can be one of the following:. Local IP: Automatically fills the Nexthop with the Local IP of the BGP. peer.. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + + value: Union[Literal["local_ip"], Literal["manual"]] + """ + self._set_property("next_hop_mode", value) + + @property + def next_hop_address_type(self): + # type: () -> Union[Literal["ipv4"], Literal["ipv6"]] + """next_hop_address_type getter + + If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + + Returns: Union[Literal["ipv4"], Literal["ipv6"]] + """ + return self._get_property("next_hop_address_type") + + @next_hop_address_type.setter + def next_hop_address_type(self, value): + """next_hop_address_type setter + + If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + + value: Union[Literal["ipv4"], Literal["ipv6"]] + """ + self._set_property("next_hop_address_type", value) + + @property + def next_hop_ipv4_address(self): + # type: () -> str + """next_hop_ipv4_address getter + + The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + + Returns: str + """ + return self._get_property("next_hop_ipv4_address") + + @next_hop_ipv4_address.setter + def next_hop_ipv4_address(self, value): + """next_hop_ipv4_address setter + + The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + + value: str + """ + self._set_property("next_hop_ipv4_address", value) + + @property + def next_hop_ipv6_address(self): + # type: () -> str + """next_hop_ipv6_address getter + + The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv6. + + Returns: str + """ + return self._get_property("next_hop_ipv6_address") + + @next_hop_ipv6_address.setter + def next_hop_ipv6_address(self, value): + """next_hop_ipv6_address setter + + The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv6. + + value: str + """ + self._set_property("next_hop_ipv6_address", value) + + @property + def advanced(self): + # type: () -> BgpRouteAdvanced + """advanced getter + + Configuration for advanced BGP route range settings.Configuration for advanced BGP route range settings.Configuration for advanced BGP route range settings. + + Returns: BgpRouteAdvanced + """ + return self._get_property("advanced", BgpRouteAdvanced) + + @property + def communities(self): + # type: () -> BgpCommunityIter + """communities getter + + Optional community settings. + + Returns: BgpCommunityIter + """ + return self._get_property( + "communities", BgpCommunityIter, self._parent, self._choice + ) + + @property + def as_path(self): + # type: () -> BgpAsPath + """as_path getter + + This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination.This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination.This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination. + + Returns: BgpAsPath + """ + return self._get_property("as_path", BgpAsPath) + + @property + def add_path(self): + # type: () -> BgpAddPath + """add_path getter + + The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths.The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths.The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths. + + Returns: BgpAddPath + """ + return self._get_property("add_path", BgpAddPath) + + @property + def name(self): + # type: () -> str + """name getter + + Globally unique name of an object. It also serves as the primary key for arrays of objects. + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + Globally unique name of an object. It also serves as the primary key for arrays of objects. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def ext_communities(self): + # type: () -> BgpExtCommunityIter + """ext_communities getter + + Deprecated: This property is deprecated in favor of property extended_communities. Deprecated: This property is deprecated in favor of property extended_communities. Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first Bytes of the community encode type and sub-type fields and the last Bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is four byte IPv4 address followed by two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type 0x0800), IPv6 (protocol type 0x86dd), and MPLS (protocol type 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. + + Returns: BgpExtCommunityIter + """ + return self._get_property( + "ext_communities", BgpExtCommunityIter, self._parent, self._choice + ) + + @property + def extended_communities(self): + # type: () -> BgpExtendedCommunityIter + """extended_communities getter + + Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an eight byte value. It is divided into two main parts. The first two bytes of the community encode type and sub-type fields and the last six bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. + + Returns: BgpExtendedCommunityIter + """ + return self._get_property( + "extended_communities", BgpExtendedCommunityIter, self._parent, self._choice + ) + + +class BgpAddPath(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "path_id": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "path_id": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, path_id=1): + super(BgpAddPath, self).__init__() + self._parent = parent + self._set_property("path_id", path_id) + + def set(self, path_id=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def path_id(self): + # type: () -> int + """path_id getter + + The id of the additional path. + + Returns: int + """ + return self._get_property("path_id") + + @path_id.setter + def path_id(self, value): + """path_id setter + + The id of the additional path. + + value: int + """ + self._set_property("path_id", value) + + +class BgpExtendedCommunity(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "transitive_2octet_as_type", + "transitive_ipv4_address_type", + "transitive_4octet_as_type", + "transitive_opaque_type", + "transitive_evpn_type", + "non_transitive_2octet_as_type", + "custom", + ], + }, + "transitive_2octet_as_type": { + "type": "BgpExtendedCommunityTransitive2OctetAsType" + }, + "transitive_ipv4_address_type": { + "type": "BgpExtendedCommunityTransitiveIpv4AddressType" + }, + "transitive_4octet_as_type": { + "type": "BgpExtendedCommunityTransitive4OctetAsType" + }, + "transitive_opaque_type": {"type": "BgpExtendedCommunityTransitiveOpaqueType"}, + "transitive_evpn_type": {"type": "BgpExtendedCommunityTransitiveEvpnType"}, + "non_transitive_2octet_as_type": { + "type": "BgpExtendedCommunityNonTransitive2OctetAsType" + }, + "custom": {"type": "BgpExtendedCommunityCustomType"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "transitive_2octet_as_type", + } # type: Dict[str, Union(type)] + + TRANSITIVE_2OCTET_AS_TYPE = "transitive_2octet_as_type" # type: str + TRANSITIVE_IPV4_ADDRESS_TYPE = "transitive_ipv4_address_type" # type: str + TRANSITIVE_4OCTET_AS_TYPE = "transitive_4octet_as_type" # type: str + TRANSITIVE_OPAQUE_TYPE = "transitive_opaque_type" # type: str + TRANSITIVE_EVPN_TYPE = "transitive_evpn_type" # type: str + NON_TRANSITIVE_2OCTET_AS_TYPE = "non_transitive_2octet_as_type" # type: str + CUSTOM = "custom" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunity, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def transitive_2octet_as_type(self): + # type: () -> BgpExtendedCommunityTransitive2OctetAsType + """Factory property that returns an instance of the BgpExtendedCommunityTransitive2OctetAsType class + + The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 + + Returns: BgpExtendedCommunityTransitive2OctetAsType + """ + return self._get_property( + "transitive_2octet_as_type", + BgpExtendedCommunityTransitive2OctetAsType, + self, + "transitive_2octet_as_type", + ) + + @property + def transitive_ipv4_address_type(self): + # type: () -> BgpExtendedCommunityTransitiveIpv4AddressType + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveIpv4AddressType class + + The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + + Returns: BgpExtendedCommunityTransitiveIpv4AddressType + """ + return self._get_property( + "transitive_ipv4_address_type", + BgpExtendedCommunityTransitiveIpv4AddressType, + self, + "transitive_ipv4_address_type", + ) + + @property + def transitive_4octet_as_type(self): + # type: () -> BgpExtendedCommunityTransitive4OctetAsType + """Factory property that returns an instance of the BgpExtendedCommunityTransitive4OctetAsType class + + The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. + + Returns: BgpExtendedCommunityTransitive4OctetAsType + """ + return self._get_property( + "transitive_4octet_as_type", + BgpExtendedCommunityTransitive4OctetAsType, + self, + "transitive_4octet_as_type", + ) + + @property + def transitive_opaque_type(self): + # type: () -> BgpExtendedCommunityTransitiveOpaqueType + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveOpaqueType class + + The Transitive Opaque Extended Community is sent as type 0x03. + + Returns: BgpExtendedCommunityTransitiveOpaqueType + """ + return self._get_property( + "transitive_opaque_type", + BgpExtendedCommunityTransitiveOpaqueType, + self, + "transitive_opaque_type", + ) + + @property + def transitive_evpn_type(self): + # type: () -> BgpExtendedCommunityTransitiveEvpnType + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveEvpnType class + + The Transitive EVPN Extended Community is sent as type 0x06 + + Returns: BgpExtendedCommunityTransitiveEvpnType + """ + return self._get_property( + "transitive_evpn_type", + BgpExtendedCommunityTransitiveEvpnType, + self, + "transitive_evpn_type", + ) + + @property + def non_transitive_2octet_as_type(self): + # type: () -> BgpExtendedCommunityNonTransitive2OctetAsType + """Factory property that returns an instance of the BgpExtendedCommunityNonTransitive2OctetAsType class + + The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. + + Returns: BgpExtendedCommunityNonTransitive2OctetAsType + """ + return self._get_property( + "non_transitive_2octet_as_type", + BgpExtendedCommunityNonTransitive2OctetAsType, + self, + "non_transitive_2octet_as_type", + ) + + @property + def custom(self): + # type: () -> BgpExtendedCommunityCustomType + """Factory property that returns an instance of the BgpExtendedCommunityCustomType class + + Add custom Extended Community with combination of types sub-types and values not explicitly specified above or not defined yet. + + Returns: BgpExtendedCommunityCustomType + """ + return self._get_property( + "custom", BgpExtendedCommunityCustomType, self, "custom" + ) + + @property + def choice(self): + # type: () -> Union[Literal["custom"], Literal["non_transitive_2octet_as_type"], Literal["transitive_2octet_as_type"], Literal["transitive_4octet_as_type"], Literal["transitive_evpn_type"], Literal["transitive_ipv4_address_type"], Literal["transitive_opaque_type"]] + """choice getter + + TBD + + Returns: Union[Literal["custom"], Literal["non_transitive_2octet_as_type"], Literal["transitive_2octet_as_type"], Literal["transitive_4octet_as_type"], Literal["transitive_evpn_type"], Literal["transitive_ipv4_address_type"], Literal["transitive_opaque_type"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["custom"], Literal["non_transitive_2octet_as_type"], Literal["transitive_2octet_as_type"], Literal["transitive_4octet_as_type"], Literal["transitive_evpn_type"], Literal["transitive_ipv4_address_type"], Literal["transitive_opaque_type"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitive2OctetAsType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "route_target_subtype", + "route_origin_subtype", + ], + }, + "route_target_subtype": { + "type": "BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget" + }, + "route_origin_subtype": { + "type": "BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "route_target_subtype", + } # type: Dict[str, Union(type)] + + ROUTE_TARGET_SUBTYPE = "route_target_subtype" # type: str + ROUTE_ORIGIN_SUBTYPE = "route_origin_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitive2OctetAsType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def route_target_subtype(self): + # type: () -> BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + """Factory property that returns an instance of the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget class + + The Route Target Community identifies one or more routers that may receive set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + + Returns: BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + """ + return self._get_property( + "route_target_subtype", + BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, + self, + "route_target_subtype", + ) + + @property + def route_origin_subtype(self): + # type: () -> BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + """Factory property that returns an instance of the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin class + + The Route Origin Community identifies one or more routers that inject set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + + Returns: BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + """ + return self._get_property( + "route_origin_subtype", + BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, + self, + "route_origin_subtype", + ) + + @property + def choice(self): + # type: () -> Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """choice getter + + TBD + + Returns: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_2byte_as": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + "local_4byte_admin": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_2byte_as": 100, + "local_4byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_2byte_as=100, local_4byte_admin=1): + super(BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, self).__init__() + self._parent = parent + self._set_property("global_2byte_as", global_2byte_as) + self._set_property("local_4byte_admin", local_4byte_admin) + + def set(self, global_2byte_as=None, local_4byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_2byte_as(self): + # type: () -> int + """global_2byte_as getter + + The two octet IANA assigned AS value assigned to the Autonomous System. + + Returns: int + """ + return self._get_property("global_2byte_as") + + @global_2byte_as.setter + def global_2byte_as(self, value): + """global_2byte_as setter + + The two octet IANA assigned AS value assigned to the Autonomous System. + + value: int + """ + self._set_property("global_2byte_as", value) + + @property + def local_4byte_admin(self): + # type: () -> int + """local_4byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_4byte_admin") + + @local_4byte_admin.setter + def local_4byte_admin(self, value): + """local_4byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_4byte_admin", value) + + +class BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_2byte_as": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + "local_4byte_admin": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_2byte_as": 100, + "local_4byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_2byte_as=100, local_4byte_admin=1): + super(BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, self).__init__() + self._parent = parent + self._set_property("global_2byte_as", global_2byte_as) + self._set_property("local_4byte_admin", local_4byte_admin) + + def set(self, global_2byte_as=None, local_4byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_2byte_as(self): + # type: () -> int + """global_2byte_as getter + + The two octet IANA assigned AS value assigned to the Autonomous System. + + Returns: int + """ + return self._get_property("global_2byte_as") + + @global_2byte_as.setter + def global_2byte_as(self, value): + """global_2byte_as setter + + The two octet IANA assigned AS value assigned to the Autonomous System. + + value: int + """ + self._set_property("global_2byte_as", value) + + @property + def local_4byte_admin(self): + # type: () -> int + """local_4byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_4byte_admin") + + @local_4byte_admin.setter + def local_4byte_admin(self, value): + """local_4byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_4byte_admin", value) + + +class BgpExtendedCommunityTransitiveIpv4AddressType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "route_target_subtype", + "route_origin_subtype", + ], + }, + "route_target_subtype": { + "type": "BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget" + }, + "route_origin_subtype": { + "type": "BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "route_target_subtype", + } # type: Dict[str, Union(type)] + + ROUTE_TARGET_SUBTYPE = "route_target_subtype" # type: str + ROUTE_ORIGIN_SUBTYPE = "route_origin_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitiveIpv4AddressType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def route_target_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget class + + The Route Target Community identifies one or more routers that may receive set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + + Returns: BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + """ + return self._get_property( + "route_target_subtype", + BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, + self, + "route_target_subtype", + ) + + @property + def route_origin_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin class + + The Route Origin Community identifies one or more routers that inject set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + + Returns: BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + """ + return self._get_property( + "route_origin_subtype", + BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, + self, + "route_origin_subtype", + ) + + @property + def choice(self): + # type: () -> Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """choice getter + + TBD + + Returns: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_ipv4_admin": { + "type": str, + "format": "ipv4", + }, + "local_2byte_admin": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_ipv4_admin": "0.0.0.0", + "local_2byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_ipv4_admin="0.0.0.0", local_2byte_admin=1): + super(BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, self).__init__() + self._parent = parent + self._set_property("global_ipv4_admin", global_ipv4_admin) + self._set_property("local_2byte_admin", local_2byte_admin) + + def set(self, global_ipv4_admin=None, local_2byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_ipv4_admin(self): + # type: () -> str + """global_ipv4_admin getter + + An IPv4 unicast address assigned by one of the Internet registries. + + Returns: str + """ + return self._get_property("global_ipv4_admin") + + @global_ipv4_admin.setter + def global_ipv4_admin(self, value): + """global_ipv4_admin setter + + An IPv4 unicast address assigned by one of the Internet registries. + + value: str + """ + self._set_property("global_ipv4_admin", value) + + @property + def local_2byte_admin(self): + # type: () -> int + """local_2byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_2byte_admin") + + @local_2byte_admin.setter + def local_2byte_admin(self, value): + """local_2byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_2byte_admin", value) + + +class BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_ipv4_admin": { + "type": str, + "format": "ipv4", + }, + "local_2byte_admin": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_ipv4_admin": "0.0.0.0", + "local_2byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_ipv4_admin="0.0.0.0", local_2byte_admin=1): + super(BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, self).__init__() + self._parent = parent + self._set_property("global_ipv4_admin", global_ipv4_admin) + self._set_property("local_2byte_admin", local_2byte_admin) + + def set(self, global_ipv4_admin=None, local_2byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_ipv4_admin(self): + # type: () -> str + """global_ipv4_admin getter + + An IPv4 unicast address assigned by one of the Internet registries. + + Returns: str + """ + return self._get_property("global_ipv4_admin") + + @global_ipv4_admin.setter + def global_ipv4_admin(self, value): + """global_ipv4_admin setter + + An IPv4 unicast address assigned by one of the Internet registries. + + value: str + """ + self._set_property("global_ipv4_admin", value) + + @property + def local_2byte_admin(self): + # type: () -> int + """local_2byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_2byte_admin") + + @local_2byte_admin.setter + def local_2byte_admin(self, value): + """local_2byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_2byte_admin", value) + + +class BgpExtendedCommunityTransitive4OctetAsType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "route_target_subtype", + "route_origin_subtype", + ], + }, + "route_target_subtype": { + "type": "BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget" + }, + "route_origin_subtype": { + "type": "BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "route_target_subtype", + } # type: Dict[str, Union(type)] + + ROUTE_TARGET_SUBTYPE = "route_target_subtype" # type: str + ROUTE_ORIGIN_SUBTYPE = "route_origin_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitive4OctetAsType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def route_target_subtype(self): + # type: () -> BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + """Factory property that returns an instance of the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget class + + The Route Target Community identifies one or more routers that may receive set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 + + Returns: BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + """ + return self._get_property( + "route_target_subtype", + BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, + self, + "route_target_subtype", + ) + + @property + def route_origin_subtype(self): + # type: () -> BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + """Factory property that returns an instance of the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin class + + The Route Origin Community identifies one or more routers that inject set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + + Returns: BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + """ + return self._get_property( + "route_origin_subtype", + BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, + self, + "route_origin_subtype", + ) + + @property + def choice(self): + # type: () -> Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """choice getter + + TBD + + Returns: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["route_origin_subtype"], Literal["route_target_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_4byte_as": { + "type": int, + "format": "uint32", + }, + "local_2byte_admin": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_4byte_as": 100, + "local_2byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_4byte_as=100, local_2byte_admin=1): + super(BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, self).__init__() + self._parent = parent + self._set_property("global_4byte_as", global_4byte_as) + self._set_property("local_2byte_admin", local_2byte_admin) + + def set(self, global_4byte_as=None, local_2byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_4byte_as(self): + # type: () -> int + """global_4byte_as getter + + The four octet IANA assigned AS value assigned to the Autonomous System. + + Returns: int + """ + return self._get_property("global_4byte_as") + + @global_4byte_as.setter + def global_4byte_as(self, value): + """global_4byte_as setter + + The four octet IANA assigned AS value assigned to the Autonomous System. + + value: int + """ + self._set_property("global_4byte_as", value) + + @property + def local_2byte_admin(self): + # type: () -> int + """local_2byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_2byte_admin") + + @local_2byte_admin.setter + def local_2byte_admin(self, value): + """local_2byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_2byte_admin", value) + + +class BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "global_4byte_as": { + "type": int, + "format": "uint32", + }, + "local_2byte_admin": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "global_4byte_as": 100, + "local_2byte_admin": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, global_4byte_as=100, local_2byte_admin=1): + super(BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, self).__init__() + self._parent = parent + self._set_property("global_4byte_as", global_4byte_as) + self._set_property("local_2byte_admin", local_2byte_admin) + + def set(self, global_4byte_as=None, local_2byte_admin=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def global_4byte_as(self): + # type: () -> int + """global_4byte_as getter + + The four octet IANA assigned AS value assigned to the Autonomous System. + + Returns: int + """ + return self._get_property("global_4byte_as") + + @global_4byte_as.setter + def global_4byte_as(self, value): + """global_4byte_as setter + + The four octet IANA assigned AS value assigned to the Autonomous System. + + value: int + """ + self._set_property("global_4byte_as", value) + + @property + def local_2byte_admin(self): + # type: () -> int + """local_2byte_admin getter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + Returns: int + """ + return self._get_property("local_2byte_admin") + + @local_2byte_admin.setter + def local_2byte_admin(self, value): + """local_2byte_admin setter + + The Local Administrator sub-field contains number from numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. + + value: int + """ + self._set_property("local_2byte_admin", value) + + +class BgpExtendedCommunityTransitiveOpaqueType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "color_subtype", + "encapsulation_subtype", + ], + }, + "color_subtype": {"type": "BgpExtendedCommunityTransitiveOpaqueTypeColor"}, + "encapsulation_subtype": { + "type": "BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "color_subtype", + } # type: Dict[str, Union(type)] + + COLOR_SUBTYPE = "color_subtype" # type: str + ENCAPSULATION_SUBTYPE = "encapsulation_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitiveOpaqueType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def color_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveOpaqueTypeColor + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveOpaqueTypeColor class + + The Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether data packet can be transmitted on certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. + + Returns: BgpExtendedCommunityTransitiveOpaqueTypeColor + """ + return self._get_property( + "color_subtype", + BgpExtendedCommunityTransitiveOpaqueTypeColor, + self, + "color_subtype", + ) + + @property + def encapsulation_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation class + + This identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + + Returns: BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + """ + return self._get_property( + "encapsulation_subtype", + BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, + self, + "encapsulation_subtype", + ) + + @property + def choice(self): + # type: () -> Union[Literal["color_subtype"], Literal["encapsulation_subtype"]] + """choice getter + + TBD + + Returns: Union[Literal["color_subtype"], Literal["encapsulation_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["color_subtype"], Literal["encapsulation_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitiveOpaqueTypeColor(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "flags": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + "color": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "flags": 0, + "color": 0, + } # type: Dict[str, Union(type)] + _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - next_hop_mode="local_ip", - next_hop_address_type="ipv4", - next_hop_ipv4_address="0.0.0.0", - next_hop_ipv6_address="::0", - name=None, - ): - super(BgpV4RouteRange, self).__init__() + def __init__(self, parent=None, flags=0, color=0): + super(BgpExtendedCommunityTransitiveOpaqueTypeColor, self).__init__() self._parent = parent - self._set_property("next_hop_mode", next_hop_mode) - self._set_property("next_hop_address_type", next_hop_address_type) - self._set_property("next_hop_ipv4_address", next_hop_ipv4_address) - self._set_property("next_hop_ipv6_address", next_hop_ipv6_address) - self._set_property("name", name) + self._set_property("flags", flags) + self._set_property("color", color) - def set( - self, - next_hop_mode=None, - next_hop_address_type=None, - next_hop_ipv4_address=None, - next_hop_ipv6_address=None, - name=None, - ): + def set(self, flags=None, color=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @property - def addresses(self): - # type: () -> V4RouteAddressIter - """addresses getter + def flags(self): + # type: () -> int + """flags getter - A list of group of IPv4 route addresses. + Two octet flag values. - Returns: V4RouteAddressIter + Returns: int """ - return self._get_property( - "addresses", V4RouteAddressIter, self._parent, self._choice - ) + return self._get_property("flags") - @property - def next_hop_mode(self): - # type: () -> Union[Literal["local_ip"], Literal["manual"]] - """next_hop_mode getter + @flags.setter + def flags(self, value): + """flags setter - Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the NextHop in the MP REACH NLRI can be one of the following:. Local IP: Automatically fills the Nexthop with the Local IP of the BGP. peer.. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + Two octet flag values. - Returns: Union[Literal["local_ip"], Literal["manual"]] + value: int """ - return self._get_property("next_hop_mode") + self._set_property("flags", value) - @next_hop_mode.setter - def next_hop_mode(self, value): - """next_hop_mode setter + @property + def color(self): + # type: () -> int + """color getter - Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the NextHop in the MP REACH NLRI can be one of the following:. Local IP: Automatically fills the Nexthop with the Local IP of the BGP. peer.. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled.. Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + The color value is user defined and configured locally and used to determine whether data packet can be transmitted on certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. - value: Union[Literal["local_ip"], Literal["manual"]] + Returns: int """ - self._set_property("next_hop_mode", value) + return self._get_property("color") - @property - def next_hop_address_type(self): - # type: () -> Union[Literal["ipv4"], Literal["ipv6"]] - """next_hop_address_type getter + @color.setter + def color(self, value): + """color setter - If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + The color value is user defined and configured locally and used to determine whether data packet can be transmitted on certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. - Returns: Union[Literal["ipv4"], Literal["ipv6"]] + value: int """ - return self._get_property("next_hop_address_type") + self._set_property("color", value) - @next_hop_address_type.setter - def next_hop_address_type(self, value): - """next_hop_address_type setter - If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. +class BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation(OpenApiObject): + __slots__ = "_parent" - value: Union[Literal["ipv4"], Literal["ipv6"]] - """ - self._set_property("next_hop_address_type", value) + _TYPES = { + "reserved": { + "type": int, + "format": "uint32", + }, + "tunnel_type": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "reserved": 0, + "tunnel_type": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, reserved=0, tunnel_type=1): + super(BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, self).__init__() + self._parent = parent + self._set_property("reserved", reserved) + self._set_property("tunnel_type", tunnel_type) + + def set(self, reserved=None, tunnel_type=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) @property - def next_hop_ipv4_address(self): - # type: () -> str - """next_hop_ipv4_address getter + def reserved(self): + # type: () -> int + """reserved getter - The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + Four bytes of reserved values. Normally set to on transmit and ignored on receive. - Returns: str + Returns: int """ - return self._get_property("next_hop_ipv4_address") + return self._get_property("reserved") - @next_hop_ipv4_address.setter - def next_hop_ipv4_address(self, value): - """next_hop_ipv4_address setter + @reserved.setter + def reserved(self, value): + """reserved setter - The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + Four bytes of reserved values. Normally set to on transmit and ignored on receive. - value: str + value: int """ - self._set_property("next_hop_ipv4_address", value) + self._set_property("reserved", value) @property - def next_hop_ipv6_address(self): - # type: () -> str - """next_hop_ipv6_address getter + def tunnel_type(self): + # type: () -> int + """tunnel_type getter - The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv6. + Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include L2TPv3 over IP [RFC9012], 2 GRE [RFC9012]. IP in IP [RFC9012]. VXLAN Encapsulation [RFC8365]. NVGRE Encapsulation [RFC8365]. 10 MPLS Encapsulation [RFC8365]. 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy]. 19 Geneve Encapsulation [RFC8926] - Returns: str + Returns: int """ - return self._get_property("next_hop_ipv6_address") + return self._get_property("tunnel_type") - @next_hop_ipv6_address.setter - def next_hop_ipv6_address(self, value): - """next_hop_ipv6_address setter + @tunnel_type.setter + def tunnel_type(self, value): + """tunnel_type setter - The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type is IPv6. + Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include L2TPv3 over IP [RFC9012], 2 GRE [RFC9012]. IP in IP [RFC9012]. VXLAN Encapsulation [RFC8365]. NVGRE Encapsulation [RFC8365]. 10 MPLS Encapsulation [RFC8365]. 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy]. 19 Geneve Encapsulation [RFC8926] - value: str + value: int """ - self._set_property("next_hop_ipv6_address", value) + self._set_property("tunnel_type", value) - @property - def advanced(self): - # type: () -> BgpRouteAdvanced - """advanced getter - Configuration for advanced BGP route range settings.Configuration for advanced BGP route range settings.Configuration for advanced BGP route range settings. +class BgpExtendedCommunityTransitiveEvpnType(OpenApiObject): + __slots__ = ("_parent", "_choice") - Returns: BgpRouteAdvanced - """ - return self._get_property("advanced", BgpRouteAdvanced) + _TYPES = { + "choice": { + "type": str, + "enum": [ + "router_mac_subtype", + ], + }, + "router_mac_subtype": { + "type": "BgpExtendedCommunityTransitiveEvpnTypeRouterMac" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "router_mac_subtype", + } # type: Dict[str, Union(type)] + + ROUTER_MAC_SUBTYPE = "router_mac_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityTransitiveEvpnType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) @property - def communities(self): - # type: () -> BgpCommunityIter - """communities getter + def router_mac_subtype(self): + # type: () -> BgpExtendedCommunityTransitiveEvpnTypeRouterMac + """Factory property that returns an instance of the BgpExtendedCommunityTransitiveEvpnTypeRouterMac class - Optional community settings. + The Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes It is sent with sub-type 0x03. - Returns: BgpCommunityIter + Returns: BgpExtendedCommunityTransitiveEvpnTypeRouterMac """ return self._get_property( - "communities", BgpCommunityIter, self._parent, self._choice + "router_mac_subtype", + BgpExtendedCommunityTransitiveEvpnTypeRouterMac, + self, + "router_mac_subtype", ) @property - def as_path(self): - # type: () -> BgpAsPath - """as_path getter + def choice(self): + # type: () -> Union[Literal["router_mac_subtype"]] + """choice getter - This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination.This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination.This attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of Set or Sequence of Autonomous Systems (AS) numbers that routing information passes through to reach the destination. + TBD - Returns: BgpAsPath + Returns: Union[Literal["router_mac_subtype"]] """ - return self._get_property("as_path", BgpAsPath) + return self._get_property("choice") - @property - def add_path(self): - # type: () -> BgpAddPath - """add_path getter + @choice.setter + def choice(self, value): + """choice setter - The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths.The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths.The BGP Additional Paths feature is BGP extension that allows the advertisement of multiple paths for the same prefix without the new paths implicitly replacing any previous paths. + TBD - Returns: BgpAddPath + value: Union[Literal["router_mac_subtype"]] """ - return self._get_property("add_path", BgpAddPath) + self._set_property("choice", value) + + +class BgpExtendedCommunityTransitiveEvpnTypeRouterMac(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "router_mac": { + "type": str, + "format": "mac", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "router_mac": "0:0:0:0:0:0", + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, router_mac="0:0:0:0:0:0"): + super(BgpExtendedCommunityTransitiveEvpnTypeRouterMac, self).__init__() + self._parent = parent + self._set_property("router_mac", router_mac) + + def set(self, router_mac=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) @property - def name(self): + def router_mac(self): # type: () -> str - """name getter + """router_mac getter - Globally unique name of an object. It also serves as the primary key for arrays of objects. + MAC Address of the PE Router. Returns: str """ - return self._get_property("name") + return self._get_property("router_mac") - @name.setter - def name(self, value): - """name setter + @router_mac.setter + def router_mac(self, value): + """router_mac setter - Globally unique name of an object. It also serves as the primary key for arrays of objects. + MAC Address of the PE Router. value: str """ - if value is None: - raise TypeError("Cannot set required property name as None") - self._set_property("name", value) + self._set_property("router_mac", value) + + +class BgpExtendedCommunityNonTransitive2OctetAsType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "link_bandwidth_subtype", + ], + }, + "link_bandwidth_subtype": { + "type": "BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "link_bandwidth_subtype", + } # type: Dict[str, Union(type)] + + LINK_BANDWIDTH_SUBTYPE = "link_bandwidth_subtype" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityNonTransitive2OctetAsType, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) @property - def ext_communities(self): - # type: () -> BgpExtCommunityIter - """ext_communities getter + def link_bandwidth_subtype(self): + # type: () -> BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + """Factory property that returns an instance of the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth class - Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first Bytes of the community encode type and sub-type fields and the last Bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is four byte IPv4 address followed by two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type 0x0800), IPv6 (protocol type 0x86dd), and MPLS (protocol type 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. + The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. - Returns: BgpExtCommunityIter + Returns: BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth """ return self._get_property( - "ext_communities", BgpExtCommunityIter, self._parent, self._choice + "link_bandwidth_subtype", + BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, + self, + "link_bandwidth_subtype", ) + @property + def choice(self): + # type: () -> Union[Literal["link_bandwidth_subtype"]] + """choice getter -class BgpAddPath(OpenApiObject): + TBD + + Returns: Union[Literal["link_bandwidth_subtype"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["link_bandwidth_subtype"]] + """ + self._set_property("choice", value) + + +class BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth(OpenApiObject): __slots__ = "_parent" _TYPES = { - "path_id": { + "global_2byte_as": { "type": int, "format": "uint32", + "maximum": 65535, + }, + "bandwidth": { + "type": float, + "format": "float", }, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) _DEFAULTS = { - "path_id": 1, + "global_2byte_as": 100, + "bandwidth": 0.0, } # type: Dict[str, Union(type)] _STATUS = {} # type: Dict[str, Union(type)] - def __init__(self, parent=None, path_id=1): - super(BgpAddPath, self).__init__() + def __init__(self, parent=None, global_2byte_as=100, bandwidth=0): + super( + BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, self + ).__init__() self._parent = parent - self._set_property("path_id", path_id) + self._set_property("global_2byte_as", global_2byte_as) + self._set_property("bandwidth", bandwidth) - def set(self, path_id=None): + def set(self, global_2byte_as=None, bandwidth=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @property - def path_id(self): + def global_2byte_as(self): # type: () -> int - """path_id getter + """global_2byte_as getter - The id of the additional path. + The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. Returns: int """ - return self._get_property("path_id") + return self._get_property("global_2byte_as") - @path_id.setter - def path_id(self, value): - """path_id setter + @global_2byte_as.setter + def global_2byte_as(self, value): + """global_2byte_as setter - The id of the additional path. + The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. value: int """ - self._set_property("path_id", value) + self._set_property("global_2byte_as", value) + + @property + def bandwidth(self): + # type: () -> float + """bandwidth getter + + Bandwidth of the link in bytes per second. 1 Kbps is 1000 bytes per second and Mbps is 1000 Kbps per second ) + + Returns: float + """ + return self._get_property("bandwidth") + + @bandwidth.setter + def bandwidth(self, value): + """bandwidth setter + + Bandwidth of the link in bytes per second. 1 Kbps is 1000 bytes per second and Mbps is 1000 Kbps per second ) + + value: float + """ + self._set_property("bandwidth", value) + + +class BgpExtendedCommunityCustomType(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "community_type": { + "type": str, + "format": "hex", + "maxLength": 2, + }, + "community_subtype": { + "type": str, + "format": "hex", + "maxLength": 2, + }, + "value": { + "type": str, + "format": "hex", + "maxLength": 12, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "community_type": "00", + "community_subtype": "00", + "value": "000000000000", + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + community_type="00", + community_subtype="00", + value="000000000000", + ): + super(BgpExtendedCommunityCustomType, self).__init__() + self._parent = parent + self._set_property("community_type", community_type) + self._set_property("community_subtype", community_subtype) + self._set_property("value", value) + + def set(self, community_type=None, community_subtype=None, value=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def community_type(self): + # type: () -> str + """community_type getter + + The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff + + Returns: str + """ + return self._get_property("community_type") + + @community_type.setter + def community_type(self, value): + """community_type setter + + The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff + + value: str + """ + self._set_property("community_type", value) + + @property + def community_subtype(self): + # type: () -> str + """community_subtype getter + + The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. + + Returns: str + """ + return self._get_property("community_subtype") + + @community_subtype.setter + def community_subtype(self, value): + """community_subtype setter + + The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. + + value: str + """ + self._set_property("community_subtype", value) + + @property + def value(self): + # type: () -> str + """value getter + + 6 byte hex value to be carried in the last bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. + + Returns: str + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + 6 byte hex value to be carried in the last bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. + + value: str + """ + self._set_property("value", value) + + +class BgpExtendedCommunityIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = True + + def __init__(self, parent=None, choice=None): + super(BgpExtendedCommunityIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[BgpExtendedCommunity, BgpExtendedCommunityCustomType, BgpExtendedCommunityNonTransitive2OctetAsType, BgpExtendedCommunityTransitive2OctetAsType, BgpExtendedCommunityTransitive4OctetAsType, BgpExtendedCommunityTransitiveEvpnType, BgpExtendedCommunityTransitiveIpv4AddressType, BgpExtendedCommunityTransitiveOpaqueType] + return self._getitem(key) + + def __iter__(self): + # type: () -> BgpExtendedCommunityIter + return self._iter() + + def __next__(self): + # type: () -> BgpExtendedCommunity + return self._next() + + def next(self): + # type: () -> BgpExtendedCommunity + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, BgpExtendedCommunity): + raise Exception("Item is not an instance of BgpExtendedCommunity") + + def extendedcommunity(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunity class + + The Extended Communities Attribute is optional BGP attribute,defined in RFC4360 with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value.It is divided into two main parts. The first Bytes of the community encode type and optonal sub-type field. The last bytes (or bytes for types without sub-type) carry unique set of data in format defined by the type and optional sub-type field. Extended communities provide larger range for grouping or categorizing communities. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity(parent=self._parent, choice=self._choice) + self._add(item) + return self + + def add(self): + # type: () -> BgpExtendedCommunity + """Add method that creates and returns an instance of the BgpExtendedCommunity class + + The Extended Communities Attribute is optional BGP attribute,defined in RFC4360 with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value.It is divided into two main parts. The first Bytes of the community encode type and optonal sub-type field. The last bytes (or bytes for types without sub-type) carry unique set of data in format defined by the type and optional sub-type field. Extended communities provide larger range for grouping or categorizing communities. + + Returns: BgpExtendedCommunity + """ + item = BgpExtendedCommunity(parent=self._parent, choice=self._choice) + self._add(item) + return item + + def transitive_2octet_as_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitive2OctetAsType class + + The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_2octet_as_type + item.choice = "transitive_2octet_as_type" + self._add(item) + return self + + def transitive_ipv4_address_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitiveIpv4AddressType class + + The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_ipv4_address_type + item.choice = "transitive_ipv4_address_type" + self._add(item) + return self + + def transitive_4octet_as_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitive4OctetAsType class + + The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_4octet_as_type + item.choice = "transitive_4octet_as_type" + self._add(item) + return self + + def transitive_opaque_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitiveOpaqueType class + + The Transitive Opaque Extended Community is sent as type 0x03. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_opaque_type + item.choice = "transitive_opaque_type" + self._add(item) + return self + + def transitive_evpn_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityTransitiveEvpnType class + + The Transitive EVPN Extended Community is sent as type 0x06 + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.transitive_evpn_type + item.choice = "transitive_evpn_type" + self._add(item) + return self + + def non_transitive_2octet_as_type(self): + # type: () -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityNonTransitive2OctetAsType class + + The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.non_transitive_2octet_as_type + item.choice = "non_transitive_2octet_as_type" + self._add(item) + return self + + def custom(self, community_type="00", community_subtype="00", value="000000000000"): + # type: (str,str,str) -> BgpExtendedCommunityIter + """Factory method that creates an instance of the BgpExtendedCommunityCustomType class + + Add custom Extended Community with combination of types sub-types and values not explicitly specified above or not defined yet. + + Returns: BgpExtendedCommunityIter + """ + item = BgpExtendedCommunity() + item.custom + item.choice = "custom" + self._add(item) + return self class BgpV4RouteRangeIter(OpenApiIter): @@ -13807,6 +15567,7 @@ class BgpV6RouteRange(OpenApiObject): "add_path": {"type": "BgpAddPath"}, "name": {"type": str}, "ext_communities": {"type": "BgpExtCommunityIter"}, + "extended_communities": {"type": "BgpExtendedCommunityIter"}, } # type: Dict[str, str] _REQUIRED = ("name",) # type: tuple(str) @@ -13824,7 +15585,9 @@ class BgpV6RouteRange(OpenApiObject): IPV4 = "ipv4" # type: str IPV6 = "ipv6" # type: str - _STATUS = {} # type: Dict[str, Union(type)] + _STATUS = { + "ext_communities": "ext_communities property in schema BgpV6RouteRange is deprecated, This property is deprecated in favor of property extended_communities", + } # type: Dict[str, Union(type)] def __init__( self, @@ -14026,7 +15789,7 @@ def ext_communities(self): # type: () -> BgpExtCommunityIter """ext_communities getter - Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first Bytes of the community encode type and sub-type fields and the last Bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is four byte IPv4 address followed by two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type 0x0800), IPv6 (protocol type 0x86dd), and MPLS (protocol type 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. + Deprecated: This property is deprecated in favor of property extended_communities. Deprecated: This property is deprecated in favor of property extended_communities. Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first Bytes of the community encode type and sub-type fields and the last Bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is four byte IPv4 address followed by two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type 0x0800), IPv6 (protocol type 0x86dd), and MPLS (protocol type 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. Note evpn type is defined mainly for use with evpn route updates and not for IPv4 and IPv6 route updates. Returns: BgpExtCommunityIter """ @@ -14034,6 +15797,19 @@ def ext_communities(self): "ext_communities", BgpExtCommunityIter, self._parent, self._choice ) + @property + def extended_communities(self): + # type: () -> BgpExtendedCommunityIter + """extended_communities getter + + Optional Extended Community settings. The Extended Communities Attribute is transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an eight byte value. It is divided into two main parts. The first two bytes of the community encode type and sub-type fields and the last six bytes carry unique set of data in format defined by the type and sub-type field. Extended communities provide larger range for grouping or categorizing communities. + + Returns: BgpExtendedCommunityIter + """ + return self._get_property( + "extended_communities", BgpExtendedCommunityIter, self._parent, self._choice + ) + class BgpV6RouteRangeIter(OpenApiIter): __slots__ = ("_parent", "_choice") @@ -109276,8 +111052,8 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() - self._version_meta.api_spec_version = "0.12.2" - self._version_meta.sdk_version = "0.12.2" + self._version_meta.api_spec_version = "0.12.3" + self._version_meta.sdk_version = "0.12.3" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False